> ## 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.

# Submit company application

> Submits a complete Universal KYB application for review. Required company documents and every declared beneficial-owner identity document must already be uploaded. On success the company moves to `IN_REVIEW` and `nextAction` is `null`. An incomplete submission returns `COMPANY_APPLICATION_INCOMPLETE` with `missing` and `invalid` so every remaining gap can be fixed in one pass.



## OpenAPI

````yaml /api-reference/openapi.json post /companies/{id}/applications/submit
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/submit:
    post:
      tags:
        - Companies
      summary: Submit company application
      description: >-
        Submits a complete Universal KYB application for review. Required
        company documents and every declared beneficial-owner identity document
        must already be uploaded. On success the company moves to `IN_REVIEW`
        and `nextAction` is `null`. An incomplete submission returns
        `COMPANY_APPLICATION_INCOMPLETE` with `missing` and `invalid` so every
        remaining gap can be fixed in one pass.
      operationId: submitApplication_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'
      responses:
        '200':
          description: Company application after submit for review
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompanyApplicationWithNextAction'
        '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
                  - type: object
                    properties:
                      error:
                        type: object
                        properties:
                          code:
                            type: string
                            const: COMPANY_APPLICATION_INCOMPLETE
                          message:
                            type: string
                          detail:
                            anyOf:
                              - type: object
                                additionalProperties: {}
                              - type: 'null'
                        required:
                          - code
                          - message
                          - detail
                    required:
                      - error
                    title: CompanyApplicationIncompleteError
                    description: Company application is incomplete
        '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:
    CompanyApplicationWithNextAction:
      type: object
      properties:
        id:
          description: Unique company application identifier
          type: string
          format: uuid
        companyId:
          description: Company this application belongs to
          type: string
          format: uuid
        status:
          type: string
          enum:
            - INITIATED
            - IN_PROGRESS
            - APPROVED
            - REJECTED
            - REVIEW_REQUIRED
            - WORKFLOW_ERROR
            - EXPIRED
          description: Application lifecycle status
          example: INITIATED
        sessionUrl:
          anyOf:
            - type: string
            - type: 'null'
          description: URL for the corporate client to complete verification
        expiresAt:
          anyOf:
            - type: string
            - type: 'null'
          description: When the verification session URL expires (ISO 8601)
        createdAt:
          type: string
          description: When the application was created (ISO 8601)
        updatedAt:
          type: string
          description: When the application was last updated (ISO 8601)
        nextAction:
          anyOf:
            - $ref: '#/components/schemas/CompanyApplicationNextAction'
              title: CompanyApplicationNextAction
            - type: 'null'
          description: Action the client must take next, or `null` if none remains
      required:
        - id
        - companyId
        - status
        - sessionUrl
        - expiresAt
        - createdAt
        - updatedAt
        - nextAction
      description: Company application and the next action required
    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.