---
title: "Create Payout"
method: POST
path: "/v1/payouts"
tags: ["Payouts"]
---

# Create Payout

`POST /v1/payouts`

Creates a new payout to a beneficiary. With development and support from SWIFT and local payment rails, you can make faster and more cost-effective international payments to your overseas corporate accounts, suppliers, and employees.

This API supports multiple payment modes, including standard payouts and Payment-On-Behalf-Of (POBO), enabling flexible and efficient fund management. Additionally, you can select the fee payment method to control how transaction fees are handled.

#### Usage Guidelines
- Supports payouts to over 180 countries in 30+ currencies, including CNY payouts in Mainland China.
- Sub-accounts for POBO transactions must be created in advance, and the account status must be active.
- To enable POBO mode, include the `x-on-behalf-of` parameter in the request header and specify the sub-account ID used for the payout. The beneficiary will see the customized payer name instead of the actual paying entity.
- Users can select the fee charge type by `fee_paid_by` parameter to determine who covers transaction costs:
  1. `SHARED` – Transaction fees are split between payer and recipient; payer pays sending bank fees while recipient pays receiving bank fees.
  2. `OURS` – All transaction fees, including intermediary bank charges, are paid by the payer.
- There are two ways to specify the beneficiary:
  1. Using `beneficiary_id` – If the beneficiary has already been created, provide the `beneficiary_id` to reference an existing beneficiary.
  2. Providing full beneficiary details – If the beneficiary has not been created before, include the full beneficiary information in the request. In this case, do not pass `beneficiary_id`.

  **Note**: A beneficiary will be created when full details are provided. For any future payouts to the same beneficiary, you should pass the corresponding `beneficiary_id`, not the full details of beneficiary.

- If you intend to make cross-currency payouts, you can refer to the [Cross-Currency Guide](/global-account/v1.6/guide/cross-currency-payout-guide) for details and examples.

## Headers

- `x-on-behalf-of` string
- `x-idempotency-key` string, uuid

## Request body

