Payout
The Brails Payouts API enables seamless cross-border money transfers to bank accounts and mobile money wallets across 49+ countries worldwide, including major markets like the United States, Europe, and China.
For comprehensive details on supported countries, available currencies, and transaction limits, visit our Supported Countries page.
To ensure successful payouts, we provide detailed country-specific beneficiary guides that outline requirements and best practices. Here are some our guides:
- USA Beneficiary Guide - For USD transfers to US bank accounts
- Europe Beneficiary Guide - For EUR transfers via SEPA
- China Beneficiary Guide - For CNY transfers to Alipay, WeChat Pay, and bank accounts
Each guide contains comprehensive information about supported payment methods, required fields, and country-specific requirements.
The flow for payout is as follows:
New Flow (recommended)
- Call the Quote endpoint to retrieve the exchange rate, fee, and expiry for the transaction.
- Initiate the payout using either:
beneficiaryId— an already indexed beneficiary, orbeneficiary— the beneficiary details directly, without creating a beneficiary first. Thebeneficiarypayload uses the same schema as the Beneficiary object.
- Await transaction webhook and/or track transaction status.
To Initiate payout, the following parameters are required.
| Parameter | Description | Required |
|---|---|---|
amount | amount you want to send in the lowest denomination (minor units) e.g. 1 USD = 100 cents. | ✅ |
sourceWalletCurrency | Indicates the wallet from which payment is made. Defaults to USD | ✅ |
customerEmail | represents the email address of the customer associated with the transaction. | ✅ |
description | provides context or explains the intent of the transaction. | ✅ |
beneficiaryId | id of the beneficiary that has already been created/indexed. Mutually exclusive with beneficiary. | ✅ (either) |
beneficiary | beneficiary details, using the same schema as the Beneficiary object. Mutually exclusive with beneficiaryId. | ✅ (either) |
Provide either beneficiaryId or beneficiary — not both. When
providing the beneficiary object directly, only the fields required to
identify the beneficiary are needed (the same fields used when creating a
beneficiary).
Legacy Flow (backward compatibility)
- Add the beneficiary
- Initiate payout
- Authorize/finalize payout
- Await transaction webhook and/or track transaction status
NB: You can skip the first step if the beneficiary has already been indexed.
The legacy flow is kept for backward compatibility. New integrations should use the new flow: retrieve a Quote, then initiate the payout.
To Finalize Payout (legacy flow), the only parameter required is the transaction identifier.
| Parameter | Description | Required |
|---|---|---|
transactionId | the transaction identifier returned when you initiate a payout. | ✅ |
How many minutes does it take between initiating a transaction and finalising rate updates? - Approximately 4 minutes.