Skip to main content
POST
Rolla Transfer
Send funds to another Rolla business instantly and fee-free. You can identify the recipient by their registered email address, Rolla tag, or a saved beneficiaryId with withdrawal_method: rolla_transfer. The request amount is always in the smallest currency unit for currency (USD = cents — 100 = $1.00 USD; NGN = kobo).
Transferring from a specific merchant (tenant keys): if your API key is a white-label tenant key managing multiple merchants, add the X-Account-Id header set to the account ID you want to send from — the transfer is then debited from that account’s wallet. Without it, it runs against your own (parent) account. This is how you move funds between your institutional account and merchant wallets.

Example Request (by email)

Example Request (by saved beneficiary)

Example Request (cross-currency)

Cross-currency transfers require a rateToken from the GET /wallet/rates endpoint first.

Example Response

The amount you send uses the smallest unit of currency (USD = cents below). Ledger fields such as source_amount mirror that unit.

Key Behaviours

Free transfers — Rolla-to-Rolla transfers have zero fees.
pending_claim — If the recipient email matches multiple Rolla businesses, funds are held in escrow and a pending_claim object is returned. The recipient must log in and claim the funds.
IP whitelisting — This endpoint requires your API key to have IP whitelisting configured, or the request must originate from a whitelisted IP.

Parameters

Authorizations

X-API-Key
string
header
required

Your Rolla API key

Body

application/json
amount
number
required

Amount in the smallest currency unit for the given currency (e.g. kobo for NGN, cents for USD — 100 cents = $1.00 USD).

Example:

100

currency
string
required

Source currency code

Example:

"USD"

destinationCurrency
string
required

Recipient currency code

Example:

"USD"

recipient
string

Recipient email or Rolla tag. Required if beneficiaryId not provided.

Example:

"partner@example.com"

beneficiaryId
string<uuid>

Saved beneficiary ID with withdrawal_method rolla_transfer. Required if recipient not provided.

description
string

Transfer description

Maximum string length: 500
Example:

"Invoice payment"

saveBeneficiary
boolean

Auto-save the recipient as a beneficiary for future transfers

rateToken
string

Required for cross-currency transfers. Obtain from GET /wallet/rates.

Response

Transfer initiated successfully

status
integer
Example:

200

success
boolean
Example:

true

message
string
Example:

"Transfer initiated successfully"

data
object