| Product | Direction | Typical use |
|---|---|---|
| Offramps | Stablecoin → local fiat | Pay a supplier’s NGN bank account from your USDC treasury |
| Onramps | Local fiat → stablecoin | Let a customer deposit NGN and receive USDC at their wallet |
Before you create an order
Use the reference endpoints to discover what is supported and validate bank details before committing:| Endpoint | Purpose | Scope |
|---|---|---|
GET /v1/fiat/currencies | Supported local currencies | offramps:read or onramps:read |
GET /v1/fiat/institutions/:code | Banks for a currency | offramps:read or onramps:read |
POST /v1/fiat/verify-account | Confirm account name before payout | offramps:write or onramps:write |
GET /v1/fiat/rates/:token/:amount/:currency | Sell quote (stablecoin → fiat) | fx:read |
/fiat/currencies as they become available — do not hardcode.
Offramps — pay a local bank account
Send stablecoin; the recipient receives fiat in their bank account.Get a rate
Call
GET /v1/fiat/rates/:token/:amount/:currency and note the quoted rate. You pass this rate when creating the order.Create the order
POST /v1/offramps with recipient bank details, amount, rate, returnAddress (where funds return if the order fails), reference, and a customer customerId.Fund the order
Send the exact stablecoin amount to the
receiveAddress in the response before validUntil.Link your transfer
After your on-chain transfer succeeds, call
PATCH /v1/offramps/:orderId/external-transfer with your internal transfer ID. This ties your funding transaction to the order so settlement can proceed.DELETE /v1/offramps/:orderId. You cannot cancel after linking an external transfer.
Scopes: offramps:read, offramps:writeThe legacy
payouts:* scopes still work as aliases for offramps.
Example — create offramp
Onramps — collect fiat, deliver stablecoin
Create a virtual account; your user deposits local currency; stablecoin is delivered to the wallet you specify.Create the order
POST /v1/onramps with destinationAddress, destinationAddressType (liquidation_address or main_wallet), refundAccount (bank details for failed deposits), amount, and customerId.Share deposit details
The response includes a
deposit object with bank name, account number, amount to transfer, and validUntil. Show these to your user.settlementTxHash and settledUsdcAmount.
Scopes: onramps:read, onramps:write
Example — create onramp
Reconciliation
Offramps and onramps appear in the unified ledger alongside payment routes and payment links:kind | Product |
|---|---|
offramp | Stablecoin → local fiat payout |
onramp | Local fiat deposit → stablecoin delivery |
customerId to build per-user payout or funding history.
Outbound webhooks to your server are not available yet. Poll order endpoints or the transactions ledger for status updates.