Withdraw Funds
Initiates a withdrawal from your wallet to a beneficiary. Either beneficiaryId or inlineBeneficiary must be provided. For USD international_wire, send as multipart/form-data and attach reference documents under the documents field.
beneficiaryId or inlineBeneficiary must be provided. The required fields inside inlineBeneficiary depend on the currency and withdrawal_method.
amount is US cents — e.g. 100 cents = $1.00 USD transferred (consistent with ledger *_amount fields returned on transactions).Top-level Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
amount | number | Yes | Amount in the smallest unit (kobo for NGN, cents for USD — 100 cents = $1.00 USD) |
currency | string | Yes | 3-letter currency code — NGN, USD, or XAF |
description | string | No | Narration for the transaction |
externalReference | string | No | Your own unique reference for this transaction |
beneficiaryId | string (UUID) | No* | ID of a saved beneficiary |
inlineBeneficiary | object | No* | One-time beneficiary details (see per-currency fields below) |
saveBeneficiary | boolean | No | Save the inline beneficiary for future use |
deductFeesFromBalance | boolean | No | If true, fees are deducted from your wallet; beneficiary receives the exact amount |
beneficiaryId or inlineBeneficiary is required.
inlineBeneficiary — Required Fields by Currency
NGN
| Field | Required |
|---|---|
account_number | Yes |
bank_name | Yes |
bank_code | Yes |
account_name | No (auto-resolved from bank lookup) |
USD — Domestic Wire
| Field | Required |
|---|---|
withdrawal_method | Yes — "domestic_wire" |
account_name | Yes |
bank_name | Yes |
account_number | Yes |
routing_number | Yes |
beneficiary_address | Yes — { street, city, state, postalCode, country } |
bank_address | Yes — { street, city, state, postalCode, country } |
USD — International Wire
| Field | Required |
|---|---|
withdrawal_method | Yes — "international_wire" |
account_name | Yes |
bank_name | Yes |
account_number | Yes |
swift_code | Yes |
beneficiary_address | Yes — { street, city, state, postalCode, country } |
bank_address | Yes — { street, city, state, postalCode, country } |
intermediary_bank_name | No |
intermediary_bank_routing_number | No |
USD — Crypto (USDT / USDC)
Crypto withdrawals are sent from your USD wallet. Setwithdrawal_method to "crypto_usdt" or "crypto_usdc" to send the USD value as a stablecoin to a crypto wallet address.
| Field | Required |
|---|---|
withdrawal_method | Yes — "crypto_usdt" or "crypto_usdc" |
account_name | Yes — used as a display nickname |
wallet_address | Yes — 26–64 alphanumeric characters |
wallet_chain | Yes — e.g. "ethereum", "tron" |
XAF
| Field | Required |
|---|---|
account_name | Yes |
bank_name | Yes |
account_number | Yes |
swift_code | Yes |
bank_address | Yes — { street, city, state, country } |
Example Response
beneficiaryId to pay a saved beneficiary. Use inlineBeneficiary for one-time transfers. Set saveBeneficiary: true to save the inline beneficiary automatically for reuse.Authorizations
Your Rolla API key
Body
Either beneficiaryId or inlineBeneficiary must be provided.
Amount in smallest units (kobo for NGN; US cents for USD — 100 = 1 USD).
5000
3-letter currency code
3"NGN"
Narration for the transaction
500Your own unique reference for this transaction
255ID of a saved beneficiary. Use this OR inlineBeneficiary.
One-time beneficiary details (use instead of beneficiaryId)
Save the inline beneficiary for future use
If true, fees are taken from your wallet balance so the beneficiary receives the exact amount