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

# Upload application documents

> Uploads one company supporting document type for a Universal KYB application. Set `documentType` to a pending company document from `nextAction` and attach its file(s) as `files`. Upload one type per request. Beneficial-owner identity documents use `POST /companies/:id/related-persons/:personId/documents`.



## OpenAPI

````yaml /api-reference/openapi.json post /companies/{id}/applications/documents
openapi: 3.1.0
info:
  title: Reap API
  version: 1.0.0
  description: Reap platform API
servers:
  - url: https://sg.sandbox.api.reap.global
    description: Singapore sandbox
  - url: https://sg.prod.api.reap.global
    description: Singapore production
  - url: https://mx.sandbox.api.reap.global
    description: Mexico sandbox
  - url: https://mx.prod.api.reap.global
    description: Mexico production
  - url: https://sandbox.api.reap.global
    description: Singapore sandbox (alias)
  - url: https://prod.api.reap.global
    description: Singapore production (alias)
security:
  - bearerAuth: []
tags:
  - name: Accounts
  - name: Activities
  - name: Card Designs
  - name: Card Shipments
  - name: Card Transactions
  - name: Cards
  - name: Companies
  - name: Crypto Deposits
  - name: Crypto Withdrawals
  - name: Disputes
  - name: Fees
  - name: Fiat Deposits
  - name: Fraud Alerts
  - name: Policies
  - name: Simulation
  - name: Statements
  - name: Users
  - name: Virtual Asset Postings
  - name: Virtual Assets
  - name: Webhooks
  - name: Agentic
