Two routes to the same payout
The bank account address is the standing option. Register an account once, get an address, and anything ever sent there is converted and paid out. There is no order to open and no amount to state — the deposit is the instruction. It suits a payout destination you show a user repeatedly, or one you hand to a third party who will pay it on their own schedule. Creating an offramp order is the explicit option. You state the amount up front, Paj prices it and returns a one-off funding address, and you send the tokens there. It suits the moment where the figure matters — a checkout where you have quoted someone a specific naira amount, or a payout you need tied to one deposit rather than to an address anyone can pay at any time.The standing address is the simpler integration and the one most products
reach for. Orders exist for when a specific amount has to be quoted, accepted,
and settled as a unit.
Which chain
The standing address is Solana only. Orders work on every supported chain — Solana, TON, Ethereum, Base, BNB Smart Chain, Monad and Arc — so if your users hold funds anywhere other than Solana, the order is the route to use, whatever the amount. Name the chain withchain (it defaults to SOLANA) and the token with mint.
The chain’s settlement stablecoin — USDC everywhere except TON, where it is
USDT — pays out directly; any other token is priced at its USD value when the
deposit lands.
Pricing
Both routes settle at theoffRampRate live when the deposit is observed, not
when you asked. An order gives you a quote to show a user, but it does not lock
anything — see Rates for why the number can move underneath
you and how to present it honestly.
The life of an order
An order opens atINIT and sits there waiting for funds. When the deposit is
seen on-chain it moves to PROCESSING, and once the naira has left for the bank
account it ends at COMPLETED. ERROR is the other terminal state.
Each of those transitions is posted to a webhook as it happens, in the same shape
as the response that created the order. Name one per order with webhookURL, or
leave it out and the rampWebhookURL configured on your API key is used — set
that once with Update your webhook URLs and
every order is covered. With neither, you are polling.
Funding addresses are borrowed, not owned
Theaddress on an order comes from a shared pool and goes back to it. An order
that sits unfunded for two hours is treated as abandoned and its address is
released for reuse, and the order record itself is deleted after 72 hours.
This is the sharpest difference between the two routes. A bank account address
is derived from the account itself and is permanent — safe to store next to the
user, safe to display again tomorrow. A funding address is temporary and safe
for exactly one order.
A funding address also belongs to one chain. On the EVM chains the same address
exists on all five networks, but it is only watched on the chain the order
names — send there.
Who the payout belongs to
Orders take an optionalbvn identifying the end user behind the payout. Send
one and Paj traces it to that user’s KYC record, verifying and registering them
if the BVN is new. Leave it out and the order is attributed to your business
alone — the payout still works, but nothing ties it to an individual.