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

# Retrieve Payout

> Get a specific payout by specifying the payout_id.



## OpenAPI

````yaml /global-account/v1.6/banking.yaml get /v1/payouts/{id}
openapi: 3.0.2
info:
  title: Banking API
  version: 0.0.1
  description: >
    UQPAY Banking API provides comprehensive banking and payment solutions for
    global money movement.


    ## Key Features

    - International payments and transfers

    - Multi-currency account management

    - Real-time currency conversion

    - Virtual account services

    - Fund deposit and withdrawal


    ## Authentication

    Use API keys to authenticate your client requests when utilizing UQPAY APIs.

    API keys are unique data strings used to authenticate users and enable
    access to privileged operations.

    Your API key should be kept confidential and secure at all times.


    ## Service Components

    - **Payout**: Create and manage international fund transfers to
    beneficiaries

    - **Payer**: Manage entities making payments and authorizing fund transfers

    - **Beneficiary**: Handle recipient information and bank details

    - **Balance**: View and manage multi-currency account balances

    - **Deposit**: Process incoming fund transfers

    - **Virtual Accounts**: Utilize local bank accounts in foreign currencies

    - **Conversion**: Execute currency exchange at competitive rates


    ## Getting Started

    1. Obtain API credentials

    2. Set up test environment using sandbox URL

    3. Implement authentication

    4. Start with basic operations


    ## Support

    For technical support and integration assistance, contact UQPAY support
    team.
  contact:
    name: UQPAY Support
    url: https://www.uqpay.com/support
    email: banking.tech@uqpay.com
  license:
    name: Proprietary
    url: https://www.uqpay.com/legal/api-terms
  termsOfService: https://www.uqpay.com/legal/terms
  x-api-id: banking-api-v1.6.0
  x-logo:
    url: https://uqpay.com/img/UQPAY_LogoAnimv2.gif
    backgroundColor: '#FFFFFF'
    altText: UQPAY Logo
  x-categories:
    - Banking
    - Payment Processing
    - Foreign Exchange
servers:
  - url: https://api-sandbox.uqpaytech.com/api
    description: Sandbox base URL.
  - url: https://api.uqpay.com/api
    description: Production base URL.
security: []
tags:
  - name: Balances
    description: >-
      View and manage available funds across different currencies in your
      account.
  - name: Transfers
    description: >-
      A wallet transfer resource is used for sending funds directly from your
      UQPAY account to a connected account.
  - name: Deposits
    description: >-
      Deposits are bank transfers made into your UQPAY Global Accounts for
      adding funds or collecting funds from third parties.
  - name: Virtual Accounts
    description: >-
      Virtual Accounts function as local bank accounts in foreign currencies.
      They enable worldwide fund collection with account details that allow you
      to receive funds from various platforms. Virtual Accounts can also be used
      to top up your UQPAY balance.
  - name: Payout
    description: >-
      A Payout resource is created when you send funds to a beneficiary. It
      details the beneficiary, bank details, the amount being paid, its status,
      and other relevant information. You can create the payout using either
      direct beneficiary details or a previously created beneficiary ID.
  - name: Payers
    description: >-
      The payer is the party making the payout and authorizing the transfer of
      funds from their account to the beneficiary's account.
  - name: Beneficiaries
    description: >-
      The beneficiary is the recipient of the funds and is typically the party
      who will ultimately benefit from the payout.
  - name: Conversion
    description: Manage currency conversions and exchange rates for your transactions.
  - name: Exchange Rates
    description: >-
      Retrieve real-time exchange rates for a specified currency pair or all
      available pairs.
  - name: Global Accounts
    description: >-
      ⚠️ WARNING This API version is deprecated. Eventually, a deprecated API
      version becomes unsupported. Global Accounts are foreign currency accounts
      that function as local bank accounts.
  - name: Simulator
    description: Simulate deposit transactions on the sandbox environment.
