Skip to main content

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:
FieldValue
railNGN_VIRTUAL_ACCOUNT
currencyNGN
typeTEMPORARY or PERMANENT
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 with POST /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.
BehaviorDetails
PurposeOne-off, time-sensitive payment
AmountRequired
ReuseNever reused
Customer KYCNot required
ExpiryYes. Funds must arrive before the payment window closes
SettlementINTERNAL_BALANCE or ONCHAIN
RateRequired only when settlement is ONCHAIN
For ONCHAIN settlement, get a BUY rate first with GET /v1/rates?side=BUY. Pass the returned rate_id when creating the onramp. 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
  • Expected NGN amount
  • Expiry time, when present
Tell the customer to send the exact amount before the payment window ends. 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
{
  "type": "TEMPORARY",
  "rail": "NGN_VIRTUAL_ACCOUNT",
  "customer": {
    "customer_id": "650e8400-e29b-41d4-a716-446655440000"
  },
  "currency": "NGN",
  "amount": 50000,
  "settlement_destination": {
    "type": "ONCHAIN",
    "rate_id": "550e8400-e29b-41d4-a716-446655440000",
    "destination_asset": "USDC",
    "destination_chain": "BASE",
    "destination_address": "0x742d35cc6634c0532925a3b844bc9e7595f2bd18"
  }
}

Permanent Onramps

Use a permanent onramp when the same customer should keep the same NGN bank details for repeat payments.
BehaviorDetails
PurposeLong-lived customer deposit account
AmountDo not send
ReuseOne live permanent NGN account per merchant and customer
Customer KYCTier 1 required
ExpiryNo expiry while active
SettlementINTERNAL_BALANCE or ONCHAIN
RateApplied when each deposit settles
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
{
  "type": "PERMANENT",
  "rail": "NGN_VIRTUAL_ACCOUNT",
  "customer": {
    "customer_id": "650e8400-e29b-41d4-a716-446655440000"
  },
  "currency": "NGN",
  "settlement_destination": {
    "type": "INTERNAL_BALANCE"
  }
}

Rate Behavior

Onramp typeFX behavior
TEMPORARYRate is locked at creation when ONCHAIN settlement is used
PERMANENTRate is selected when each deposit settles
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.
Settlement destinationWhat happensRequired fields
INTERNAL_BALANCEFunds are credited to your Daya balanceNone
ONCHAINFunds are converted and sent to a stablecoin addressdestination_asset, destination_chain, destination_address
For ONCHAIN, use Supported Chains to choose a supported network.

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:
EventMeaning
funding_account.activeNGN account details are ready
deposit.receivedDaya recorded the incoming NGN transfer
deposit.processingSettlement has started
deposit.completedSettlement reached its destination
deposit.requires_reviewThe deposit needs review before continuing

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.