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

# Submit Card Processing Supporting Documents

> Submit (or replace) a merchant's supporting documents.

Replaces the whole packet: a document slot survives only when a new file is
uploaded for it or it is named in `keep_existing`. The voided check and
bank statements are required; processing statements are not.

Not available once the account is approved — at that point the documents
are the record the boarding decision was made on.



## OpenAPI

````yaml PUT /v1/platform/card-processing/merchants/{card_acquiring_id}/merchant-info
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/card-processing/merchants/{card_acquiring_id}/merchant-info:
    put:
      tags:
        - card processing
      summary: Submit Card Processing Supporting Documents
      description: >-
        Submit (or replace) a merchant's supporting documents.


        Replaces the whole packet: a document slot survives only when a new file
        is

        uploaded for it or it is named in `keep_existing`. The voided check and

        bank statements are required; processing statements are not.


        Not available once the account is approved — at that point the documents

        are the record the boarding decision was made on.
      operationId: >-
        submit_card_processing_merchant_info_v1_platform_card_processing_merchants__card_acquiring_id__merchant_info_put
      parameters:
        - name: card_acquiring_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            title: Card Acquiring Id
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: >-
                #/components/schemas/Body_submit_card_processing_merchant_info_v1_platform_card_processing_merchants__card_acquiring_id__merchant_info_put
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommonResponse_MerchantInfoRead_'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - _AuthenticatedBearer: []
components:
  schemas:
    Body_submit_card_processing_merchant_info_v1_platform_card_processing_merchants__card_acquiring_id__merchant_info_put:
      properties:
        payload:
          type: string
          title: Payload
          description: >-
            JSON object with `website`, `average_ticket_minor`,
            `monthly_volume_minor`, `max_ticket_minor` and an optional
            `keep_existing` list of document slots to carry forward unchanged.
            Amounts are minor units (cents).
        voided_check:
          anyOf:
            - type: string
              format: binary
            - type: 'null'
          title: Voided Check
          description: Voided check for the account settlements should land in.
        bank_statements:
          anyOf:
            - type: string
              format: binary
            - type: 'null'
          title: Bank Statements
          description: Last 3 months of business bank statements, one file.
        processing_statements:
          anyOf:
            - type: string
              format: binary
            - type: 'null'
          title: Processing Statements
          description: >-
            Last 3 months of merchant processing statements. Optional — only
            applies when the business already processes with another provider.
      type: object
      required:
        - payload
      title: >-
        Body_submit_card_processing_merchant_info_v1_platform_card_processing_merchants__card_acquiring_id__merchant_info_put
    CommonResponse_MerchantInfoRead_:
      properties:
        status_code:
          type: integer
          title: Status Code
          description: HTTP status code for the response.
        data:
          $ref: '#/components/schemas/MerchantInfoRead'
          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[MerchantInfoRead]
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    MerchantInfoRead:
      properties:
        merchant_id:
          type: string
          format: uuid
          title: Merchant Id
        submitted:
          type: boolean
          title: Submitted
          description: False when no packet has ever been submitted for this merchant.
          default: false
        writable:
          type: boolean
          title: Writable
          description: >-
            True while the packet can still be submitted or requested — that is,
            while the account is pre-decision (draft, applied, processing,
            info_required). False once it is approved, declined or suspended, at
            which point both write endpoints respond 409.
          default: false
        website:
          anyOf:
            - type: string
            - type: 'null'
          title: Website
        average_ticket_minor:
          anyOf:
            - type: integer
            - type: 'null'
          title: Average Ticket Minor
        monthly_volume_minor:
          anyOf:
            - type: integer
            - type: 'null'
          title: Monthly Volume Minor
        max_ticket_minor:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Ticket Minor
        submitted_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Submitted At
        documents:
          items:
            $ref: '#/components/schemas/MerchantInfoDocumentRead'
          type: array
          title: Documents
      type: object
      required:
        - merchant_id
      title: MerchantInfoRead
      description: The stored merchant_info packet, documents resolved to download URLs.
    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
    MerchantInfoDocumentRead:
      properties:
        slot:
          type: string
          title: Slot
        file_name:
          anyOf:
            - type: string
            - type: 'null'
          title: File Name
        content_type:
          anyOf:
            - type: string
            - type: 'null'
          title: Content Type
        uploaded_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Uploaded At
        download_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Download Url
        expires_in:
          anyOf:
            - type: integer
            - type: 'null'
          title: Expires In
        file_state:
          anyOf:
            - type: string
            - type: 'null'
          title: File State
          description: >-
            Why this document has no ``download_url``: 'scanning' (awaiting a
            malware verdict), 'blocked' (refused by one), or 'gone'.
      type: object
      required:
        - slot
      title: MerchantInfoDocumentRead
      description: >-
        One stored document with a short-lived download URL.


        ``download_url`` is ``None`` when the object could not be signed
        (missing

        key, bucket no longer allowed). One unreadable document must not fail
        the

        whole packet, so the failure is surfaced per row instead of raised.
  securitySchemes:
    _AuthenticatedBearer:
      type: oauth2
      flows:
        password:
          scopes: {}
          tokenUrl: /v1/platform/auth/token

````