Overview
An onramp lets your customer pay Naira (NGN) into a Daya bank account. Daya records the incoming money as a deposit, then sends the value as stablecoins. New integrations create onramps with Funding Accounts. In the API, an onramp is a funding account with:The older
/v1/onramps routes still exist for existing integrations. New integrations should create onramps with /v1/funding-accounts.Customer
Every onramp belongs to a customer. Create the customer first withPOST /v1/customers, then pass customer.customer_id when creating the funding account.
Customers are scoped to your merchant account. The same customer can have more than one temporary onramp, but permanent onramps are reused when there is already a live one for that customer.
Temporary Onramps
Use a temporary onramp for one payment.
Get a BUY rate first with
GET /v1/rates?side=BUY and pass the returned rate_id when creating any temporary onramp. This includes NGN_BALANCE: no FX occurs for retained-NGN settlement, but the current temporary-account contract still requires the BUY rate. The rate must still be valid when the onramp is created.
After creation, display these values to the customer:
- Bank name
- Account number
- Account name
- Exact NGN
amountfrom the create response - Expiry time, when present
amount is the principal before any payment-provider collection charge. Tell the customer to send the exact response amount before the payment window ends. Do not recalculate or round it. Deposits that arrive after the window, or after a bound rate expires, are flagged for review instead of settling automatically.
Temporary onramp to onchain settlement
Permanent Onramps
Use a permanent onramp when the same customer should keep the same NGN bank details for repeat payments.
If a live permanent onramp already exists for that customer, Daya returns the same account. Updating settlement does not change the bank account details shown to the customer.
Permanent onramp to Daya balance
Rate Behavior
For temporary onramps with a bound
rate_id, the customer must pay during the valid payment window. Late deposits do not settle automatically.
Settlement
Choose where the NGN value goes after Daya receives the bank transfer.
For
ONCHAIN, use Supported Chains to choose a supported network.
Use GET /v1/customers/{id}/balances to read a customer balance and Create transfer to spend it.
Developer Fees
To keep a percentage of each onramp 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 onramps, the developer fee is deducted before the final customer amount is calculated. It is not added as an extra charge. Use developer_fee.amount and developer_fee.currency to track the fee, and use customer_amount to know what the customer should receive or be credited with.
developer_fee.percentage is a percentage value, not basis points. For example, 0.5 means 0.5%, 2 means 2%, and 50 means 50%.
Track Deposits
Use/v1/deposits to reconcile money received through onramps. Deposit responses include funding_account_id, so you can connect the payment back to the account shown to the customer.
Listen for:
Limits
Funding account creation limits may apply to high-volume integrations. If you need a higher limit, contact Daya before launch.Next Steps
Create Funding Account
Create an onramp with an NGN virtual account.
Rates and Settlement
Understand BUY rates and settlement destinations.
Deposits
Reconcile money received through onramps.