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: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.
Create a temporary offramp in this order:
- 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.
If a live permanent offramp already exists for that customer, asset, and chain, Daya returns the same address. Updating settlement does not change the crypto address shown to the customer.
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.
Temporary offramps support
NGN_PAYOUT only. Permanent offramps support INTERNAL_BALANCE and NGN_PAYOUT.
Developer Fees
To keep a percentage of each offramp deposit, senddeveloper_fee.percentage when creating the funding account. Use a decimal string from 0 to 50. Deposit responses and deposit webhooks show the developer fee and the customer amount separately from Daya fees.
For offramps, the developer fee is deducted before the final customer amount is calculated. The deposit response and webhook show the exact fee in developer_fee and the amount left for the customer in customer_amount.
developer_fee.percentage is a percentage value, not basis points. For example, 0.5 means 0.5%, 2 means 2%, and 50 means 50%.
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.
For funding-account offramps with NGN_PAYOUT, NGN payout delivery happens in the background as part of deposit settlement. Track the customer-facing state from the deposit status, settlement_status, and deposit.* webhooks. Show states such as Deposit received, Settlement processing, Settlement settled, Settlement failed, or Requires review. Do not wait for a separate transfer or payout webhook for this flow.
Listen for:
Next Steps
Create Funding Account
Create an offramp with a crypto address.
Banks
Resolve a bank account before NGN payout.
Deposits
Reconcile crypto deposits.