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

# Send Requested Verification Documents

> Send the documents and written answers we asked for during a verification review.

Send this as **`multipart/form-data`**.

- **`payload`** (optional) — a JSON object holding your written answers, for the
  items whose `kind` is `text`:

  ```json
  {
    "responses": [
      { "key": "source_of_funds", "text": "Retained earnings from 2023 trading." }
    ]
  }
  ```

- **One file part per document**, named **`file:<key>`** — for example
  `file:certificate_of_incorporation`. Use it for the items whose `kind` is
  `file`.

The `key` values come from the list endpoint. Answering a `text` item with a file, or a `file` item with text, is rejected before anything is stored.

**Partial answers are fine.** Send what you have now and send the rest later — answers accumulate, and the request closes itself once every required item has one. Sending nothing at all is rejected.

Accepted file types: PNG, JPG, JPEG, PDF, HEIF, HEIC.

Answering does not by itself approve the verification — our reviewer still makes that decision. Watch the `compliance_documents.*` webhooks, or poll the list endpoint, to follow where a request stands.



## OpenAPI

````yaml POST /v1/platform/compliance/checks/{check_id}/document-requests/{request_id}/submit
openapi: 3.1.0
info:
  title: Finogate Platform API v1
  version: 0.1.0
servers:
  - url: https://api-sandbox.finogates.com
    description: Sandbox
  - url: https://api.finogates.com
    description: Production
security: []
tags:
  - name: auth
  - name: users
  - name: payees
  - name: verification
  - name: bank accounts
  - name: card processing
  - name: digital-assets
  - name: international
  - name: fees
  - name: onboarding
  - name: pending-applications
  - name: wallets
  - name: payments
  - name: document mailing
  - name: merchant onboarding
  - name: catalog
  - name: webhooks
  - name: screening
  - name: Platform - File Scanning
  - name: phone-numbers
  - name: sms
  - name: calls
  - name: listings
  - name: Card Transfers
  - name: embed-tokens
paths:
  /v1/platform/compliance/checks/{check_id}/document-requests/{request_id}/submit:
    post:
      tags:
        - verification
      summary: Send Requested Verification Documents
      description: >-
        Send the documents and written answers we asked for during a
        verification review.


        Send this as **`multipart/form-data`**.


        - **`payload`** (optional) — a JSON object holding your written answers,
        for the
          items whose `kind` is `text`:

          ```json
          {
            "responses": [
              { "key": "source_of_funds", "text": "Retained earnings from 2023 trading." }
            ]
          }
          ```

        - **One file part per document**, named **`file:<key>`** — for example
          `file:certificate_of_incorporation`. Use it for the items whose `kind` is
          `file`.

        The `key` values come from the list endpoint. Answering a `text` item
        with a file, or a `file` item with text, is rejected before anything is
        stored.


        **Partial answers are fine.** Send what you have now and send the rest
        later — answers accumulate, and the request closes itself once every
        required item has one. Sending nothing at all is rejected.


        Accepted file types: PNG, JPG, JPEG, PDF, HEIF, HEIC.


        Answering does not by itself approve the verification — our reviewer
        still makes that decision. Watch the `compliance_documents.*` webhooks,
        or poll the list endpoint, to follow where a request stands.
      operationId: >-
        submit_platform_document_responses_v1_platform_compliance_checks__check_id__document_requests__request_id__submit_post
      parameters:
        - name: check_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: >-
              The verification check the request was raised against — its
              `kyc_record_id` or `kyb_record_id`.
            examples:
              - 9f0b1c2d-3e4f-5061-7283-94a5b6c7d8e9
            title: Check Id
          description: >-
            The verification check the request was raised against — its
            `kyc_record_id` or `kyb_record_id`.
        - name: request_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: The document request you are answering.
            examples:
              - 1a2b3c4d-5e6f-7081-9203-a4b5c6d7e8f9
            title: Request Id
          description: The document request you are answering.
      requestBody:
        required: false
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                payload:
                  type: string
                  description: >-
                    Your written answers, as a JSON object: {"responses":
                    [{"key": "...", "text": "..."}]}. Omit it if you are only
                    sending files.
              additionalProperties:
                type: string
                format: binary
                description: >-
                  One part per document, named file:<key> — for example
                  file:certificate_of_incorporation.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/CommonResponse_PlatformDocumentRequestRead_
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - _AuthenticatedBearer: []
components:
  schemas:
    CommonResponse_PlatformDocumentRequestRead_:
      properties:
        status_code:
          type: integer
          title: Status Code
          description: HTTP status code for the response.
        data:
          $ref: '#/components/schemas/PlatformDocumentRequestRead'
          description: Payload or error details.
        query_generated_time:
          type: integer
          title: Query Generated Time
          description: >-
            UTC timestamp (milliseconds since epoch) when response was
            generated.
      type: object
      required:
        - status_code
        - data
        - query_generated_time
      title: CommonResponse[PlatformDocumentRequestRead]
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    PlatformDocumentRequestRead:
      properties:
        status:
          type: string
          enum:
            - open
            - completed
            - cancelled
          title: Status
        outstanding_required:
          type: integer
          title: Outstanding Required
          description: Required items still unanswered. Zero once the round is done.
          default: 0
        note:
          anyOf:
            - type: string
            - type: 'null'
          title: Note
          description: Message from the reviewer who raised the request.
        requested_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Requested At
        completed_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Completed At
        cancel_reason:
          anyOf:
            - type: string
            - type: 'null'
          title: Cancel Reason
          description: Why the reviewer withdrew a ``cancelled`` round.
        id:
          type: string
          format: uuid
          title: Id
          description: Pass this as ``request_id`` when submitting.
        items:
          items:
            $ref: '#/components/schemas/PlatformDocumentItemRead'
          type: array
          title: Items
      type: object
      required:
        - status
        - id
      title: PlatformDocumentRequestRead
      description: |-
        One round of questions against a verification check.

        The check's id is not repeated here — it is on the enclosing object, and
        one round can only belong to one check.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    PlatformDocumentItemRead:
      properties:
        label:
          type: string
          title: Label
        kind:
          type: string
          enum:
            - text
            - file
          title: Kind
        required:
          type: boolean
          title: Required
          default: true
        responded:
          type: boolean
          title: Responded
          default: false
        help:
          anyOf:
            - type: string
            - type: 'null'
          title: Help
        text:
          anyOf:
            - type: string
            - type: 'null'
          title: Text
          description: Present on answered ``text`` items.
        file_name:
          anyOf:
            - type: string
            - type: 'null'
          title: File Name
        download_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Download Url
          description: >-
            Short-lived link to a document already sent. Absent on unanswered
            items, and on a stored file that could not be signed.
        expires_in:
          anyOf:
            - type: integer
            - type: 'null'
          title: Expires In
          description: Seconds until ``download_url`` stops working.
        submitted_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Submitted At
        key:
          type: string
          title: Key
      type: object
      required:
        - label
        - kind
        - key
      title: PlatformDocumentItemRead
      description: One thing being asked for, and the answer if it has been sent.
  securitySchemes:
    _AuthenticatedBearer:
      type: oauth2
      flows:
        password:
          scopes: {}
          tokenUrl: /v1/platform/auth/token

````