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

# Create Bank Account

> Create a new bank account for settlement purposes.



## OpenAPI

````yaml /global-acquiring/v1.6/payment.yaml post /v2/payment/bankaccount/create
openapi: 3.0.2
info:
  title: Payment API
  version: 0.0.1
  description: >
    UQPAY Payment API allows you to accept payments, manage transactions, and
    process refunds and payouts.


    ## What you can do

    - Create and confirm payment intents using cards, digital wallets, and local
    payment methods

    - Process full and partial refunds

    - Manage customers and saved payment methods

    - Create payouts and bank account records

    - Query payment attempts, balances, and transaction history


    ## Authentication

    All requests require a valid auth token obtained via the [Access
    Token](/account-center/v1.6/api-reference/access-token) endpoint. Include
    the token in the `x-auth-token` header.


    ## Idempotency

    POST requests support the `x-idempotency-key` header to safely retry without
    creating duplicate resources.
  contact:
    name: UQPAY Support Team
    url: https://www.uqpay.com/support
    email: support@uqpay.com
  license:
    name: Proprietary
    url: https://www.uqpay.com/legal/api-terms
  termsOfService: https://www.uqpay.com/legal/terms
servers:
  - url: https://api-sandbox.uqpaytech.com/api
    description: Sandbox base URL.
  - url: https://api.uqpay.com/api
    description: Production base URL.
security:
  - XAuthToken: []
tags:
  - name: Customers
    description: >-
      Create and manage customer profiles. Customer objects store payment
      methods and billing details for use across multiple payments.
  - name: Payment Intents
    description: >-
      A PaymentIntent guides you through the process of collecting a payment
      from your customer. We recommend that you create exactly one PaymentIntent
      for each order or customer session in your system. You can reference the
      PaymentIntent later to see the history of payment attempts for a
      particular session.
  - name: Payment Attempts
    description: >-
      A PaymentAttempt object is created whenever a customer makes a payment
      with the chosen PaymentMethod. This API allows you to find out how your
      customer paid for your order.
  - name: Payment Refunds
    description: >
      You can create multiple partial refunds until reaching the original
      transaction amount. Each refund generates a unique record and undergoes
      automatic validation against available balances.

      A PaymentIntent guides you through the process of collecting a payment
      from your customer. We recommend that you create exactly one PaymentIntent
      for each order or customer session in your system. You can reference the
      PaymentIntent later to see the history of payment attempts for a
      particular session.
  - name: Payment Balances
    description: >
      Payment balance management allows you to query account balances for
      different currencies. You can retrieve individual currency balances or all
      currency balances with pagination support.
  - name: Payment Payouts
    description: >
      Payout management allows you to create and manage payout orders for fund
      transfers. You can create payouts, query individual payouts, and list all
      payouts with filtering and pagination support.
  - name: Terminal Management
    description: Terminal management APIs for POS device registration and key management.
  - name: Bank Accounts
    description: >
      Bank account management APIs for settlement accounts. Create, update,
      retrieve, and list bank accounts used for receiving settlement payments.
paths:
  /v2/payment/bankaccount/create:
    post:
      tags:
        - Bank Accounts
      summary: Create Bank Account
      description: Create a new bank account for settlement purposes.
      operationId: create-bank-account
      parameters:
        - $ref: '#/components/parameters/XOnBehalfOf'
        - $ref: '#/components/parameters/XIdempotencyKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BankAccountCreateRequest'
      responses:
        '200':
          description: Bank account created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankAccountResponse'
