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

> Create a new beneficiary for payout.



## OpenAPI

````yaml /global-account/v1.6/banking.yaml post /v1/beneficiaries
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/beneficiaries:
    post:
      tags:
        - Beneficiaries
      summary: Create Beneficiary
      description: Create a new beneficiary for payout.
      operationId: create-beneficiary
      parameters:
        - $ref: '#/components/parameters/XOnBehalfOf'
        - $ref: '#/components/parameters/XIdempotencyKey'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BeneficiaryCreationRequest'
      responses:
        '200':
          headers:
            x-response-id:
              $ref: '#/components/headers/XResponseId'
          description: Beneficiary creation successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BeneficiaryCreationResponse'
                title: BeneficiaryCreationResponse
      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
    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:
    BeneficiaryCreationRequest:
      type: object
      discriminator:
        propertyName: entity_type
        mapping:
          INDIVIDUAL:
            $ref: '#/components/schemas/IndividualBeneficiaryCreation'
          COMPANY:
            $ref: '#/components/schemas/CompanyBeneficiaryCreation'
      properties:
        entity_type:
          type: string
          description: The type of beneficiary entity.
      oneOf:
        - $ref: '#/components/schemas/CompanyBeneficiaryCreation'
        - $ref: '#/components/schemas/IndividualBeneficiaryCreation'
    BeneficiaryCreationResponse:
      type: object
      properties:
        beneficiary_id:
          $ref: '#/components/schemas/BeneficiaryId'
        short_reference_id:
          $ref: '#/components/schemas/ShortReferenceId'
    IndividualBeneficiaryCreation:
      title: INDIVIDUAL
      type: object
      required:
        - entity_type
        - first_name
        - last_name
        - payment_method
        - bank_details
        - address
      properties:
        email:
          $ref: '#/components/schemas/BeneficiaryEmail'
        entity_type:
          $ref: '#/components/schemas/IndividualEntityType'
        payment_method:
          $ref: '#/components/schemas/PaymentMethod'
        nickname:
          $ref: '#/components/schemas/BeneficiaryNickname'
        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'
        additional_info:
          $ref: '#/components/schemas/BeneficiaryAdditionalInfo'
    CompanyBeneficiaryCreation:
      title: COMPANY
      type: object
      required:
        - entity_type
        - company_name
        - payment_method
        - bank_details
        - address
      properties:
        email:
          $ref: '#/components/schemas/BeneficiaryEmail'
        entity_type:
          $ref: '#/components/schemas/CompanyEntityType'
        company_name:
          $ref: '#/components/schemas/BeneficiaryCompanyName'
        payment_method:
          $ref: '#/components/schemas/PaymentMethod'
        nickname:
          $ref: '#/components/schemas/BeneficiaryNickname'
        bank_details:
          $ref: '#/components/schemas/BeneficiaryBankDetails'
        address:
          $ref: '#/components/schemas/BeneficiaryAddress'
        additional_info:
          $ref: '#/components/schemas/BeneficiaryAdditionalInfo'
    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.
    BeneficiaryEmail:
      type: string
      example: example@uqpay.com
      description: Email address of the beneficiary.
    IndividualEntityType:
      type: string
      example: INDIVIDUAL
      default: INDIVIDUAL
    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
    BeneficiaryNickname:
      type: string
      example: John Doe
      description: Nickname of the beneficiary.
      maxLength: 120
    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
    CompanyEntityType:
      type: string
      example: COMPANY
      default: COMPANY
    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 -_().,@#~!$%^&*+={}\|:"'<>?/・……]*$
    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
    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
    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 _().,@#~!$%^&*+={}\|:"'<>?/・……]*$
    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
    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.
  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
  securitySchemes:
    XAuthToken:
      type: apiKey
      in: header
      name: x-auth-token
      description: The API token for login provided by UQPay.

````