Funding Accounts
Create a funding account
Create a way for a customer to send NGN or crypto into Daya
Overview
Create a funding account for an existing customer. The response includes the public funding account object and the payment details the customer can use once setup succeeds.customer.customer_id is required. This endpoint does not create customers inline.Authentication
Your merchant API key
Unique idempotency key for request deduplication
Request Body
Funding account type. Allowed values:
TEMPORARY, PERMANENT.Receive rail. Allowed values:
NGN_VIRTUAL_ACCOUNT, CRYPTO_ADDRESS.Existing customer details. Include
customer_id. For permanent NGN virtual accounts, the customer must have completed Tier 1 KYC.Required for
NGN_VIRTUAL_ACCOUNT. Must be NGN.Required for
CRYPTO_ADDRESS. Supported values: USDC, USDT.Required for
CRYPTO_ADDRESS.Required for temporary NGN virtual accounts. Accepted only for
TEMPORARY accounts.settlement_destination
settlement_destination is a nested object. Do not send dotted keys such as settlement_destination.type.
| Field | Type | Required when |
|---|---|---|
type | string | Always. Allowed values depend on the funding account rail and type; see the matrix below. |
rate_id | string | Temporary NGN_VIRTUAL_ACCOUNT accounts that settle through ONCHAIN, or temporary CRYPTO_ADDRESS accounts that settle through NGN_PAYOUT. Do not send it for INTERNAL_BALANCE or permanent accounts. |
destination_asset | string | rail is NGN_VIRTUAL_ACCOUNT and type is ONCHAIN. Supported values: USDC, USDT. |
destination_chain | string | rail is NGN_VIRTUAL_ACCOUNT and type is ONCHAIN. |
destination_address | string | rail is NGN_VIRTUAL_ACCOUNT and type is ONCHAIN. |
destination_bank | object | rail is CRYPTO_ADDRESS and type is NGN_PAYOUT. Fixed request shape: account_number, bank_code. |
Allowed settlement destination types
rail | Funding account type | Allowed settlement_destination.type values |
|---|---|---|
NGN_VIRTUAL_ACCOUNT | TEMPORARY | INTERNAL_BALANCE, ONCHAIN |
NGN_VIRTUAL_ACCOUNT | PERMANENT | INTERNAL_BALANCE, ONCHAIN |
CRYPTO_ADDRESS | TEMPORARY | NGN_PAYOUT |
CRYPTO_ADDRESS | PERMANENT | INTERNAL_BALANCE, NGN_PAYOUT |
NGN_PAYOUT for NGN_VIRTUAL_ACCOUNT funding accounts, and do not send ONCHAIN for CRYPTO_ADDRESS funding accounts.
destination_bank
| Field | Type | Required |
|---|---|---|
account_number | string | Yes |
bank_code | string | Yes |
destination_bank, fetch supported banks with GET /v1/banks, then verify the account with POST /v1/banks/resolve. Use the verified bank_code and account_number in the funding account request. Do not send account_name; Daya returns the resolved account name in the funding account response.
Settlement Destination Shapes
Internal balance (NGN virtual account or permanent crypto address)
NGN virtual account to onchain settlement
Crypto address to NGN payout settlement
NGN_PAYOUT, destination_bank has a fixed request shape: account_number and bank_code. Get the supported bank first, resolve the account, then send the verified details.
Request Examples
Response
Returns afunding_account object. For NGN funding accounts, the bank account the customer should pay into is returned in instructions.
NGN funding account response
asset identifies the stablecoin the address should receive, chain identifies the network, and instructions contains the wallet address.