paths:
  /companies/{id}/applications/documents:
    post:
      tags:
        - Companies
      summary: Upload application documents
      description: >-
        Uploads one company supporting document type for a Universal KYB
        application. Set `documentType` to a pending company document from
        `nextAction` and attach its file(s) as `files`. Upload one type per
        request. Beneficial-owner identity documents use `POST
        /companies/:id/related-persons/:personId/documents`.
      operationId: uploadApplicationDocuments_companies
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: Unique company identifier
        - name: Reap-Version
          in: header
          required: true
          schema:
            type: string
            enum:
              - '2025-02-14'
            description: API version (YYYY-MM-DD)
            example: '2025-02-14'
      requestBody:
        description: Multipart form uploading one company supporting document type
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                documentType:
                  type: string
                  enum:
                    - CERTIFICATE_OF_INCORPORATION
                    - COMPANY_PROFILE
                    - SHAREHOLDING_CHART
                    - REGISTER_OF_DIRECTORS
                    - BUSINESS_REGISTRY
                    - SOURCE_OF_FUNDS
                    - SOURCE_OF_WEALTH
                  description: >-
                    Which supporting document this upload is for (one type per
                    request; from the pending `documents` in `nextAction`)
                  example: CERTIFICATE_OF_INCORPORATION
                files:
                  description: >-
                    The document file(s) for this type. Send a single file, or
                    repeat the `files` field (max 5, 5MB total).
                  anyOf:
                    - type: string
                      format: binary
                      contentEncoding: binary
                      maxLength: 5242880
                      anyOf:
                        - contentMediaType: image/jpeg
                        - contentMediaType: image/png
                        - contentMediaType: image/gif
                        - contentMediaType: application/pdf
                        - contentMediaType: >-
                            application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
                        - contentMediaType: application/vnd.ms-excel
                        - contentMediaType: application/msword
                        - contentMediaType: >-
                            application/vnd.openxmlformats-officedocument.wordprocessingml.document
                        - contentMediaType: text/csv
                      description: >-
                        A supporting document file (.jpg, .jpeg, .png, .gif,
                        .pdf, .xlsx, .xls, .doc, .docx, .csv; max 5MB)
                    - minItems: 1
                      maxItems: 5
                      type: array
                      items:
                        type: string
                        format: binary
                        contentEncoding: binary
                        maxLength: 5242880
                        anyOf:
                          - contentMediaType: image/jpeg
                          - contentMediaType: image/png
                          - contentMediaType: image/gif
                          - contentMediaType: application/pdf
                          - contentMediaType: >-
                              application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
                          - contentMediaType: application/vnd.ms-excel
                          - contentMediaType: application/msword
                          - contentMediaType: >-
                              application/vnd.openxmlformats-officedocument.wordprocessingml.document
                          - contentMediaType: text/csv
                        description: >-
                          A supporting document file (.jpg, .jpeg, .png, .gif,
                          .pdf, .xlsx, .xls, .doc, .docx, .csv; max 5MB)
              required:
                - documentType
                - files
        required: true
      responses:
        '200':
          description: Application state after uploading a company document
          content:
            application/json:
              schema:
                type: object
                properties:
                  documentType:
                    type: string
                    enum:
                      - CERTIFICATE_OF_INCORPORATION
                      - COMPANY_PROFILE
                      - SHAREHOLDING_CHART
                      - REGISTER_OF_DIRECTORS
                      - BUSINESS_REGISTRY
                      - SOURCE_OF_FUNDS
                      - SOURCE_OF_WEALTH
                    description: Document type that was uploaded
                    example: CERTIFICATE_OF_INCORPORATION
                  files:
                    type: array
                    items:
                      $ref: '#/components/schemas/CompanyApplicationUploadedFile'
                    description: Files stored for this upload
                  nextAction:
                    anyOf:
                      - $ref: '#/components/schemas/CompanyApplicationNextAction'
                        title: CompanyApplicationNextAction
                      - type: 'null'
                    description: >-
                      Action the client must take next, or `null` if none
                      remains
                required:
                  - documentType
                  - files
                  - nextAction
        '400':
          description: Response for status 400
          content:
            application/json:
              schema:
                anyOf:
                  - type: object
                    properties:
                      error:
                        type: object
                        properties:
                          code:
                            type: string
                            const: CORPORATE_MODE_REQUIRED
                          message:
                            type: string
                          detail:
                            anyOf:
                              - type: object
                                additionalProperties: {}
                              - type: 'null'
                        required:
                          - code
                          - message
                          - detail
                    required:
                      - error
                    title: CorporateModeRequiredError
                    description: >-
                      Company operations are only available in Corporate program
                      mode
                  - type: object
                    properties:
                      error:
                        type: object
                        properties:
                          code:
                            type: string
                            const: COMPANY_APPLICATION_SUBMISSION_REJECTED
                          message:
                            type: string
                          detail:
                            anyOf:
                              - type: object
                                additionalProperties: {}
                              - type: 'null'
                        required:
                          - code
                          - message
                          - detail
                    required:
                      - error
                    title: CompanyApplicationSubmissionRejectedError
                    description: The submitted application data was rejected
        '403':
          description: The requested verification method is not enabled for this project
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        const: COMPANY_VERIFICATION_METHOD_NOT_ENABLED
                      message:
                        type: string
                      detail:
                        anyOf:
                          - type: object
                            additionalProperties: {}
                          - type: 'null'
                    required:
                      - code
                      - message
                      - detail
                required:
                  - error
                title: CompanyVerificationMethodNotEnabledError
        '404':
          description: Response for status 404
          content:
            application/json:
              schema:
                anyOf:
                  - type: object
                    properties:
                      error:
                        type: object
                        properties:
                          code:
                            type: string
                            const: COMPANY_NOT_FOUND
                          message:
                            type: string
                          detail:
                            anyOf:
                              - type: object
                                additionalProperties: {}
                              - type: 'null'
                        required:
                          - code
                          - message
                          - detail
                    required:
                      - error
                    title: CompanyNotFoundError
                    description: Company not found
                  - type: object
                    properties:
                      error:
                        type: object
                        properties:
                          code:
                            type: string
                            const: COMPANY_APPLICATION_NOT_FOUND
                          message:
                            type: string
                          detail:
                            anyOf:
                              - type: object
                                additionalProperties: {}
                              - type: 'null'
                        required:
                          - code
                          - message
                          - detail
                    required:
                      - error
                    title: CompanyApplicationNotFoundError
                    description: Company application not found
        '409':
          description: Response for status 409
          content:
            application/json:
              schema:
                anyOf:
                  - type: object
                    properties:
                      error:
                        type: object
                        properties:
                          code:
                            type: string
                            const: COMPANY_APPLICATION_NOT_EDITABLE
                          message:
                            type: string
                          detail:
                            anyOf:
                              - type: object
                                additionalProperties: {}
                              - type: 'null'
                        required:
                          - code
                          - message
                          - detail
                    required:
                      - error
                    title: CompanyApplicationNotEditableError
                    description: Company application can no longer be changed
                  - type: object
                    properties:
                      error:
                        type: object
                        properties:
                          code:
                            type: string
                            const: COMPANY_APPLICATION_NOT_SAVED
                          message:
                            type: string
                          detail:
                            anyOf:
                              - type: object
                                additionalProperties: {}
                              - type: 'null'
                        required:
                          - code
                          - message
                          - detail
                    required:
                      - error
                    title: CompanyApplicationNotSavedError
                    description: >-
                      Company application was not fully saved. Advance the
                      application again.
