> ## Documentation Index
> Fetch the complete documentation index at: https://docs.slate.inc/llms.txt
> Use this file to discover all available pages before exploring further.

# Get an upload URL for a signed wet-ink scan

> Generate a pre-signed POST for uploading the signed, scanned PDF of a request that is marked for wet-ink signing and whose scan has not been uploaded yet. Only available in workflows where QC comes after signing, which have you upload the signed scan to Slate for QC. Send every `uploadValues` entry as a multipart form field, followed by the file as the `file` field. The file must be a PDF (`Content-Type: application/pdf`) within the size limit. Then confirm the upload by patching the request's status to `wetInkUploaded`.



## OpenAPI

````yaml /api-reference/signatures/openapi.yaml get /v2/requests/{signatureRequestId}/uploadUrl
openapi: 3.0.0
info:
  title: Signatures API
  description: >-
    The Signatures API lets you create and manage signature requests and
    signature transactions, and drive documents through the signing and
    notarization process. All endpoints are authenticated with a bearer JWT.
  version: 2.0.0
  contact:
    name: Slate API Support
    email: api-support@slate.inc
    url: https://slate.inc
servers:
  - url: https://api.slate.inc/signatures
    description: Production
  - url: https://api.uat.slate.inc/signatures
    description: UAT (staging)
security:
  - bearerAuth: []
paths:
  /v2/requests/{signatureRequestId}/uploadUrl:
    get:
      summary: Get an upload URL for a signed wet-ink scan
      description: >-
        Generate a pre-signed POST for uploading the signed, scanned PDF of a
        request that is marked for wet-ink signing and whose scan has not been
        uploaded yet. Only available in workflows where QC comes after signing,
        which have you upload the signed scan to Slate for QC. Send every
        `uploadValues` entry as a multipart form field, followed by the file as
        the `file` field. The file must be a PDF (`Content-Type:
        application/pdf`) within the size limit. Then confirm the upload by
        patching the request's status to `wetInkUploaded`.
      operationId: getV2SignaturesRequestsSignatureRequestIdUploadUrl
      parameters:
        - in: path
          name: signatureRequestId
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Pre-signed URL generated successfully.
          content:
            application/json:
              schema:
                type: object
                required:
                  - uploadUrl
                  - uploadValues
                properties:
                  uploadUrl:
                    type: string
                    description: The pre-signed URL for uploading the signed wet-ink scan.
                  uploadValues:
                    type: object
                    description: >-
                      The values to include in the multipart request to the
                      upload URL.
                    additionalProperties:
                      type: string
        '400':
          description: >-
            Invalid signature request ID, the request is not awaiting a wet-ink
            scan, or your workflow does not support uploads.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: >-
            Unauthorized, invalid permissions, or the token does not have
            permission.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Signature request not found, or the token does not have permission.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Unexpected internal error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Error:
      type: object
      required:
        - message
      properties:
        message:
          type: string
          description: A human-readable error message.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Cognito-issued JWT access token. Send it as `Authorization: Bearer
        <token>`.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.