Overview
The Daya Onramps API is built around three core entities: Onramps, Deposits, and Rates. Understanding these concepts is essential for successful integration.Key Entities
Onramps
Deposit configurations that define how NGN is converted and settled
Deposits
Individual NGN inflows into an onramp’s virtual account
Rates
Firm FX quotes with guaranteed exchange rates and TTL
Onramps
An onramp is a deposit configuration that specifies:- Type: Permanent (long-lived) or Throwaway (ephemeral)
- Virtual Account: NGN bank account details for receiving deposits
- Rate Semantics: How FX conversion is determined
- Settlement Behavior: Where converted funds go (auto-withdraw or merchant balance)
Onramp Lifecycle
Learn more in Onramps.Deposits
A deposit represents a single NGN bank transfer into an onramp’s virtual account. Each deposit:- Has a unique
deposit_idandpayment_reference - Is tied to one onramp
- Undergoes FX conversion (if within validity window)
- Results in settlement (on-chain withdrawal or balance credit)
Deposit Lifecycle
Learn more in Deposits.Rates
A rate is a firm FX quote with:- Exchange Rate: NGN → USDC/USDT conversion rate
- TTL: Approximately 30-minute validity window
- Minimum Deposit: Per-chain minimum amounts
rate_id at creation.
Rate Validity
| Onramp Type | FX Rate Used | Behavior |
|---|---|---|
| Throwaway | Bound rate_id | Uses rate locked at onramp creation time |
| Permanent | Current rate | Uses latest rate at deposit settlement time |
Settlement Modes
Daya supports two settlement modes:- Auto-Withdraw
- Merchant Balance
For: Direct payment to user walletsAfter FX conversion, USDC/USDT is automatically withdrawn to the specified on-chain address.Requires:
destination_addressasset(USDC or USDT)chain(e.g., BASE, Ethereum)
Relationship Model
Guarantees
Firm quotes
Firm quotes
For throwaway onramps, the
rate_id at creation time is guaranteed for deposits within the validity window. No slippage or rate changes.Idempotency
Idempotency
Duplicate bank transfers (same
bank_reference) create only one deposit record. Webhooks may deliver multiple times, but your system should handle deduplication.Atomicity
Atomicity
FX conversion and settlement are atomic. Partial execution is impossible—either both succeed or both fail.
Immutability
Immutability
Once created, onramp settlement configuration cannot be changed. This prevents unauthorized modification attacks.
Edge Cases
Understanding edge cases is critical for production readiness. See Edge Cases & Guarantees for detailed failure mode documentation.
- Late deposits: NGN arrives after onramp/rate expiry →
FLAGGED - FX failures: No liquidity or conversion error →
FAILEDorFLAGGED - On-chain failures: Gas issues or network problems →
FAILED - Bank reversals: Original transfer reversed by bank →
REVERSED