components:
  parameters:
    XOnBehalfOf:
      in: header
      name: x-on-behalf-of
      schema:
        type: string
      required: false
      description: >
        Specifies the sub-account on whose behalf the request is made. This
        should be set to the `account_id`, which can be retrieved via the [List
        Connected
        Accounts](/account-center/v1.6/api-reference/list-connected-accounts).
        If omitted or empty, the request is executed using the master account.

        More information at [Connected
        Accounts](/account-center/v1.6/guide/connected-accounts).
      example: 18523f72-f4de-4f9c-bb8e-ec7d1c4f32be
    XIdempotencyKey:
      in: header
      name: x-idempotency-key
      schema:
        type: string
        format: uuid
      required: true
      description: >-
        A unique identifier (UUID) used to maintain operation idempotency,
        ensuring that repeated executions of the same operation do not result in
        unintended effects or duplication. It helps preserve data consistency in
        the face of network errors, retries, or failures.
      example: 2adesf8e-9d63-44bc-b975-9b6ae3440dde
  schemas:
    BankAccountCreateRequest:
      type: object
      required:
        - currency
        - account_number
        - bank_name
        - swift_code
        - bank_country_code
        - bank_address
      allOf:
        - $ref: '#/components/schemas/BankAccountBase'
        - type: object
          properties:
            currency:
              $ref: '#/components/schemas/Currency'
              description: Currency of the settlement account.
              example: SGD
          required:
            - currency
    BankAccountResponse:
      type: object
      allOf:
        - $ref: '#/components/schemas/BankAccountBase'
        - type: object
          properties:
            id:
              type: string
              description: Unique identifier (UUID) of the bank account.
              example: a7b92a19-bfc3-4c8b-8a4f-cfcf74cab345
            account_name:
              type: string
              description: Name of the account holder.
              example: UQPAY PTE. LTD.
            currency:
              $ref: '#/components/schemas/Currency'
              description: Currency of the settlement account.
              example: SGD
            account_status:
              $ref: '#/components/schemas/BankAccountStatus'
    BankAccountBase:
      type: object
      description: Common bank account properties shared between request and response.
      properties:
        account_number:
          type: string
          description: Bank account number (e.g., IBAN).
          example: GB71950018692652646598
          maxLength: 60
          minLength: 5
        bank_name:
          type: string
          description: Name of the bank.
          example: DBS Bank
        swift_code:
          type: string
          description: SWIFT/BIC code of the bank.
          example: DBSSSGSG
          maxLength: 11
          minLength: 8
        bank_country_code:
          type: string
          description: Two-letter country code (ISO 3166-1 alpha-2) of the bank.
          minLength: 2
          maxLength: 2
          example: SG
          format: iso-3166-1-alpha-2
        bank_address:
          type: string
          description: Physical address of the bank.
          example: 12 Marina Boulevard, Singapore 018982
        bank_code_type:
          $ref: '#/components/schemas/BankCodeType'
        bank_code_value:
          type: string
          description: >
            The bank identifier value. The required format depends on the
            selected

            `bank_code_type`. 


            Accepted formats by `bank_code_type`:
              - `aba`: Exactly 9 digits.
              - `bank_code`: Exactly 3 digits.
              - `sort_code`: Exactly 6 digits.
              - `bsb_code`: Exactly 6 digits.
              - `ifsc`: Exactly 11 characters in the format:
                  - First 4 characters: letters (A–Z)
                  - 5th character: the digit 0
                  - Last 6 characters: letters (A–Z) or digits (0–9)
              - `cnaps_number`: Exactly 12 digits.
          example: '021000021'
        bank_branch_code:
          type: string
          description: Bank branch code. Required when currency = "CAD".
          example: '00001'
    Currency:
      type: string
      description: Three-letter currency code
    BankAccountStatus:
      type: string
      description: >
        Status of the bank account.


        - `Valid`: The bank account is active and can be used for settlements.

        - `Invalid`: The bank account is inactive and cannot be used for
        settlements.
      enum:
        - Valid
        - Invalid
      example: Valid
    BankCodeType:
      type: string
      description: >
        Type of bank routing code. Required based on currency and country:

        - `aba` - Required when currency = "USD" and bank_country_code = "US"

        - `bank_code` - Required when currency = "CAD" or currency = "HKD"

        - `sort_code` - Required when currency = "GBP"

        - `bsb_code` - Required when currency = "AUD"

        - `ifsc` - Required when currency = "INR"

        - `cnaps_number` - Required when currency = "CNH" and bank_country_code
        = "CN"
      enum:
        - aba
        - bank_code
        - sort_code
        - bsb_code
        - ifsc
        - cnaps_number
      example: aba
  securitySchemes:
    XAuthToken:
      type: apiKey
      in: header
      name: x-auth-token
      description: The API token for login provided by UQPay.

````