Skip to main content

Overview

Rates and settlement define how value moves through the Daya API:
  • Rates determine how much stablecoin a deposit converts into
  • Settlement determines where the converted funds are delivered
These rules are deterministic and depend on the funding account type and settlement destination.

Rates

A rate is a firm FX quote used to convert between NGN and stablecoins. Each rate includes:
  • A fixed exchange rate
  • A side (BUY or SELL)
  • A defined validity window (TTL)
  • A unique rate_id for funding account settlement requests that need a firm quote

Buy vs Sell Rates

SideUse Case
BUYMerchant is buying crypto (receiving NGN deposits, converting to stablecoin)
SELLMerchant is selling crypto (converting stablecoin to NGN settlement)
New rates are generated approximately every 10 minutes and expire about 30 minutes after creation.

Rate Properties (Conceptual)

Each rate defines the following attributes:
PropertyMeaning
rate_idIdentifier used to bind a funding account settlement request
from / toSource and destination currencies
sideBUY or SELL
rateConversion rate
expires_atWhen the rate becomes invalid
Rates are immutable once published.

Rate Semantics by Funding Account Type

How a rate is applied depends on the funding account.

Temporary NGN Funding Accounts (Firm Rates)

Temporary NGN funding accounts that settle on-chain are bound to a specific rate_id at creation.
  • Deposits received within the validity window execute at the bound rate
  • Deposits received after expiry do not settle automatically
  • No slippage occurs within the validity window
This provides price certainty for time-sensitive or one-time transactions.

Permanent NGN Funding Accounts (Floating Rates)

Permanent NGN funding accounts are not bound to a specific rate.
  • Each deposit uses the current rate at the time of execution
  • Rates may differ between deposits on the same funding account
  • Subject to market movement and spread
This is best suited for recurring or long-lived deposit flows.

Rate Expiry Behavior

If a deposit arrives after a bound rate expires:
  • The deposit is FLAGGED
  • No FX or settlement occurs automatically
  • Manual review is required
Rates cannot be extended, reused, or retroactively applied.

Settlement

Settlement defines where converted stablecoins are sent after FX conversion. Settlement behavior is configured on the funding account.

Settlement Modes

On-chain (ONCHAIN)

Converted stablecoins are sent to a blockchain address.
  • Settlement occurs after FX conversion
  • Subject to risk checks
  • Finalized once the on-chain transaction confirms
Used for direct wallet settlement and real-time delivery.

Internal balance (INTERNAL_BALANCE)

Converted funds are credited to the merchant’s Daya balance.
  • No immediate on-chain transaction
  • Funds can be withdrawn later
  • Useful for aggregation and batch withdrawals

NGN Payout (NGN_PAYOUT)

For crypto funding account deposits — converted funds are paid out as NGN to a Nigerian bank account.
  • Requires a rate_id (SELL rate) and destination_bank on the funding account when the destination is rate-locked
  • Settlement occurs after crypto deposit is confirmed and FX conversion is executed

Guarantees & Invariants

Daya enforces the following guarantees:
  • FX conversion and settlement are atomic
  • Partial execution is not possible
  • Rates are firm for temporary rate-locked funding accounts
  • Settlement behavior is immutable per temporary funding account (permanent funding accounts can update settlement)

What Rates and Settlement Do Not Guarantee

  • Rates do not guarantee settlement if deposits arrive late
  • Settlement does not occur if deposits are flagged or failed
  • Permanent funding accounts do not guarantee a fixed price

Next Steps

Funding Accounts

See how receive-money settlement is configured

Deposits

Understand the deposit lifecycle

Rates API

View the API reference