Skip to main content
Validates the recipient’s account, locks a quote, and returns where to send USDC. Nothing moves until you deposit.
Backend only. Never call from frontend.

Endpoint

Requires the offramp scope.
Always send an Idempotency-Key (any string unique per payout, e.g. your payout ID). Replaying the same key returns the original order with a 200 instead of creating a duplicate, so retries on timeouts are safe.

Body

number
required
USDC amount, 0.5 – 50,000. The local equivalent must fall inside the per-transaction range.
string
required
Payout currency: KES, NGN, GHS, or UGX.
string
required
A 0x EVM address you control. Failed NGN payouts are refunded here automatically; it is also the return path of record for support cases.
object
required
Who gets paid. Shape per method in recipients. Validated before the order is created.
string
Your reference (e.g. internal payout ID). Echoed back as external_reference in responses and webhooks.

Example

Response (201)

string
required
Unique order identifier.
number
required
The exact USDC amount to send. Equals amount_usdc for KES, GHS, and UGX. For NGN it is amount_usdc + sender_fee_usdc + transaction_fee_usdc.
number
NGN orders only. A network fee included in total_deposit_usdc.
number
NGN orders only. A network fee included in total_deposit_usdc.
string
required
Where to send USDC on Base. For KES, GHS, and UGX this is a shared settlement address; always follow your transfer with a hash submission. For NGN it is a single-use address monitored automatically.
string
required
Always base. USDC sent on other chains is not detected.
number
required
Quoted rate. For KES, GHS, and UGX the payout executes at the live rate at deposit time, and the order’s rate, amount_local, and fee update to the executed values. For NGN the rate is locked.
string
required
Deposit deadline, ISO 8601. 30 minutes for KES, GHS, UGX; about 5 minutes for NGN. After it passes the order becomes expired.
string
required
Human-readable next step for this specific order.

Errors