withdrawal_method decides the rail: USD over SWIFT to 185+ countries, US ACH and domestic wires, local bank transfers, mobile money, or USDC/USDT on-chain. The flow is the same shape whatever currency you’re sending — this guide walks it once, then shows the two most common paths side by side.
1. Quote the fee (optional but recommended)
deductFeesFromBalance: false on the withdrawal if the fee should come out of the amount you send instead.
2. Resolve the beneficiary and send
This is the one step that differs by currency and rail — pick your path:- USD payout
- Local currency payout (e.g. NGN)
For USD, create the beneficiary with their SWIFT/BIC and account number (or IBAN). No name-lookup step exists for international rails — Create Beneficiary validates the fields, not the identity of the account holder.Then send it — For US domestic rails (
amount is in cents, so 10000 = $100.00:ach / domestic_wire), swap in routing_number and drop swift_code/iban — see Create Beneficiary for the exact fields per method, and the SWIFT payouts guide for worldwide country coverage.amount is always in minor units of currency, and on USD rails you should set an externalReference so you can recover safely from timeouts.
Platforms: add the
X-Account-Id header to pay out from a customer’s wallet instead of your own. See Operate Customer Accounts.3. Track to completion
The response gives you the transactionid immediately, but a payout is only done when it reaches a terminal status. Subscribe to webhooks:
transaction.completed— the beneficiary was paidtransaction.failed/transaction.rejected— the payout didn’t go through and funds are back in your wallettransaction.uetr.assigned— for SWIFT payouts, the network tracing reference (more)
id, or by your externalReference on the rails that store it. On NGN and mobile money, look the payout up by the id you were returned, or match your metadata against List Transactions.
Pay under an affiliated name
A payout goes out under your own business name by default. With Named Payouts enabled, you can also register affiliated payer names — a related entity of yours, or the end-customer you are paying for — and pick one per payout withpayerNameId.
This applies to USD international wire payouts only — the beneficiary’s withdrawal_method
must be international_wire. On any other rail the payout is refused with a 400. Because
international wire is sent as multipart/form-data, a named payout is always a multipart request:
payerNameId uses
it, with no change to your payout code; leave both unset and the payout carries your own business name.
Affiliated names are reviewed and registered before they can be used, so read the
Named Payouts guide before you build against it.
Other destinations
- Mobile money — select corridors (e.g. XAF, XOF, GHS) via
withdrawal_method: "mobile_money"withmobile_money_providerandphone_number. - Stablecoins —
crypto_usdc/crypto_usdtwithwallet_addressandwallet_chain. - Another Rolla business — skip beneficiaries entirely and use Rolla Transfer for instant transfers between Rolla accounts.