Skip to main content
  • 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

Payout status flowchart

⚠️ Note: The Completed status is not the final state, it may still be updated to the Failed.

Payout Time Sequence Diagram

⚠️ Note: The Completed 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_id in the x-on-behalf-of header.
  • You can create a payout with an existing beneficiary_id, or provide full beneficiary details 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_id with 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.
  1. Query payment methods and create a CARD beneficiary.
  2. Call Validate payout with the saved beneficiary_id, currency, amount, and fee_paid_by. Check the returned balance and beneficiary flags. Preflight does not reserve funds or guarantee creation.
  3. Call Create Payout using that beneficiary_id. Alternatively, provide the complete card recipient object in beneficiary, without beneficiary_id; its card fields belong under beneficiary.bank_details. Both forms use the same recipient validation rules.
  4. Retain the payout_id, retrieve the order, and process payout notifications. A READY_TO_SEND response or payout.ready.send event confirms creation, not payment completion.
Use the same 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.