components:
  schemas:
    CompanyApplicationUploadedFile:
      type: object
      properties:
        fileId:
          type: string
          format: uuid
          description: Identifier of the stored file
        fileName:
          type: string
          description: Original file name
      required:
        - fileId
        - fileName
      description: A file accepted for this document type
    CompanyApplicationNextAction:
      oneOf:
        - $ref: '#/components/schemas/CompanyDocumentUploadNextAction'
          title: DocumentUpload
        - $ref: '#/components/schemas/CompanySubmitNextAction'
          title: Submit
      description: Next action required from the client
      title: Company application next action
    CompanyDocumentUploadNextAction:
      type: object
      properties:
        type:
          type: string
          const: DOCUMENT_UPLOAD
        documents:
          type: array
          items:
            $ref: '#/components/schemas/CompanyApplicationDocument'
          description: Supporting documents to upload, each with its current upload state
      required:
        - type
        - documents
      title: Document upload
    CompanySubmitNextAction:
      type: object
      properties:
        type:
          type: string
          const: SUBMIT
      required:
        - type
      title: Submit
    CompanyApplicationDocument:
      anyOf:
        - $ref: '#/components/schemas/CompanySupportingDocument'
          title: Required
        - $ref: '#/components/schemas/UboSupportingDocument'
          title: Required
      description: A supporting document still required for this application
    CompanySupportingDocument:
      type: object
      properties:
        documentType:
          type: string
          enum:
            - CERTIFICATE_OF_INCORPORATION
            - COMPANY_PROFILE
            - SHAREHOLDING_CHART
            - REGISTER_OF_DIRECTORS
            - BUSINESS_REGISTRY
            - SOURCE_OF_FUNDS
            - SOURCE_OF_WEALTH
          description: Company supporting document to upload
          example: CERTIFICATE_OF_INCORPORATION
        status:
          type: string
          const: REQUIRED
          description: This document still needs to be uploaded
      required:
        - documentType
        - status
      description: Outstanding company supporting document
      title: Company document
    UboSupportingDocument:
      type: object
      properties:
        documentType:
          type: string
          const: UBO_IDENTITY
          description: Beneficial-owner identity document
        relatedPersonId:
          description: Related person this identity document belongs to
          type: string
          format: uuid
        uboDocumentType:
          type: string
          enum:
            - PASSPORT
            - ID_CARD
            - DRIVERS_LICENCE
          description: Identity document type declared for this owner
          example: PASSPORT
        status:
          type: string
          const: REQUIRED
          description: This document still needs to be uploaded
      required:
        - documentType
        - relatedPersonId
        - uboDocumentType
        - status
      description: Outstanding beneficial-owner identity document
      title: UBO document
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key as Bearer token

````

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