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

# Upload a document for an application



## OpenAPI

````yaml openapi/partner-openapi.yaml post /v1/onboarding/partner/applications/{applicationId}/documents
openapi: 3.1.0
info:
  description: >
    Partner-facing API for programmatic onboarding. Use these endpoints to
    create and

    manage onboarding applications on behalf of your customers, submit sections
    of data,

    upload supporting documents, and respond to Requests for Information (RFIs).


    ## Authentication

    All endpoints require a Bearer token obtained via the Circle key exchange.
    Include the

    token in the `Authorization: Bearer <token>` header.


    ## Idempotency

    All POST endpoints require an `X-Idempotency-Key` header. Provide a
    client-generated UUID v4

    with each POST request. If the same key is retried, the original response is
    returned without

    re-executing the operation. Omitting the header on a POST will result in a
    400 error.
  title: Circle Partner Onboarding API
  version: '2026-04-15'
servers:
  - description: Production
    url: https://api.circle.com
  - description: Sandbox
    url: https://api-sandbox.circle.com
security:
  - bearerAuth: []
paths:
  /v1/onboarding/partner/applications/{applicationId}/documents:
    post:
      tags:
        - Partner Documents
      summary: Upload a document for an application
      operationId: uploadDocument
      parameters:
        - description: Application UUID
          example: 550e8400-e29b-41d4-a716-446655440000
          in: path
          name: applicationId
          required: true
          schema:
            type: string
            format: uuid
        - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/DocumentUploadSchema'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocumentUploadResponse'
          description: Uploaded document reference
        '400':
          description: Invalid file type, size, or name
        '401':
          description: Authentication required
        '403':
          description: Insufficient permissions
        '404':
          description: Application not found
        '422':
          description: >-
            Validation error: missing or invalid documentType for identity
            document datums, or resource limit exceeded (documents per
            application or per entity)
components:
  parameters:
    IdempotencyKey:
      description: >
        Client-generated UUID used to safely retry POST requests. If the same
        key is submitted twice, the original response is returned without
        re-executing the operation. Must be a valid UUID v4 (e.g.
        `550e8400-e29b-41d4-a716-446655440099`).
      in: header
      name: X-Idempotency-Key
      required: true
      schema:
        type: string
        format: uuid
  schemas:
    DocumentUploadSchema:
      type: object
      description: Multipart form data for document upload
      properties:
        datumName:
          type: string
          description: Datum (field) name this document satisfies (e.g. passport_document)
        documentType:
          type: string
          description: >-
            Type of identity document being uploaded. Required when the schema
            field carries an x-documentTypes extension — check the field
            definition in GET /{applicationId}/schema to see which values are
            accepted for a given datum. Standard government ID datums accept
            passport, usdl, or usid; notarized government ID datums accept
            idNotarization. Ignored for all other datums — the service derives
            the type automatically from the datum name.
          enum:
            - addressDoc
            - amlPolicyDoc
            - bankStatement
            - businessLicense
            - fincenDoc
            - fundDoc
            - fundFormDExemDoc
            - genericDoc
            - idNotarization
            - orgDoc
            - orgLicense
            - passport
            - securityControlsCertification
            - usdl
            - usid
        fileContent:
          type: string
          format: binary
          description: Binary file content
        fileName:
          type: string
          description: Original file name including extension (e.g. passport.pdf)
        issuedCountry:
          type: string
          description: >-
            ISO 3166-1 alpha-2 country code where the document was issued
            (required for identity documents)
        refId:
          type: string
          format: uuid
          description: >-
            Reference ID of the array entity this document belongs to (required
            for array sections)
      required:
        - datumName
        - fileContent
        - fileName
    DocumentUploadResponse:
      type: object
      properties:
        documentId:
          type: string
          format: uuid
  securitySchemes:
    bearerAuth:
      bearerFormat: JWT
      description: Bearer token obtained via Circle key exchange
      scheme: bearer
      type: http

````