- PayoutCreationRequest
  - `currency` string, required — The currency that the payer will send out.
  - `amount` string, required
  - `quote_id` string — 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.
  - `payout_currency` string — The currency that the beneficiary will receive. Refer to [Supported Currencies](/global-account/v1.6/guide/cross-currency-payout-supported-currency-pairs) for the complete list of available currencies. Required when `quote_id` is specified. Must match the `buy_currency` returned in the Create Quote response.
  - `payout_amount` string, decimal — The amount that the beneficiary will receive, in `payout_currency`. Required when `quote_id` is specified. Must match the `buy_amount` returned in the Create Quote response.
  - `purpose_code` string, required — 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.
  - `payout_reference` string, required — 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.
  - `fee_paid_by` 'SHARED' | 'OURS', required — 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.
  - `payout_date` string, date, required — Date of when the system attempt to submit the payment to the beneficiary.
  - `beneficiary_id` string, uuid — Universally unique identifier (UUID v4) of the beneficiary, This may be provided in place of the beneficiary section and should be empty if the beneficiary fields are provided, and vice versa.
  - `beneficiary` union
    - object
      - `entity_type` string, required — The type of beneficiary entity.
      - `email` string — Email address of the beneficiary.
      - `company_name` string, required — 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.
      - `payment_method` union, required — The payment method details to confirm the PaymentIntent. The PaymentIntent will be confirmed automatically when `payment_method` is set.
        - object
          - `type` 'card', required
          - `card` object, required
            - `card_name` string, required — Card holder name. Maximum length is 128.
            - `card_number` string, required — Card number.
            - `expiry_month` string, required — Two digit number representing the card's expiration month.
            - `expiry_year` string, required — Four digit number representing the card's expiration year.
            - `cvc` string, required — The CVC code of this card is mandatory for all transactions, except for those initiated by the merchant or involving network tokenization.
            - `network` 'visa' | 'mastercard' | 'unionpay', required — The card network. The card networks listed are accepted values for this field. Availability is evaluated at the account level.
            - `billing` CardBilling, required — Billing information of the customer.
              - …
            - `auto_capture` boolean — Specifies whether the funds should be requested automatically after the payment is authorized. Set it to `false` if you want to capture the funds sometimes later.
            - `authorization_type` 'authorization' | 'pre_authorization', required — The authorization type for the card payment. Options are `authorization` (default) and `pre_authorization`. Use `pre_authorization` to hold funds for more than 7 days, available only for Visa and Mastercard. `auto_capture` must be `false` for pre-authorization.
            - `three_ds_action` 'enforce_3ds' | 'skip_3ds', required — Controls 3D Secure behavior for this payment: - `enforce_3ds`: Always trigger 3DS authentication, regardless of issuer risk assessment. - `skip_3ds`: Skip 3DS authentication. The liability for chargebacks remains with the merchant.
            - `three_ds` CardThreeDS
              - …
        - object
          - `type` 'card_present', required
          - `card_present` object, required
            - `card_number` string, required — Card number.
            - `expiry_month` string, required — MM
            - `expiry_year` string, required — YYYY
            - `cardholder_verification_method` 'online_pin' | 'manual_signature' | 'skipped' — Method used to verify the cardholder's identity at the point of sale. - `online_pin`: Cardholder entered a PIN that was verified online by the issuer. - `manual_signature`: Cardholder provided a handwritten signature. - `skipped`: Cardholder verification was not performed (e.g., contactless under floor limit).
            - `encrypted_pin` string — Encrypted personal identification number.
            - `pan_entry_mode` 'manual_entry' | 'chip' | 'magstripe' | 'contactless_chip' | 'contactless_magstripe', required — The way the terminal reads the card information: - `manual_entry`: Manually keyed into POS terminal - `chip`: Read from direct contact with a chip card - `magstripe`: Read from direct contact with magnetic stripe card - `contactless_chip`: Read from a contactless interface using chip data - `contactless_magstripe`: Read from a contactless interface using magnetic stripe data (MSD)
            - `fallback` boolean — The default is false. Set to true when: - Chip card at a chip-capable terminal was unable to process transactions using data on the chip or magnetic strip and use entry mode manual - Chip card at a chip-capable terminal was unable to process transactions using data on the chip and use entry mode `contact_magnetic_stripe_card`
            - `fallback_reason` 'chip_read_failure' — Fallback reason applicable when fallback is true. Set to `chip_read_failure` when all of the following conditions are met: - The transaction is initiated at a chip-capable terminal - `pan_entry_mode` is `magstripe` - The previous transaction initiated by the terminal was an unsuccessful chip read
            - `emv_tags` string — Tag-length-value (TLV)-encoded data read from a chip card.
            - `track1` string — Track 1 read from magnetic stripe card
            - `track2` string — Track 2 is read from a magnetic stripe card or is track 2 equivalent data get from the chip card. Track 2 is required when pan_entry_mode is not `manual_entry`.
            - `terminal_info` object
              - …
        - object
          - `type` 'applepay', required
          - `applepay` object, required — Apple Pay payment information. Required when `type` is set to `applepay`.
            - `flow` 'redirect' | 'mobile_web' | 'mobile_app' | 'contactless', required — Specifies the checkout flow type: - `redirect`: Redirect-based online payment - `mobile_web`: Mobile browser (H5) payment - `mobile_app`: Native app payment - `contactless`: In-person NFC contactless payment
            - `os_type` 'ios' — Required when `flow` is `mobile_web` or `mobile_app`. Fixed value `ios` for Apple Pay.
            - `is_present` boolean — Whether the customer is physically present during payment. Set to `true` for in-person (contactless) payments, `false` for online payments.
            - `network` 'visa' | 'mastercard' | 'amex' | 'discover' | 'jcb', required — The card network (lowercase).
            - `card_type` 'debit' | 'credit' — The type of the card.
            - `token_type` 'decrypted' | 'encrypted', required — The token data format: - `decrypted`: Merchant has decrypted the Apple Pay token and provides structured DPAN + Cryptogram data - `encrypted`: Raw encrypted Apple Pay token (reserved for future use)
            - `auth_method` 'cryptogram_3ds' | 'pan_only', required — The authentication method used by Apple Pay: - `cryptogram_3ds`: Token includes a cryptogram, 3DS is already applied. No additional 3DS required. - `pan_only`: Token contains only PAN data. Additional 3DS verification may be triggered.
            - `network_token` object, required — The decrypted Network Token data. Required when `token_type` is `decrypted`.
              - …
            - `billing_contact` object — Billing contact information from Apple Pay.
              - …
        - object
          - `type` 'googlepay', required
          - `googlepay` object, required — Google Pay payment information. Required when `type` is set to `googlepay`.
            - `flow` 'redirect' | 'mobile_web' | 'mobile_app' | 'contactless', required — Specifies the checkout flow type: - `redirect`: Redirect-based online payment - `mobile_web`: Mobile browser (H5) payment - `mobile_app`: Native app payment - `contactless`: In-person NFC contactless payment
            - `os_type` 'ios' | 'android' — Required when `flow` is `mobile_web` or `mobile_app`. One of `ios`, `android`.
            - `is_present` boolean — Whether the customer is physically present during payment. Set to `true` for in-person (contactless) payments, `false` for online payments.
            - `network` 'visa' | 'mastercard' | 'amex' | 'discover' | 'jcb', required — The card network (lowercase).
            - `card_type` 'debit' | 'credit' — The type of the card.
            - `token_type` 'decrypted' | 'encrypted', required — The token data format: - `decrypted`: Merchant has decrypted the Google Pay token and provides structured DPAN + Cryptogram data - `encrypted`: Raw encrypted Google Pay token (reserved for future use)
            - `auth_method` 'cryptogram_3ds' | 'pan_only', required — The authentication method used by Google Pay: - `cryptogram_3ds`: Token includes a cryptogram, 3DS is already applied. No additional 3DS required. - `pan_only`: Token contains only PAN data. Additional 3DS verification may be triggered.
            - `network_token` object, required — The decrypted Network Token data. Required when `token_type` is `decrypted`.
              - …
            - `billing_address` object — Billing address information from Google Pay.
              - …
        - object
          - `type` 'alipaycn', required
          - `alipaycn` object, required — AlipayCN payment information. Required when `type` is set to `alipaycn`
            - `flow` 'qrcode', required — The specific payment flow to use.
            - `os_type` 'ios' | 'android' — Required when flow is `mobile_web` or `mobile_app`. One of `ios`, `android`.
            - `is_present` boolean — Whether the customer is physically present during payment.
            - `payment_code` string — The customer presents a payment code (generated from a payment app like an e-wallet) to the merchant for scanning.
        - object
          - `type` 'alipayhk', required
          - `alipayhk` object, required — AlipayHK payment information. Required when `type` is set to `alipayhk`
            - `flow` 'qrcode', required — The specific payment flow to use.
            - `os_type` 'ios' | 'android' — Required when flow is `mobile_web` or `mobile_app`. One of `ios`, `android`.
            - `payment_code` string — The customer presents a payment code (generated from a payment app like an e-wallet) to the merchant for scanning.
            - `is_present` boolean — Whether the customer is physically present during payment.
        - object
          - `type` 'unionpay', required
          - `unionpay` object, required — UnionPay payment information. Required when `type` is set to `unionpay`
            - `flow` 'qrcode' | 'securepay', required — The UnionPay checkout flow: - `qrcode`: Merchant-presented QR code for the customer to scan with the UnionPay app. - `securepay`: Server-to-server secure payment (redirect-based online checkout).
            - `os_type` 'ios' | 'android' — Required when flow is `mobile_app`. One of `ios`, `android`.
            - `is_present` boolean — Whether the customer is physically present during payment.
            - `payment_code` string — The customer presents a payment code (generated from a payment app like an e-wallet) to the merchant for scanning.
        - object
          - `type` 'wechatpay', required
          - `wechatpay` object, required — WeChat Pay payment information. Required when `type` is set to `wechatpay`.
            - `flow` 'qrcode' | 'mini_program' | 'mobile_app' | 'mobile_web' | 'official_account', required — The WeChat Pay checkout flow: - `qrcode`: Merchant-presented QR code for the customer to scan. - `mini_program`: Payment inside a WeChat Mini Program. - `mobile_app`: Payment triggered from a native mobile app via WeChat SDK. - `mobile_web`: Payment triggered from a mobile browser (H5), redirects to WeChat. - `official_account`: Payment inside a WeChat Official Account (JSAPI).
            - `os_type` 'ios' | 'android' — Required when flow is `mobile_web` or `mobile_app`. One of `ios`, `android`.
            - `payment_code` string — The customer presents a payment code (generated from a payment app like an e-wallet) to the merchant for scanning.
            - `is_present` boolean — Whether the customer is physically present during payment.
            - `open_id` string — Required when `flow` is `mini_program`, `mobile_app` or `official_account`.
        - object
          - `type` 'grabpay', required
          - `grabpay` object, required — GrabPay payment information. Required when `type` is set to `grabpay`.
            - `flow` 'qrcode', required — Specifies the checkout flow type.
            - `os_type` 'ios' | 'android' — Required when flow is `mobile_web`.
            - `is_present` boolean — Whether the customer is physically present during payment.
            - `payment_code` string — The customer presents a payment code (generated from a payment app like an e-wallet) to the merchant for scanning.
            - `shopper_name` string — The name of the shopper.
        - object
          - `type` 'crypto', required
          - `crypto` object, required — Cryptocurrency payment information. Required when `type` is set to `crypto`. **Important:** Currency must be `USD`. **Legal Notice:** This API Reference is issued and published by UQPAY PTY LTD (UQPAY Australia), a member of the UQPAY Group. As the sole publishing entity, UQPAY Australia assumes full and exclusive responsibility for the content, versioning, and maintenance of this document. Unless expressly stated otherwise, no other entity within the UQPAY Group shall be considered a publisher or held liable for the information contained herein.
            - `flow` 'redirect' | 'qrcode', required — The specific payment flow to use: - `redirect`: Redirects customer to a crypto payment gateway - `qrcode`: Generates a QR code for direct blockchain payment
            - `network` 'ETH' | 'TRON' — Blockchain network for the transaction. Required when `flow` is `qrcode`. - `ETH`: Ethereum network - `TRON`: TRON network
            - `is_present` false, required — Whether the customer is physically present during payment. Must be `false` for crypto payments.
            - `payer_info` object — Payer compliance information collected to satisfy the AML/CTF Travel Rule for virtual asset transfers. **Conditional requirement:** Required when the order amount reaches the compliance threshold configured by UQPAY for the merchant; otherwise this object can be omitted entirely.
              - …
        - object
          - `type` 'paynow', required
          - `paynow` object, required — PayNow payment information. Required when `type` is set to `paynow`.
            - `flow` 'qrcode', required — The checkout flow. Only `qrcode` (merchant-presented QR code) is supported.
            - `is_present` boolean — Whether the customer is physically present during payment.
        - object
          - `type` 'truemoney', required
          - `truemoney` object, required — Truemoney payment information. Required when `type` is set to `truemoney`.
            - `flow` 'qrcode', required — The specific payment flow to use.
            - `os_type` 'ios' | 'android' — Required when flow is `mobile_web` or `mobile_app`. One of `ios`, `android`.
            - `payment_code` string — The customer presents a payment code (generated from a payment app like an e-wallet) to the merchant for scanning.
            - `is_present` boolean — Whether the customer is physically present during payment.
        - object
          - `type` 'tng', required
          - `tng` object, required — Touch'n Go payment information. Required when `type` is set to `tng`.
            - `flow` 'qrcode', required — The specific payment flow to use.
            - `os_type` 'ios' | 'android' — Required when flow is `mobile_web` or `mobile_app`. One of `ios`, `android`.
            - `payment_code` string — The customer presents a payment code (generated from a payment app like an e-wallet) to the merchant for scanning.
            - `is_present` boolean — Whether the customer is physically present during payment.
        - object
          - `type` 'gcash', required
          - `gcash` object, required — GCash payment information. Required when `type` is set to `gcash`.
            - `flow` 'qrcode', required — The specific payment flow to use.
            - `os_type` 'ios' | 'android' — Required when flow is `mobile_web` or `mobile_app`. One of `ios`, `android`.
            - `payment_code` string — The customer presents a payment code (generated from a payment app like an e-wallet) to the merchant for scanning.
            - `is_present` boolean — Whether the customer is physically present during payment.
        - object
          - `type` 'dana', required
          - `dana` object, required — Dana payment information. Required when `type` is set to `dana`.
            - `flow` 'qrcode', required — The specific payment flow to use.
            - `os_type` 'ios' | 'android' — Required when flow is `mobile_web` or `mobile_app`. One of `ios`, `android`.
            - `payment_code` string — The customer presents a payment code (generated from a payment app like an e-wallet) to the merchant for scanning.
            - `is_present` boolean — Whether the customer is physically present during payment.
        - object
          - `type` 'kakaopay', required
          - `kakaopay` object, required — KakaoPay payment information. Required when `type` is set to `kakaopay`.
            - `flow` 'qrcode', required — The specific payment flow to use.
            - `os_type` 'ios' | 'android' — Required when flow is `mobile_web` or `mobile_app`. One of `ios`, `android`.
            - `payment_code` string — The customer presents a payment code (generated from a payment app like an e-wallet) to the merchant for scanning.
            - `is_present` boolean — Whether the customer is physically present during payment.
        - object
          - `type` 'toss', required
          - `toss` object, required — Toss Pay payment information. Required when `type` is set to `toss`.
            - `flow` 'qrcode', required — The specific payment flow to use.
            - `os_type` 'ios' | 'android' — Required when flow is `mobile_web` or `mobile_app`. One of `ios`, `android`.
            - `payment_code` string — The customer presents a payment code (generated from a payment app like an e-wallet) to the merchant for scanning.
            - `is_present` boolean — Whether the customer is physically present during payment.
        - object
          - `type` 'naverpay', required
          - `naverpay` object, required — Naver Pay payment information. Required when `type` is set to `naverpay`.
            - `flow` 'qrcode', required — The specific payment flow to use.
            - `os_type` 'ios' | 'android' — Required when flow is `mobile_web` or `mobile_app`. One of `ios`, `android`.
            - `payment_code` string — The customer presents a payment code (generated from a payment app like an e-wallet) to the merchant for scanning.
            - `is_present` boolean — Whether the customer is physically present during payment.
      - `nickname` string — Nickname of the beneficiary.
      - `bank_details` BeneficiaryBankDetails, required
        - `bank_name` string, required — Name of the bank.
        - `bank_address` string, required — Address of the bank.
        - `bank_country_code` string, required — Two-letter country code [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
        - `account_holder` string, required — 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.
        - `account_currency_code` string, required — Three-letter currency code
        - `account_number` string — 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.
        - `iban` string — 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**.
        - `swift_code` string, required — Swift code of the beneficiary's bank account.
        - `clearing_system` string, required — 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`
        - `routing_code_type1` string — 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".
        - `routing_code_value1` string — Routing code value.Routing code for routing_code_type_1.If supplied, routing_code_type_1 should also be supplied.
        - `routing_code_type2` string — Routing code sub type. * `branch_code` - Required when account_currency_code = "CAD" and clearing_system = "EFT".
        - `routing_code_value2` string — Routing code sub type value.Routing code for routing_code_type_2.If supplied, routing_code_type_2 should also be supplied.
      - `address` BeneficiaryAddress, required — Address of the beneficiary. - No need to pass this field when `bank_details.bank_country_code = SG` & `bank_details.account_currency_code = SGD`
        - `country` string, required — Two-letter country code [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
        - `nationality` string — Two-letter country code representing nationality of the beneficiary.
        - `city` string, required — 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.
        - `street_address` string, required — 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.
        - `postal_code` string, required — Postal code of the beneficiary.
        - `state` string, required — 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.
      - `additional_info` BeneficiaryAdditionalInfo — Additional information for beneficiaries.
        - `organization_code` string — The Unified Social Credit Identifier assigned to the organization. This field is for companies registered in Mainland China.
        - `proxy_id` string — PayNow proxy identifier (SGD). Supports UEN, phone number, or VPA as the value.
        - `id_type` 'PASSPORT' | 'NATIONAL_ID' | 'DRIVERS_LICENSE' — Identification document type for individual beneficiaries. - Required when bank_details.account_currency_code = COP & entity_type = INDIVIDUAL.
        - `id_number` string — Identification number for individual beneficiaries. - Required when bank_details.account_currency_code = COP & entity_type = INDIVIDUAL.
        - `tax_id` string — Tax identification number for company beneficiaries. - Required when bank_details.account_currency_code = COP & entity_type = COMPANY.
        - `msisdn` string — 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
    - object
      - `entity_type` string, required — The type of beneficiary entity.
      - `email` string — Email address of the beneficiary.
      - `payment_method` union, required — The payment method details to confirm the PaymentIntent. The PaymentIntent will be confirmed automatically when `payment_method` is set.
        - object
          - `type` 'card', required
          - `card` object, required
            - `card_name` string, required — Card holder name. Maximum length is 128.
            - `card_number` string, required — Card number.
            - `expiry_month` string, required — Two digit number representing the card's expiration month.
            - `expiry_year` string, required — Four digit number representing the card's expiration year.
            - `cvc` string, required — The CVC code of this card is mandatory for all transactions, except for those initiated by the merchant or involving network tokenization.
            - `network` 'visa' | 'mastercard' | 'unionpay', required — The card network. The card networks listed are accepted values for this field. Availability is evaluated at the account level.
            - `billing` CardBilling, required — Billing information of the customer.
              - …
            - `auto_capture` boolean — Specifies whether the funds should be requested automatically after the payment is authorized. Set it to `false` if you want to capture the funds sometimes later.
            - `authorization_type` 'authorization' | 'pre_authorization', required — The authorization type for the card payment. Options are `authorization` (default) and `pre_authorization`. Use `pre_authorization` to hold funds for more than 7 days, available only for Visa and Mastercard. `auto_capture` must be `false` for pre-authorization.
            - `three_ds_action` 'enforce_3ds' | 'skip_3ds', required — Controls 3D Secure behavior for this payment: - `enforce_3ds`: Always trigger 3DS authentication, regardless of issuer risk assessment. - `skip_3ds`: Skip 3DS authentication. The liability for chargebacks remains with the merchant.
            - `three_ds` CardThreeDS
              - …
        - object
          - `type` 'card_present', required
          - `card_present` object, required
            - `card_number` string, required — Card number.
            - `expiry_month` string, required — MM
            - `expiry_year` string, required — YYYY
            - `cardholder_verification_method` 'online_pin' | 'manual_signature' | 'skipped' — Method used to verify the cardholder's identity at the point of sale. - `online_pin`: Cardholder entered a PIN that was verified online by the issuer. - `manual_signature`: Cardholder provided a handwritten signature. - `skipped`: Cardholder verification was not performed (e.g., contactless under floor limit).
            - `encrypted_pin` string — Encrypted personal identification number.
            - `pan_entry_mode` 'manual_entry' | 'chip' | 'magstripe' | 'contactless_chip' | 'contactless_magstripe', required — The way the terminal reads the card information: - `manual_entry`: Manually keyed into POS terminal - `chip`: Read from direct contact with a chip card - `magstripe`: Read from direct contact with magnetic stripe card - `contactless_chip`: Read from a contactless interface using chip data - `contactless_magstripe`: Read from a contactless interface using magnetic stripe data (MSD)
            - `fallback` boolean — The default is false. Set to true when: - Chip card at a chip-capable terminal was unable to process transactions using data on the chip or magnetic strip and use entry mode manual - Chip card at a chip-capable terminal was unable to process transactions using data on the chip and use entry mode `contact_magnetic_stripe_card`
            - `fallback_reason` 'chip_read_failure' — Fallback reason applicable when fallback is true. Set to `chip_read_failure` when all of the following conditions are met: - The transaction is initiated at a chip-capable terminal - `pan_entry_mode` is `magstripe` - The previous transaction initiated by the terminal was an unsuccessful chip read
            - `emv_tags` string — Tag-length-value (TLV)-encoded data read from a chip card.
            - `track1` string — Track 1 read from magnetic stripe card
            - `track2` string — Track 2 is read from a magnetic stripe card or is track 2 equivalent data get from the chip card. Track 2 is required when pan_entry_mode is not `manual_entry`.
            - `terminal_info` object
              - …
        - object
          - `type` 'applepay', required
          - `applepay` object, required — Apple Pay payment information. Required when `type` is set to `applepay`.
            - `flow` 'redirect' | 'mobile_web' | 'mobile_app' | 'contactless', required — Specifies the checkout flow type: - `redirect`: Redirect-based online payment - `mobile_web`: Mobile browser (H5) payment - `mobile_app`: Native app payment - `contactless`: In-person NFC contactless payment
            - `os_type` 'ios' — Required when `flow` is `mobile_web` or `mobile_app`. Fixed value `ios` for Apple Pay.
            - `is_present` boolean — Whether the customer is physically present during payment. Set to `true` for in-person (contactless) payments, `false` for online payments.
            - `network` 'visa' | 'mastercard' | 'amex' | 'discover' | 'jcb', required — The card network (lowercase).
            - `card_type` 'debit' | 'credit' — The type of the card.
            - `token_type` 'decrypted' | 'encrypted', required — The token data format: - `decrypted`: Merchant has decrypted the Apple Pay token and provides structured DPAN + Cryptogram data - `encrypted`: Raw encrypted Apple Pay token (reserved for future use)
            - `auth_method` 'cryptogram_3ds' | 'pan_only', required — The authentication method used by Apple Pay: - `cryptogram_3ds`: Token includes a cryptogram, 3DS is already applied. No additional 3DS required. - `pan_only`: Token contains only PAN data. Additional 3DS verification may be triggered.
            - `network_token` object, required — The decrypted Network Token data. Required when `token_type` is `decrypted`.
              - …
            - `billing_contact` object — Billing contact information from Apple Pay.
              - …
        - object
          - `type` 'googlepay', required
          - `googlepay` object, required — Google Pay payment information. Required when `type` is set to `googlepay`.
            - `flow` 'redirect' | 'mobile_web' | 'mobile_app' | 'contactless', required — Specifies the checkout flow type: - `redirect`: Redirect-based online payment - `mobile_web`: Mobile browser (H5) payment - `mobile_app`: Native app payment - `contactless`: In-person NFC contactless payment
            - `os_type` 'ios' | 'android' — Required when `flow` is `mobile_web` or `mobile_app`. One of `ios`, `android`.
            - `is_present` boolean — Whether the customer is physically present during payment. Set to `true` for in-person (contactless) payments, `false` for online payments.
            - `network` 'visa' | 'mastercard' | 'amex' | 'discover' | 'jcb', required — The card network (lowercase).
            - `card_type` 'debit' | 'credit' — The type of the card.
            - `token_type` 'decrypted' | 'encrypted', required — The token data format: - `decrypted`: Merchant has decrypted the Google Pay token and provides structured DPAN + Cryptogram data - `encrypted`: Raw encrypted Google Pay token (reserved for future use)
            - `auth_method` 'cryptogram_3ds' | 'pan_only', required — The authentication method used by Google Pay: - `cryptogram_3ds`: Token includes a cryptogram, 3DS is already applied. No additional 3DS required. - `pan_only`: Token contains only PAN data. Additional 3DS verification may be triggered.
            - `network_token` object, required — The decrypted Network Token data. Required when `token_type` is `decrypted`.
              - …
            - `billing_address` object — Billing address information from Google Pay.
              - …
        - object
          - `type` 'alipaycn', required
          - `alipaycn` object, required — AlipayCN payment information. Required when `type` is set to `alipaycn`
            - `flow` 'qrcode', required — The specific payment flow to use.
            - `os_type` 'ios' | 'android' — Required when flow is `mobile_web` or `mobile_app`. One of `ios`, `android`.
            - `is_present` boolean — Whether the customer is physically present during payment.
            - `payment_code` string — The customer presents a payment code (generated from a payment app like an e-wallet) to the merchant for scanning.
        - object
          - `type` 'alipayhk', required
          - `alipayhk` object, required — AlipayHK payment information. Required when `type` is set to `alipayhk`
            - `flow` 'qrcode', required — The specific payment flow to use.
            - `os_type` 'ios' | 'android' — Required when flow is `mobile_web` or `mobile_app`. One of `ios`, `android`.
            - `payment_code` string — The customer presents a payment code (generated from a payment app like an e-wallet) to the merchant for scanning.
            - `is_present` boolean — Whether the customer is physically present during payment.
        - object
          - `type` 'unionpay', required
          - `unionpay` object, required — UnionPay payment information. Required when `type` is set to `unionpay`
            - `flow` 'qrcode' | 'securepay', required — The UnionPay checkout flow: - `qrcode`: Merchant-presented QR code for the customer to scan with the UnionPay app. - `securepay`: Server-to-server secure payment (redirect-based online checkout).
            - `os_type` 'ios' | 'android' — Required when flow is `mobile_app`. One of `ios`, `android`.
            - `is_present` boolean — Whether the customer is physically present during payment.
            - `payment_code` string — The customer presents a payment code (generated from a payment app like an e-wallet) to the merchant for scanning.
        - object
          - `type` 'wechatpay', required
          - `wechatpay` object, required — WeChat Pay payment information. Required when `type` is set to `wechatpay`.
            - `flow` 'qrcode' | 'mini_program' | 'mobile_app' | 'mobile_web' | 'official_account', required — The WeChat Pay checkout flow: - `qrcode`: Merchant-presented QR code for the customer to scan. - `mini_program`: Payment inside a WeChat Mini Program. - `mobile_app`: Payment triggered from a native mobile app via WeChat SDK. - `mobile_web`: Payment triggered from a mobile browser (H5), redirects to WeChat. - `official_account`: Payment inside a WeChat Official Account (JSAPI).
            - `os_type` 'ios' | 'android' — Required when flow is `mobile_web` or `mobile_app`. One of `ios`, `android`.
            - `payment_code` string — The customer presents a payment code (generated from a payment app like an e-wallet) to the merchant for scanning.
            - `is_present` boolean — Whether the customer is physically present during payment.
            - `open_id` string — Required when `flow` is `mini_program`, `mobile_app` or `official_account`.
        - object
          - `type` 'grabpay', required
          - `grabpay` object, required — GrabPay payment information. Required when `type` is set to `grabpay`.
            - `flow` 'qrcode', required — Specifies the checkout flow type.
            - `os_type` 'ios' | 'android' — Required when flow is `mobile_web`.
            - `is_present` boolean — Whether the customer is physically present during payment.
            - `payment_code` string — The customer presents a payment code (generated from a payment app like an e-wallet) to the merchant for scanning.
            - `shopper_name` string — The name of the shopper.
        - object
          - `type` 'crypto', required
          - `crypto` object, required — Cryptocurrency payment information. Required when `type` is set to `crypto`. **Important:** Currency must be `USD`. **Legal Notice:** This API Reference is issued and published by UQPAY PTY LTD (UQPAY Australia), a member of the UQPAY Group. As the sole publishing entity, UQPAY Australia assumes full and exclusive responsibility for the content, versioning, and maintenance of this document. Unless expressly stated otherwise, no other entity within the UQPAY Group shall be considered a publisher or held liable for the information contained herein.
            - `flow` 'redirect' | 'qrcode', required — The specific payment flow to use: - `redirect`: Redirects customer to a crypto payment gateway - `qrcode`: Generates a QR code for direct blockchain payment
            - `network` 'ETH' | 'TRON' — Blockchain network for the transaction. Required when `flow` is `qrcode`. - `ETH`: Ethereum network - `TRON`: TRON network
            - `is_present` false, required — Whether the customer is physically present during payment. Must be `false` for crypto payments.
            - `payer_info` object — Payer compliance information collected to satisfy the AML/CTF Travel Rule for virtual asset transfers. **Conditional requirement:** Required when the order amount reaches the compliance threshold configured by UQPAY for the merchant; otherwise this object can be omitted entirely.
              - …
        - object
          - `type` 'paynow', required
          - `paynow` object, required — PayNow payment information. Required when `type` is set to `paynow`.
            - `flow` 'qrcode', required — The checkout flow. Only `qrcode` (merchant-presented QR code) is supported.
            - `is_present` boolean — Whether the customer is physically present during payment.
        - object
          - `type` 'truemoney', required
          - `truemoney` object, required — Truemoney payment information. Required when `type` is set to `truemoney`.
            - `flow` 'qrcode', required — The specific payment flow to use.
            - `os_type` 'ios' | 'android' — Required when flow is `mobile_web` or `mobile_app`. One of `ios`, `android`.
            - `payment_code` string — The customer presents a payment code (generated from a payment app like an e-wallet) to the merchant for scanning.
            - `is_present` boolean — Whether the customer is physically present during payment.
        - object
          - `type` 'tng', required
          - `tng` object, required — Touch'n Go payment information. Required when `type` is set to `tng`.
            - `flow` 'qrcode', required — The specific payment flow to use.
            - `os_type` 'ios' | 'android' — Required when flow is `mobile_web` or `mobile_app`. One of `ios`, `android`.
            - `payment_code` string — The customer presents a payment code (generated from a payment app like an e-wallet) to the merchant for scanning.
            - `is_present` boolean — Whether the customer is physically present during payment.
        - object
          - `type` 'gcash', required
          - `gcash` object, required — GCash payment information. Required when `type` is set to `gcash`.
            - `flow` 'qrcode', required — The specific payment flow to use.
            - `os_type` 'ios' | 'android' — Required when flow is `mobile_web` or `mobile_app`. One of `ios`, `android`.
            - `payment_code` string — The customer presents a payment code (generated from a payment app like an e-wallet) to the merchant for scanning.
            - `is_present` boolean — Whether the customer is physically present during payment.
        - object
          - `type` 'dana', required
          - `dana` object, required — Dana payment information. Required when `type` is set to `dana`.
            - `flow` 'qrcode', required — The specific payment flow to use.
            - `os_type` 'ios' | 'android' — Required when flow is `mobile_web` or `mobile_app`. One of `ios`, `android`.
            - `payment_code` string — The customer presents a payment code (generated from a payment app like an e-wallet) to the merchant for scanning.
            - `is_present` boolean — Whether the customer is physically present during payment.
        - object
          - `type` 'kakaopay', required
          - `kakaopay` object, required — KakaoPay payment information. Required when `type` is set to `kakaopay`.
            - `flow` 'qrcode', required — The specific payment flow to use.
            - `os_type` 'ios' | 'android' — Required when flow is `mobile_web` or `mobile_app`. One of `ios`, `android`.
            - `payment_code` string — The customer presents a payment code (generated from a payment app like an e-wallet) to the merchant for scanning.
            - `is_present` boolean — Whether the customer is physically present during payment.
        - object
          - `type` 'toss', required
          - `toss` object, required — Toss Pay payment information. Required when `type` is set to `toss`.
            - `flow` 'qrcode', required — The specific payment flow to use.
            - `os_type` 'ios' | 'android' — Required when flow is `mobile_web` or `mobile_app`. One of `ios`, `android`.
            - `payment_code` string — The customer presents a payment code (generated from a payment app like an e-wallet) to the merchant for scanning.
            - `is_present` boolean — Whether the customer is physically present during payment.
        - object
          - `type` 'naverpay', required
          - `naverpay` object, required — Naver Pay payment information. Required when `type` is set to `naverpay`.
            - `flow` 'qrcode', required — The specific payment flow to use.
            - `os_type` 'ios' | 'android' — Required when flow is `mobile_web` or `mobile_app`. One of `ios`, `android`.
            - `payment_code` string — The customer presents a payment code (generated from a payment app like an e-wallet) to the merchant for scanning.
            - `is_present` boolean — Whether the customer is physically present during payment.
      - `nickname` string — Nickname of the beneficiary.
      - `first_name` string, required — 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`
      - `last_name` string, required — 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`
      - `id_number` string — 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`
      - `bank_details` BeneficiaryBankDetails, required
        - `bank_name` string, required — Name of the bank.
        - `bank_address` string, required — Address of the bank.
        - `bank_country_code` string, required — Two-letter country code [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
        - `account_holder` string, required — 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.
        - `account_currency_code` string, required — Three-letter currency code
        - `account_number` string — 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.
        - `iban` string — 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**.
        - `swift_code` string, required — Swift code of the beneficiary's bank account.
        - `clearing_system` string, required — 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`
        - `routing_code_type1` string — 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".
        - `routing_code_value1` string — Routing code value.Routing code for routing_code_type_1.If supplied, routing_code_type_1 should also be supplied.
        - `routing_code_type2` string — Routing code sub type. * `branch_code` - Required when account_currency_code = "CAD" and clearing_system = "EFT".
        - `routing_code_value2` string — Routing code sub type value.Routing code for routing_code_type_2.If supplied, routing_code_type_2 should also be supplied.
      - `address` BeneficiaryAddress, required — Address of the beneficiary. - No need to pass this field when `bank_details.bank_country_code = SG` & `bank_details.account_currency_code = SGD`
        - `country` string, required — Two-letter country code [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
        - `nationality` string — Two-letter country code representing nationality of the beneficiary.
        - `city` string, required — 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.
        - `street_address` string, required — 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.
        - `postal_code` string, required — Postal code of the beneficiary.
        - `state` string, required — 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.
      - `additional_info` BeneficiaryAdditionalInfo — Additional information for beneficiaries.
        - `organization_code` string — The Unified Social Credit Identifier assigned to the organization. This field is for companies registered in Mainland China.
        - `proxy_id` string — PayNow proxy identifier (SGD). Supports UEN, phone number, or VPA as the value.
        - `id_type` 'PASSPORT' | 'NATIONAL_ID' | 'DRIVERS_LICENSE' — Identification document type for individual beneficiaries. - Required when bank_details.account_currency_code = COP & entity_type = INDIVIDUAL.
        - `id_number` string — Identification number for individual beneficiaries. - Required when bank_details.account_currency_code = COP & entity_type = INDIVIDUAL.
        - `tax_id` string — Tax identification number for company beneficiaries. - Required when bank_details.account_currency_code = COP & entity_type = COMPANY.
        - `msisdn` string — 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
  - `is_payer` string — **Important Notice:** **This field is scheduled to be deprecated in the next version. It is recommended to avoid using this field in new development.** Whether the current user is a payer. One of Y, N
  - `payer_id` string, uuid — **Important Notice:** **This field is scheduled to be deprecated in the next version. It is recommended to avoid using this field in new development.** Unique identifier of the payer. If `is_payer` is `Y`, `payer_id` is empty, if `is_payer` is `N`, payer_id is queried from this interface Get list of payers.
  - `documentation` PayoutDocumentationItem[] — Supporting documents related to this payout. - **General**: Optional field for attaching files relevant to the payout. - **Mandatory case**: When `beneficiary.bank_details.account_currency_code = INR` and `clearing_system = IFSC`, an **invoice document** must be uploaded via the `documentation` field.
    - `file` string, base64-encoded — Must start with a prefix like "data:image/jpeg;base64," followed by the actual base64-encoded.
    - `file_id` string, uuid — The file ID of the document, file ID is generated by file upload API.

## Response `200`

Payout creation successfully.

- PayoutCreationResponse
  - `payout_id` string, uuid — Unique identifier for the payout.
  - `short_reference_id` string — The reference generated by the system to identify the entity.
  - `payout_status` 'READY_TO_SEND' | 'PENDING' | 'REJECTED' | 'FAILED' | 'COMPLETED' — 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.

---

[API](https://skmtc.dev/uqpay/apis/authentication-api.md) · [All operations](https://skmtc.dev/uqpay/apis/authentication-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/uqpay/authentication-api/revisions/cef532a10777/schema)
