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

# Create Bank Account

> Create a linked bank account for OTC settlement.

## Overview

This page documents the `POST /withdraw/open/otc/api/bank/create` endpoint. The full schema, parameters, and examples are rendered from the linked OpenAPI definition above.

## Notes

* Authentication uses the standard GatePay signed headers.
* This page documents the standard merchant endpoint.
* For shared signing rules, see [/api-reference/version/100/en/common/securityAndSignature](/api-reference/version/100/en/common/securityAndSignature).

## Supplemental Field Notes

### Request Format

* Content-Type: `multipart/form-data`
* Use this endpoint to add a bank account before OTC fiat withdrawal. A bank statement file must be uploaded together with the bank account details.

### `file` Upload Requirements

* Type: `file`
* Required: Yes
* Description: The file must not exceed 4 MB and only `jpg`, `jpeg`, and `png` formats are accepted. Upload a bank statement issued within the last 3 months. The bank account name must exactly match the verified identity name. If there is any difference due to language or similar reasons, also provide supporting documents such as a bank certification letter, passport, or an official name-change receipt.


## OpenAPI

````yaml /api-reference/version/100/en/openapi/otc-fiat-openapi.json POST /withdraw/open/otc/api/bank/create
openapi: 3.1.0
info:
  title: GatePay OTC Fiat API
  description: Reference for OTC fiat withdrawal and deposit APIs.
  version: 2.1.0
servers:
  - url: https://openplatform.gateapi.io
security: []
paths:
  /withdraw/open/otc/api/bank/create:
    post:
      summary: Create Bank Account
      description: Create a linked bank account for OTC settlement.
      parameters:
        - $ref: '#/components/parameters/X-GatePay-Certificate-ClientId'
        - $ref: '#/components/parameters/X-GatePay-Signature'
        - $ref: '#/components/parameters/X-GatePay-Timestamp'
        - $ref: '#/components/parameters/X-GatePay-Nonce'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/BankCreateRequest'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankCreateResponse'
components:
  parameters:
    X-GatePay-Certificate-ClientId:
      name: X-GatePay-Certificate-ClientId
      in: header
      required: true
      schema:
        type: string
      description: Merchant application client ID used to identify the calling app.
    X-GatePay-Signature:
      name: X-GatePay-Signature
      in: header
      required: true
      schema:
        type: string
      description: >-
        HMAC signature generated from the request according to GatePay signing
        rules.
    X-GatePay-Timestamp:
      name: X-GatePay-Timestamp
      in: header
      required: true
      schema:
        type: string
      description: Unix timestamp used for replay protection and signature verification.
    X-GatePay-Nonce:
      name: X-GatePay-Nonce
      in: header
      required: true
      schema:
        type: string
      description: Random nonce used together with the timestamp to prevent replay attacks.
  schemas:
    BankCreateRequest:
      type: object
      properties:
        bankAccountName:
          type: string
          description: Bank account name.
        bankName:
          type: string
          description: Bank name.
        countryId:
          type: integer
          description: Country ID.
        address:
          type: string
          description: Bank address.
        iban:
          type: string
          description: Account number or IBAN.
        swift:
          type: string
          description: SWIFT.
        remittanceLineNumber:
          type: string
          description: Routing or clearing code.
        agentBankName:
          type: string
          description: Agent bank name.
        agentBankSwift:
          type: string
          description: Agent bank SWIFT.
        file:
          type: string
          format: binary
          description: >-
            Bank statement file. The file must not exceed 4 MB and only jpg,
            jpeg, and png formats are accepted. Upload a bank statement issued
            within the last 3 months. The bank account name must exactly match
            the verified identity name. If there is any difference due to
            language or similar reasons, also provide supporting documents such
            as a bank certification letter, passport, or an official name-change
            receipt.
      required:
        - bankAccountName
        - bankName
        - countryId
        - address
        - iban
        - swift
        - file
    BankCreateResponse:
      type: object
      properties:
        code:
          type: string
          description: Business response code.
        status:
          type: string
          description: Top-level request status.
        errorMessage:
          type: string
          description: Error message returned when the request fails.
        data:
          type: object
          properties:
            bankAccountId:
              type: string
              description: Bank account ID.
            needSupplementMaterial:
              type: boolean
              description: >-
                Whether supplementary KYC or compliance materials are still
                required for this bank account. When `true`, submit the
                requested documents as prompted (for example with Submit Bank
                Account Material Supplement).
          description: Created bank account information.
      example:
        code: '000000'
        data:
          bankAccountId: '2897434'
          needSupplementMaterial: false
        status: SUCCESS
        errorMessage: ''

````