paths:
  /v1/payouts/{id}:
    get:
      tags:
        - Payouts
      summary: Retrieve Payout
      description: Get a specific payout by specifying the payout_id.
      operationId: retrieve-payout
      parameters:
        - $ref: '#/components/parameters/XOnBehalfOf'
        - $ref: '#/components/parameters/IdPath'
      responses:
        '200':
          description: OK - Successfully retrieved a payout.
          headers:
            x-response-id:
              $ref: '#/components/headers/XResponseId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayoutDetailResponse'
                title: PayoutDetailResponse
      security:
        - XAuthToken: []
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-1).
        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
    IdPath:
      name: id
      description: Universally unique identifier (UUID v4) of a resource.
      in: path
      required: true
      schema:
        type: string
        format: uuid
        example: b3d9d2d5-4c12-4946-a09d-953e82sed2b0
  headers:
    XResponseId:
      description: >-
        Universally unique identifier (UUID v4) for the response. Helpful for
        identifying a request when communicating with UQPAY support.
      schema:
        type: string
        format: uuid
        example: 2adba88e-9d63-44bc-b975-9b6ae3440dde
  schemas:
    PayoutDetailResponse:
      type: object
      required:
        - unique_request_id
        - payout_id
        - amount_payer_pays
        - payout_currency
        - payout_amount
        - source_currency
        - source_amount
        - amount_beneficiary_receives
        - fee_paid_by
        - fee_currency
        - fee_amount
        - payout_date
        - short_reference_id
        - payout_reference
        - payout_reason
        - payout_status
        - create_time
        - update_time
        - complete_time
        - payout_method
        - payer
        - beneficiary
        - purpose_code
      properties:
        unique_request_id:
          $ref: '#/components/schemas/UniqueRequestId'
        payout_id:
          $ref: '#/components/schemas/PayoutId'
        amount_payer_pays:
          $ref: '#/components/schemas/AmountPayerPays'
        payout_currency:
          $ref: '#/components/schemas/Currency'
        payout_amount:
          $ref: '#/components/schemas/Amount'
        purpose_code:
          $ref: '#/components/schemas/PurposeCode'
        source_currency:
          $ref: '#/components/schemas/SourceCurrency'
        source_amount:
          $ref: '#/components/schemas/SourceAmount'
        amount_beneficiary_receives:
          $ref: '#/components/schemas/AmountBeneficiaryReceives'
        fee_paid_by:
          $ref: '#/components/schemas/FeePaidBy'
        fee_currency:
          $ref: '#/components/schemas/FeeCurrency'
        fee_amount:
          $ref: '#/components/schemas/FeeAmount'
        payout_date:
          $ref: '#/components/schemas/PayoutDate'
        short_reference_id:
          $ref: '#/components/schemas/PayoutShortReferenceId'
        payout_reference:
          $ref: '#/components/schemas/PayoutReference'
        payout_reason:
          $ref: '#/components/schemas/PayoutReason'
        payout_status:
          $ref: '#/components/schemas/PayoutStatus'
        create_time:
          $ref: '#/components/schemas/CreateTime'
          description: Create time of the payout.
        update_time:
          $ref: '#/components/schemas/UpdateTime'
          description: Update time of the payout.
        complete_time:
          $ref: '#/components/schemas/CompleteTime'
          description: Completed time of the payout.
        payout_method:
          $ref: '#/components/schemas/PaymentMethod'
        payer:
          type: object
          description: Details of the payer associated with this payout.
          properties:
            payer_id:
              $ref: '#/components/schemas/PayerId'
            entity_type:
              $ref: '#/components/schemas/PayerEntityType'
            country:
              $ref: '#/components/schemas/CountryCode'
            company_name:
              $ref: '#/components/schemas/CompanyName'
            first_name:
              $ref: '#/components/schemas/PayerFirstName'
            last_name:
              $ref: '#/components/schemas/PayerLastName'
            city:
              $ref: '#/components/schemas/PayerCity'
            address:
              $ref: '#/components/schemas/PayerAddress'
            state:
              $ref: '#/components/schemas/PayerState'
            postal_code:
              $ref: '#/components/schemas/PayerPostalCode'
            date_birth:
              $ref: '#/components/schemas/PayerBirthDate'
            identification_type:
              $ref: '#/components/schemas/IdentificationType'
            identification_value:
              $ref: '#/components/schemas/IdentificationValue'
        beneficiary:
          $ref: '#/components/schemas/BeneficiariesResponse'
        failure_returned_amount:
          $ref: '#/components/schemas/FailureReturnedAmount'
        failure_reason:
          $ref: '#/components/schemas/FailureReason'
        quote_id:
          $ref: '#/components/schemas/QuoteId'
        conversion:
          $ref: '#/components/schemas/PayoutConversion'
    UniqueRequestId:
      type: string
      format: uuid
      example: b3d9d2d5-4c12-4946-a09d-953e82sed2b0
      description: >-
        Universally unique identifier (UUID v4). This identifier will be used by
        the client in a POST operation to create the resource.
    PayoutId:
      type: string
      format: uuid
      example: b3d9d2d5-4c12-4946-a09d-953e82sed2b0
      description: Unique identifier for the payout.
    AmountPayerPays:
      type: string
      example: '1000.00'
      description: The amount actually paid by the payer for the payout.
    Currency:
      type: string
      example: USD
      description: >-
        Currency in which money is held in the beneficiary's bank account.
        Three-letter [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency
        code.
      maxLength: 3
      minLength: 3
    Amount:
      type: string
      example: '1000.00'
      description: |
        The amount that the payer will send out, in `currency`.
    PurposeCode:
      type: string
      example: AUDIO_VISUAL_SERVICES
      description: |
        Purpose code of payout and must be one of: 
          * `AUDIO_VISUAL_SERVICES` - Audiovisual services.
          * `BILL_PAYMENT` - Bill payment.
          * `BUSINESS_EXPENSES` - Business expenses.
          * `CONSTRUCTION` - Construction.
          * `DONATION_CHARITABLE_CONTRIBUTION` - Donation/charitable contribution.
          * `EDUCATION_TRAINING` - Education/training.
          * `FAMILY_SUPPORT` - Family support.
          * `FREIGHT` - Freight.
          * `GOODS_PURCHASED` - Goods purchased.
          * `INVESTMENT_CAPITAL` - Investment capital.
          * `INVESTMENT_PROCEEDS` - Investment proceeds.
          * `LIVING_EXPENSES` - Living expenses.
          * `LOAN_CREDIT_REPAYMENT` - Loan/credit repayment.
          * `MEDICAL_SERVICES` - Medical services.
          * `PENSION` - Pension.
          * `PERSONAL_REMITTANCE` - Personal remittance.
          * `PROFESSIONAL_BUSINESS_SERVICES` - Professional/business services.
          * `REAL_ESTATE` - Real estate.
          * `TAXES` - Taxes.
          * `TECHNICAL_SERVICES` - Technical services.
          * `TRANSFER_TO_OWN_ACCOUNT` - Transfer to own account.
          * `TRAVEL` - Travel.
          * `WAGES_SALARY` - Wages/salary.
    SourceCurrency:
      type: string
      example: USD
      description: |
        The currency that the payer will send out.  
      maxLength: 3
      minLength: 3
    SourceAmount:
      type: string
      example: '1000.00'
      description: The amount paid by the payer for the payout.
    AmountBeneficiaryReceives:
      type: string
      example: '1000.00'
      description: The amount received by the beneficiary.
    FeePaidBy:
      type: string
      example: SHARED
      description: >
        The charge type of payment fee. Will only be effective and required when
        `payment_method = SWIFT`.


        - `SHARED`: Transaction fees are split between payer and recipient;
        payer pays sending bank fees while recipient pays receiving bank fees.
        Available for SWIFT payouts when the payer is a company and the payer's
        country is one of the following: SG, VN, HK, or AU.

        - `OURS`: All transaction fees, including intermediary bank charges, are
        paid by the payer.
      enum:
        - SHARED
        - OURS
    FeeCurrency:
      type: string
      example: USD
      description: >-
        Currency used to pay fees. Three-letter [ISO
        4217](https://en.wikipedia.org/wiki/ISO_4217) currency code.
      maxLength: 3
      minLength: 3
    FeeAmount:
      type: string
      example: '1.00'
      description: Fee amount of the payout.
    PayoutDate:
      type: string
      format: date
      example: '2024-03-01'
      description: >-
        Date of when the system attempt to submit the payment to the
        beneficiary.
    PayoutShortReferenceId:
      type: string
      example: P220406-LLCVLRM
      description: The reference generated by the system to identify the payout.
    PayoutReference:
      type: string
      maxLength: 100
      example: '026073150'
      description: >
        Bank payment reference displayed in the beneficiary's bank transaction
        records. Sent to the recipient (e.g. For Further Credit, For Benefit of,
        or a custom message). aka Payment reference in Dashboard.


        - **SWIFT payments**: Must comply with the regex `/^[a-zA-Z0-9/-?:().'+,
        ]+$/`.  
          Allowed characters: English letters, digits, spaces, and the following special symbols: `- / ? : ( ) . ' + ,`.  
        - **LOCAL payments**: When `payment_method = LOCAL` and
        `account_currency_code` is not CNH or SGD, no input format validation is
        applied.
    PayoutReason:
      type: string
      maxLength: 200
      example: Audiovisual services
      description: >-
        The custom reason for the payout which displayed in the beneficiary's
        bank transaction records.
    PayoutStatus:
      type: string
      description: >
        The payout's status.


        - `READY_TO_SEND`: The payout has been validated and is ready for
        processing.

        - `PENDING`: The payout is currently being processed by the system.

        - `REJECTED`: The payout was rejected due to validation or compliance
        requirements not being met.

        - `FAILED`: The payout process encountered an error and could not be
        completed.

        - `COMPLETED`: The payout has been successfully processed and funds have
        been transferred.
      enum:
        - READY_TO_SEND
        - PENDING
        - REJECTED
        - FAILED
        - COMPLETED
    CreateTime:
      type: string
      format: date/time
      example: '2024-03-01T00:00:00+08:00'
      description: >-
        The timestamp when the record was created in the system. Timestamp
        follows the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) standard.
    UpdateTime:
      type: string
      format: date/time
      example: '2024-03-01T00:00:00+08:00'
    CompleteTime:
      type: string
      format: date/time
      example: '2024-03-01T00:00:00+08:00'
      description: >-
        The timestamp when the request was successfully processed and marked as
        `COMPLETED`.
    PaymentMethod:
      type: string
      example: LOCAL
      description: >
        The payment method needs to be specified to ensure that accurate banking
        details are captured and validated for the specified payment method.


        - `LOCAL`: Payment processed through domestic payment networks with
        local clearing systems.

        - `SWIFT`: International payment processed through the SWIFT network for
        cross-border transfers.
      enum:
        - LOCAL
        - SWIFT
    PayerId:
      type: string
      description: Universally unique identifier (UUID v4) of the payer.
      example: 7c4ff2cd-1bf6-4aaa-bf16-266771425011
      format: uuid
    PayerEntityType:
      type: string
      description: |
        Filter on entity type of the Payer.

        - `COMPANY`: A registered business entity, corporation, or organization.
        - `INDIVIDUAL`: A natural person acting in their personal capacity.
      enum:
        - COMPANY
        - INDIVIDUAL
    CountryCode:
      type: string
      example: SG
      description: >-
        Two-letter country code [ISO 3166-1
        alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
      maxLength: 2
      minLength: 2
    CompanyName:
      type: string
      example: UQPAY
      description: The name of the company (if the payer is a company).
    PayerFirstName:
      type: string
      maxLength: 50
      example: John
      description: Payer's first name.
    PayerLastName:
      type: string
      maxLength: 50
      example: Doe
      description: Payer's last name.
    PayerCity:
      type: string
      example: Singapore
      maxLength: 50
      description: City of the payer.
    PayerAddress:
      type: string
      example: 123 Main St
      maxLength: 500
      description: Line of address.
    PayerState:
      type: string
      example: CA
      description: State or province of the payer.
    PayerPostalCode:
      type: string
      maxLength: 10
      example: '123456'
      description: Postal code of the payer.
    PayerBirthDate:
      type: string
      example: '2001-01-28'
      description: Birth date of the payer.
    IdentificationType:
      type: string
      example: PASSPORT
      description: >
        Type of identification of the payer.


        - `PASSPORT`: Official international travel document issued by a
        government authority.

        - `DRIVERS_LICENSE`: Official driving permit issued by a government
        transportation authority.

        - `NATIONAL_ID`: Government-issued identification document for citizen
        verification.

        - `NRIC`: Singapore National Registration Identity Card for residents.

        - `CERTIFICATE_OF_INCORPORATION`: Official document proving a company's
        registered status and existence.
      enum:
        - PASSPORT
        - DRIVERS_LICENSE
        - NATIONAL_ID
        - NRIC
        - CERTIFICATE_OF_INCORPORATION
    IdentificationValue:
      type: string
      example: '12345678'
      description: >-
        A unique reference code for the identification document, such as a
        passport number.
    BeneficiariesResponse:
      type: object
      required:
        - beneficiary_id
        - short_reference_id
        - entity_type
        - payment_method
        - email
        - beneficiary_status
        - beneficiary_summary
        - beneficiary_bank_details
        - beneficiary_address
      properties:
        beneficiary_id:
          $ref: '#/components/schemas/BeneficiaryId'
        short_reference_id:
          $ref: '#/components/schemas/ShortReferenceId'
        entity_type:
          $ref: '#/components/schemas/EntityType'
        payment_method:
          $ref: '#/components/schemas/PaymentMethod'
        email:
          $ref: '#/components/schemas/BeneficiaryEmail'
        nickname:
          $ref: '#/components/schemas/BeneficiaryNickname'
        beneficiary_status:
          $ref: '#/components/schemas/BeneficiaryStatus'
        company_name:
          $ref: '#/components/schemas/BeneficiaryCompanyName'
        summary:
          $ref: '#/components/schemas/BeneficiarySummary'
        first_name:
          $ref: '#/components/schemas/FirstName'
        last_name:
          $ref: '#/components/schemas/LastName'
        id_number:
          $ref: '#/components/schemas/BeneficiaryIdNumber'
        bank_details:
          $ref: '#/components/schemas/BeneficiaryBankDetails'
        address:
          $ref: '#/components/schemas/BeneficiaryAddress'
        create_time:
          $ref: '#/components/schemas/CreateTime'
          description: Create time of the beneficiary.
        update_time:
          $ref: '#/components/schemas/UpdateTime'
          description: Update time of the beneficiary.
        additional_info:
          $ref: '#/components/schemas/BeneficiaryAdditionalInfo'
    FailureReturnedAmount:
      type: string
      example: '1000.00'
      description: The amount of the failed payout to be returned.
    FailureReason:
      type: string
      example: ''
      description: The reason why the payout failed.
    QuoteId:
      type: string
      example: 784832f7-1f8a-4b08-ac2a-8719b5b2a590
      description: >
        ID of the pre-created quote, obtained via [Create
        Quote](/global-account/v1.6/api-reference/create-quote).  


        Required only for cross-currency payout scenarios. 

        If provided, `payout_currency` and `payout_amount` must also be
        supplied.
    PayoutConversion:
      type: object
      description: |
        Details of the currency conversion for the payout.
        Required only for cross-currency payout scenarios.
      properties:
        currency_pair:
          type: string
          description: The currency pair that the rate is for.
          example: USDEUR
        client_rate:
          type: string
          description: The exchange rate applied to the transaction.
          example: '1.355957'
    BeneficiaryId:
      type: string
      format: uuid
      example: b3d9d2d5-4c12-4946-a09d-953e82sed2b0
      description: Universally unique identifier (UUID v4) of the beneficiary.
    ShortReferenceId:
      type: string
      example: P220406-LLCVLRM
      description: The reference generated by the system to identify the entity.
    EntityType:
      type: string
      description: |
        Specifies the type of beneficiary entity to filter by. Valid values are:
        - `COMPANY` : corporate entities 
        - `INDIVIDUAL` : personal accounts
      enum:
        - COMPANY
        - INDIVIDUAL
    BeneficiaryEmail:
      type: string
      example: example@uqpay.com
      description: Email address of the beneficiary.
    BeneficiaryNickname:
      type: string
      example: John Doe
      description: Nickname of the beneficiary.
      maxLength: 120
    BeneficiaryStatus:
      type: string
      example: ACTIVE
      description: >
        Status of the beneficiary.


        - `ACTIVE`: The beneficiary has been fully verified and is eligible to
        receive payments.

        - `PENDING`: The beneficiary is undergoing verification process and
        cannot yet receive payments.
      enum:
        - ACTIVE
        - PENDING
    BeneficiaryCompanyName:
      type: string
      example: UQPAY TECHNOLOGY SG PTE LTD
      description: >
        Company name of the beneficiary, only exist when the entity_type is
        COMPANY.


        - When `payment_method = SWIFT`:  
          * Only English letters, numbers, special characters (half-width format), and spaces can be included.  
          * Allowed special characters: `-_().,@#~ ! $ % ^ & * + = { } [ ] \ | : " ' < > ? /・……`  

        - When `payment_method = LOCAL`:  
          * No strict validation rules apply, local language characters are supported.

        - No need to pass this field when `bank_details.bank_country_code = SG`
        & `bank_details.account_currency_code = SGD` 

        - When `bank_country_code = CN` & `account_currency_code = CNH` &
        `payment_method = LOCAL` & `entity_type = COMPANY`, Chinese characters
        and Chinese parentheses `（）` are supported.
      maxLength: 120
      pattern: ^[a-zA-Z0-9 -_().,@#~!$%^&*+={}\|:"'<>?/・……]*$
    BeneficiarySummary:
      type: string
      example: John Doe
      description: Summary of the beneficiary.
    FirstName:
      type: string
      example: John
      description: >
        First name of the beneficiary, only exist when the entity_type is
        INDIVIDUAL.


        - When `payment_method = SWIFT`:  
          * Only English letters, numbers, special characters (half-width format), and spaces can be included.  
          * Allowed special characters: `-_().,@#~ ! $ % ^ & * + = { } [ ] \ | : " ' < > ? /・……`  

        - When `payment_method = LOCAL`:  
          * No strict validation rules apply, local language characters are supported.

        - No need to pass this field when `bank_details.bank_country_code = SG`
        & `bank_details.account_currency_code = SGD` 
      maxLength: 45
      pattern: ^[a-zA-Z0-9 -_().,@#~!$%^&*+={}\|:"'<>?/・……]*$
    LastName:
      type: string
      example: Doe
      description: >
        Last name of the beneficiary, only exist when the entity_type is
        INDIVIDUAL.


        - When `payment_method = SWIFT`:  
          * Only English letters, numbers, special characters (half-width format), and spaces can be included.  
          * Allowed special characters: `-_().,@#~ ! $ % ^ & * + = { } [ ] \ | : " ' < > ? /・……`  

        - When `payment_method = LOCAL`:  
          * No strict validation rules apply, local language characters are supported.

        - No need to pass this field when `bank_details.bank_country_code = SG`
        & `bank_details.account_currency_code = SGD` 
      maxLength: 45
      pattern: ^[a-zA-Z0-9 -_().,@#~!$%^&*+={}\|:"'<>?/・……]*$
    BeneficiaryIdNumber:
      type: string
      example: '110101199001011234'
      description: >
        The identification number of the individual beneficiary.  

        Mandatory when the beneficiary is a Mainland China resident and the
        following conditions are met:  

        - `bank_details.account_currency_code` is `CNH`  

        - `payment_method` is `LOCAL`
    BeneficiaryBankDetails:
      type: object
      required:
        - bank_name
        - bank_address
        - bank_country_code
        - account_holder
        - account_currency_code
        - clearing_system
        - swift_code
      properties:
        bank_name:
          $ref: '#/components/schemas/BankName'
        bank_address:
          $ref: '#/components/schemas/BankAddress'
        bank_country_code:
          $ref: '#/components/schemas/CountryCode'
        account_holder:
          $ref: '#/components/schemas/AccountHolder'
        account_currency_code:
          $ref: '#/components/schemas/Currency'
        account_number:
          $ref: '#/components/schemas/AccountNumber'
        iban:
          $ref: '#/components/schemas/Iban'
        swift_code:
          $ref: '#/components/schemas/SwiftCode'
        clearing_system:
          $ref: '#/components/schemas/ClearingSystem'
        routing_code_type1:
          $ref: '#/components/schemas/RoutingCodeType1'
        routing_code_value1:
          $ref: '#/components/schemas/RoutingCodeValue1'
        routing_code_type2:
          $ref: '#/components/schemas/RoutingCodeType2'
        routing_code_value2:
          $ref: '#/components/schemas/RoutingCodeValue2'
    BeneficiaryAddress:
      type: object
      required:
        - country
        - city
        - street_address
        - postal_code
        - state
      description: >
        Address of the beneficiary.


        - No need to pass this field when `bank_details.bank_country_code = SG`
        & `bank_details.account_currency_code = SGD` 
      properties:
        country:
          $ref: '#/components/schemas/CountryCode'
        nationality:
          $ref: '#/components/schemas/BeneficiaryNationality'
        city:
          $ref: '#/components/schemas/City'
        street_address:
          $ref: '#/components/schemas/StreetAddress'
        postal_code:
          $ref: '#/components/schemas/PostalCode'
        state:
          $ref: '#/components/schemas/State'
    BeneficiaryAdditionalInfo:
      type: object
      description: |
        Additional information for beneficiaries.
      properties:
        organization_code:
          $ref: '#/components/schemas/OrganizationCode'
        proxy_id:
          $ref: '#/components/schemas/ProxyId'
        id_type:
          type: string
          example: PASSPORT
          description: >
            Identification document type for individual beneficiaries. 


            - Required when bank_details.account_currency_code = COP &
            entity_type = INDIVIDUAL.
          enum:
            - PASSPORT
            - NATIONAL_ID
            - DRIVERS_LICENSE
        id_number:
          type: string
          example: AB1234567
          description: >
            Identification number for individual beneficiaries. 


            - Required when bank_details.account_currency_code = COP &
            entity_type = INDIVIDUAL.
        tax_id:
          type: string
          example: '123456789'
          description: >
            Tax identification number for company beneficiaries. 


            - Required when bank_details.account_currency_code = COP &
            entity_type = COMPANY.
        msisdn:
          type: string
          example: '+65111111'
          description: >
            Mobile phone number in international format with country code. 


            - Format: +[country_code][phone_number], e.g., +65111111. 

            - Required when bank_details.account_currency_code = COP.

            - Required when bank_details.account_currency_code = HKD &
            clearing_system = LOCAL
    BankName:
      type: string
      example: Bank of America
      description: Name of the bank.
      maxLength: 240
    BankAddress:
      type: string
      example: 123 Main St
      description: Address of the bank.
      maxLength: 240
    AccountHolder:
      type: string
      example: John Doe
      description: >
        Account holder name of the beneficiary's bank account.


        - When `payment_method = SWIFT`:  
          * Only English letters, numbers, special characters (half-width format), and spaces can be included.  
          * Allowed special characters: `-_().,@#~ ! $ % ^ & * + = { } [ ] \ | : " ' < > ? /・……`  

        - When `payment_method = LOCAL`:  
          * No strict validation rules apply, local language characters are supported.


        - When `entity_type = INDIVIDUAL`, `bank_details.bank_country_code =
        SG`, and `bank_details.account_currency_code = SGD`, another validation
        rules apply:
          * `account_holder` must contain only English alphabetic characters (A–Z, a–z) and spaces.  
          * Length must be between 2 and 140 characters.  
          * At least one space is required to separate first name and last name. 
        - If the `bank_country_code = CN`, `account_currency_code = CNH`, and
        `payment_method = LOCAL` please provide the account holder name in
        **Chinese characters**, as required by local banks.
          * Furthermore, when `entity_type = COMPANY`, Chinese parentheses `（）` are also supported.
      maxLength: 240
      pattern: ^[a-zA-Z0-9 _().,@#~!$%^&*+={}\|:"'<>?/・……]*$
    AccountNumber:
      type: string
      example: '12345678'
      description: >
        Account number, mostly for non-european countries, either account_number
        or iban should be filled.


        Only English letters (uppercase and lowercase) and digits are allowed;
        dashes or other special characters are not permitted.
      pattern: ^[a-zA-Z0-9]*$
      maxLength: 60
    Iban:
      type: string
      example: GB82 WEST 1234 5698 7654 32
      description: >
        For the following countries/regions, **IBAN is mandatory** (mostly
        applicable to European and some other countries):


        **Country Codes**:

        `AL`, `AD`, `AT`, `AZ`, `BH`, `BY`, `BE`, `BA`, `BR`, `BG`, `CR`, `HR`,
        `CY`, `CZ`, `DK`, `DO`, `EG`, `SV`, `EE`, `FO`, `FI`, `FR`, `GE`, `DE`,
        `GI`, `GR`, `GL`, `GT`, `VA`, `HU`, `IS`, `IQ`, `IE`, `IL`, `IT`, `JO`,
        `KZ`, `XK`, `KW`, `LV`, `LB`, `LY`, `LI`, `LT`, `LU`, `MT`, `MR`, `MU`,
        `MD`, `MC`, `ME`, `NL`, `MK`, `NO`, `PK`, `PS`, `PL`, `PT`, `QA`, `RO`,
        `LC`, `SM`, `ST`, `SA`, `RS`, `SC`, `SK`, `SI`, `ES`, `SD`, `SE`, `CH`,
        `TL`, `TN`, `TR`, `UA`, `AE`, `GB`, `VG`.


        If the beneficiary bank is located in any of the above-listed
        countries/regions, **IBAN must be provided**.
      maxLength: 36
    SwiftCode:
      type: string
      example: WELGBE22
      description: Swift code of the beneficiary's bank account.
      maxLength: 30
    ClearingSystem:
      type: string
      example: GIRO
      description: >
        Specifies the clearing system to be used for the transaction. The
        available options vary by currency and correspond to the local payment
        infrastructure.  


        - **USD:** `ACH`, `Fedwire`, `SWIFT`

        - **SGD:** `FAST`, `GIRO`, `RTGS`, `SWIFT`, `PayNow`

        - **CNH:** `LOCAL`, `SWIFT`

        - **HKD:** `ACH`, `FPS`, `RTGS`, `SWIFT`

        - **EUR:** `LOCAL`, `SWIFT`

        - **CAD:** `EFT`, `Interac e-Transfer`, `SWIFT`, `Bill Payment`

        - **MYR:** `LOCAL`

        - **GBP:** `Faster Payments`, `CHAPS`, `SWIFT`

        - **IDR:** `LOCAL`

        - **JPY:** `LOCAL`, `SWIFT`

        - **NZD:** `Bank Transfer`, `SWIFT`

        - **AUD:** `Bank Transfer`, `SWIFT`
      maxLength: 30
    RoutingCodeType1:
      type: string
      example: aba
      description: |
        Routing code type, must be one of: 
          * `ach` - Required when account_currency_code = "USD" and clearing_system = "ACH".
          * `aba` 
            - Required when account_currency_code = "USD" and clearing_system = "FEDWIRE".
            - Required when account_currency_code = "USD" and clearing_system = "SWIFT" and bank_country_code = "US"
          * `bank_code` - Required when account_currency_code = "CAD" and clearing_system = "EFT" OR account_currency_code = "HKD" and clearing_system = "LOCAL".
          * `sort_code` - Required when account_currency_code = "GBP" and clearing_system = "FASTER PAYMENTS". **Must be exactly 6 digits.**
          * `bsb_code` - Required when account_currency_code = "AUD" and clearing_system = "LOCAL".
          * `ifsc` - Required when account_currency_code = "INR" and clearing_system = "IFSC".
          * `cnaps_number` - Required when account_currency_code = "CNH" and bank_country_code = "CN".
      maxLength: 12
    RoutingCodeValue1:
      type: string
      example: '123456789'
      description: >-
        Routing code value.Routing code for routing_code_type_1.If supplied,
        routing_code_type_1 should also be supplied.
      maxLength: 48
    RoutingCodeType2:
      type: string
      example: ach
      description: |
        Routing code sub type.
          * `branch_code` - Required when account_currency_code = "CAD" and clearing_system = "EFT".
      maxLength: 12
    RoutingCodeValue2:
      type: string
      example: '123456789'
      description: >-
        Routing code sub type value.Routing code for routing_code_type_2.If
        supplied, routing_code_type_2 should also be supplied.
      maxLength: 48
    BeneficiaryNationality:
      type: string
      example: SG
      description: |
        Two-letter country code representing nationality of the beneficiary.
      maxLength: 2
      minLength: 2
    City:
      type: string
      example: Singapore
      description: >
        City of the beneficiary.


        For request validation, non-empty values must match
        `^[A-Za-z0-9\s\-_().,:@#~!$%^&*+={}\[\]\\|"'<>?/・……]+$`. This applies to
        all currencies and payment methods.


        Empty strings and omitted fields skip the character-regex check; whether
        the field is required is still determined by the existing required-field
        rules for the endpoint and payout scenario.
      maxLength: 36
      pattern: ^[A-Za-z0-9\s\-_().,:@#~!$%^&*+={}\[\]\\|"'<>?/・……]+$
    StreetAddress:
      type: string
      example: 123 Main St
      description: >
        Street of the beneficiary.


        For request validation, non-empty values must match
        `^[A-Za-z0-9\s\-_().,:@#~!$%^&*+={}\[\]\\|"'<>?/・……]+$`. This applies to
        all currencies and payment methods.


        Empty strings and omitted fields skip the character-regex check; whether
        the field is required is still determined by the existing required-field
        rules for the endpoint and payout scenario.
      maxLength: 255
      pattern: ^[A-Za-z0-9\s\-_().,:@#~!$%^&*+={}\[\]\\|"'<>?/・……]+$
    PostalCode:
      type: string
      example: '123456'
      description: Postal code of the beneficiary.
      maxLength: 12
    State:
      type: string
      example: CA
      description: >
        State or province of the beneficiary.


        For request validation, non-empty values must match
        `^[A-Za-z0-9\s\-_().,:@#~!$%^&*+={}\[\]\\|"'<>?/・……]+$`. This applies to
        all currencies and payment methods.


        Empty strings and omitted fields skip the character-regex check; whether
        the field is required is still determined by the existing required-field
        rules for the endpoint and payout scenario.
      maxLength: 96
      pattern: ^[A-Za-z0-9\s\-_().,:@#~!$%^&*+={}\[\]\\|"'<>?/・……]+$
    OrganizationCode:
      type: string
      example: 91210106MA0P46BWXY
      description: >-
        The Unified Social Credit Identifier assigned to the organization. This
        field is for companies registered in Mainland China.
    ProxyId:
      type: string
      description: >-
        PayNow proxy identifier (SGD). Supports UEN, phone number, or VPA as the
        value.
  securitySchemes:
    XAuthToken:
      type: apiKey
      in: header
      name: x-auth-token
      description: The API token for login provided by UQPay.

````