Overview
An offramp gives your customer a crypto address for sending USDC or USDT into Daya. Daya records the incoming crypto as a deposit, then sends the value as Naira to a Nigerian bank account. New integrations create offramps with Funding Accounts. In the API, an offramp is a funding account with:| Field | Value |
|---|---|
rail | CRYPTO_ADDRESS |
asset | USDC or USDT |
chain | Supported network |
type | TEMPORARY or PERMANENT |
The older
/v1/offramps routes still exist for existing integrations. New integrations should create offramps with /v1/funding-accounts.Customer
Every offramp belongs to a customer. Create the customer first withPOST /v1/customers, then pass customer.customer_id when creating the funding account.
A customer can have multiple temporary offramps. Permanent offramps are reused when there is already a live one for the same customer, asset, and chain.
Temporary Offramps
Use a temporary offramp for one crypto deposit that should pay out to a Nigerian bank account.| Behavior | Details |
|---|---|
| Purpose | One-off crypto deposit |
| Asset and chain | Required |
| Reuse | Never reused |
| Address expiry | Yes. Funds must arrive before the address expires |
| Settlement | NGN_PAYOUT only |
| Rate | Valid SELL rate_id required |
| Bank account | Resolve before creating the offramp |
- Get a SELL rate with
GET /v1/rates?side=SELL. - List banks with
GET /v1/banks. - Resolve the destination account with
POST /v1/banks/resolve. - Create the offramp with
/v1/funding-accounts. - Display the crypto address, asset, chain, and expiry time to the customer.
Temporary offramp to NGN payout
Permanent Offramps
Use a permanent offramp when the same customer should keep the same crypto address for repeat deposits.| Behavior | Details |
|---|---|
| Purpose | Long-lived crypto deposit address |
| Asset and chain | Required |
| Reuse | One live permanent address per merchant, customer, asset, and chain |
| Address expiry | No expiry while active |
| Settlement | INTERNAL_BALANCE or NGN_PAYOUT |
| Rate | Applied when each deposit settles |
Permanent offramp to Daya balance
Bank Payouts
ForNGN_PAYOUT, resolve the bank account before creating the offramp:
- List supported banks with
GET /v1/banks. - Resolve the account with
POST /v1/banks/resolve. - Send the verified
account_numberandbank_codeindestination_bank.
account_name in the funding account request.
Settlement
Choose where the crypto value goes after Daya receives the deposit.| Settlement destination | What happens | Allowed types |
|---|---|---|
INTERNAL_BALANCE | Funds are credited to your Daya balance | PERMANENT |
NGN_PAYOUT | Funds are converted to NGN and paid to a Nigerian bank account | TEMPORARY, PERMANENT |
NGN_PAYOUT only. Permanent offramps support INTERNAL_BALANCE and NGN_PAYOUT.
Supported Chains
Offramps support APTOS, BASE, CELO, ETHEREUM, POLYGON, SOLANA, and TRON. See Supported Chains for the full deposit and withdrawal matrix per environment.Track Deposits
Use/v1/deposits to reconcile money received through offramps. Deposit responses include funding_account_id, asset, chain, and tx_hash.
Listen for:
| Event | Meaning |
|---|---|
funding_account.active | Crypto address is ready |
deposit.received | Daya recorded the incoming crypto deposit |
deposit.processing | Settlement has started |
deposit.completed | Settlement reached its destination |
deposit.requires_review | The deposit needs review before continuing |
Next Steps
Create Funding Account
Create an offramp with a crypto address.
Banks
Resolve a bank account before NGN payout.
Deposits
Reconcile crypto deposits.