Skip to main content
POST
Initiate Off-Ramp Withdrawal

Authorizations

X-API-Key
string
header
required

Your Rach B2B API key. Use rach_sk_live_* for production (on-chain) or rach_sk_test_* for sandbox (no-chain simulation).

Body

application/json

Withdrawal request

amount
string
required
Example:

"0.500000"

phone
string
required
Example:

"+2250700000002"

account_name
string
Example:

"Ama Mensah"

account_number
string
Example:

"1234567890123"

bank_code
string

Bank account. Send account_number in whatever format the destination market uses — IBAN for XOF, XAF and Europe, NUBAN for Nigeria, and so on. It is passed through to the payout provider unmodified.

Example:

"GH0100"

bank_name
string
Example:

"GCB Bank"

chain
string

Chain selects the EVM settlement network the funds are drawn from — see TransferRequest.Chain.

Example:

"polygon"

destination_type
string

DestinationType selects the payout rail: MOBILE_MONEY (default) or BANK_ACCOUNT.

Example:

"MOBILE_MONEY"

idempotency_key
string
Example:

"wdrl_ref_001"

payout_currency
string

defaults to XOF

Example:

"XOF"

payout_mobile
string

Mobile money. Required when destination_type is MOBILE_MONEY, unless use_saved_destination is set.

Example:

"+2250700000002"

payout_network
string
Example:

"orange_money"

save_destination
boolean

SaveDestination stores the details supplied here against the recipient, so a later payout can use use_saved_destination instead of repeating them.

Example:

false

token
string
Example:

"USDC"

use_saved_destination
boolean

UseSavedDestination pays to the recipient's own saved default for this currency instead of details supplied here. Use this when you know the recipient's phone number but not their account — they supply their own details once, on their own channel, and later payouts resolve to them.

Example:

false

Response

Accepted

message
string
status
string
withdrawal_id
string