> ## Documentation Index
> Fetch the complete documentation index at: https://docs.paj.cash/llms.txt
> Use this file to discover all available pages before exploring further.

# Offramp

> Turning a token into fiat in a bank account, by standing address or by order.

Offramp is money moving out of crypto: a token arrives, naira lands in a bank
account. Paj gives you two ways to arrange that, and the choice is really about
whether you know the amount in advance.

## Two routes to the same payout

The [bank account address](/concepts/bank-account-addresses) 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](/api-reference/create-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.

<Note>
  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.
</Note>

## Which chain

The standing address is Solana only. Orders work on every [supported
chain](/concepts/chains) — 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 with `chain` (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 the `offRampRate` 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](/concepts/rates) for why the number can move underneath
you and how to present it honestly.

## The life of an order

An order opens at `INIT` 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](/api-reference/update-webhooks) and
every order is covered. With neither, you are polling.

## Funding addresses are borrowed, not owned

The `address` 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.

<Warning>
  Always send to the `address` on the response you are acting on. An address you
  cached from an earlier order may since have been reassigned, and funds sent
  there will settle somebody else's order.
</Warning>

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 optional `bvn` 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.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.