- Support payout to over 180 countries in 30+ currencies, including CNY payout in Mainland China.
- You can select your entity as the payer or process payments on behalf of (POBO) your sub-accounts, for more detail: COBO & POBO
- You can create Recipients (Beneficiary) prior to initiating the payout to streamline and expedite the entire payout process.
Supported Regions and Currencies
- Here are the Supported Regions and Currencies
Payout status flowchart
⚠️ Note: TheCompleted status is not the final state, it may still be updated to the Failed.
Payout Time Sequence Diagram
⚠️ Note: TheCompleted status is not the final state, it may still be updated to the Failed.
API Doc
Integration notes:
- Create Payout requires an
x-idempotency-key; reuse the same key only when retrying the same payout after an uncertain client-side failure. - For POBO payouts, pass the sub-account
account_idin thex-on-behalf-ofheader. - You can create a payout with an existing
beneficiary_id, or provide fullbeneficiarydetails in the request. Do not send both in the same request. - Before creating a payout, use List Balances or Retrieve Balance to confirm the source account has enough available balance. After the payout is processed, use List Balances Transactions if you need to reconcile the balance movement.
- For cross-currency payouts, create a quote first and pass the returned
quote_idwith the payout request.
Mastercard Send payouts
Enable the Mastercard payout product and the required payer/recipient authorization before calling the API. Supported combinations are company-to-company, company-to-individual, and individual-to-individual; individual-to-company is not supported. A non-USD source currency also requires the cross-currency payout product, even when the beneficiary currency matches the source currency. Fees are calculated using the Mastercard configuration.- Query payment methods and create a CARD beneficiary.
- Call Validate payout with the saved
beneficiary_id,currency,amount, andfee_paid_by. Check the returned balance and beneficiary flags. Preflight does not reserve funds or guarantee creation. - Call Create Payout using that
beneficiary_id. Alternatively, provide the complete card recipient object inbeneficiary, withoutbeneficiary_id; its card fields belong underbeneficiary.bank_details. Both forms use the same recipient validation rules. - Retain the
payout_id, retrieve the order, and process payout notifications. AREADY_TO_SENDresponse orpayout.ready.sendevent confirms creation, not payment completion.
x-idempotency-key for retries of the same request. An identical replay returns the original order even if the card has since expired; a new payout checks expiry again. The server selects an authorized Mastercard channel and does not fall back to a bank-transfer channel. Do not send channel_code or card details at the payout top level.
The order response uses payout_method: CARD and retains the card expiry captured at order creation in beneficiary.bank_details.card_expiry. Webhooks use data.payment_type: CARD.
See the captured payout example.
