Skip to main content

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

X-Api-Key
string
required
Your merchant API key
X-Idempotency-Key
string
required
Unique idempotency key for request deduplication

Request Body

type
string
required
Funding account type. Allowed values: TEMPORARY, PERMANENT.
rail
string
required
Receive rail. Allowed values: NGN_VIRTUAL_ACCOUNT, CRYPTO_ADDRESS.
customer
object
required
Existing customer details. Include customer_id. For permanent NGN virtual accounts, the customer must have completed Tier 1 KYC.
currency
string
Required for NGN_VIRTUAL_ACCOUNT. Must be NGN.
asset
string
Required for CRYPTO_ADDRESS. Supported values: USDC, USDT.
chain
string
Required for CRYPTO_ADDRESS.
amount
integer
Required for temporary NGN virtual accounts. Accepted only for TEMPORARY accounts.
developer_fee
object
Optional fee that your merchant account keeps from each deposit received through this funding account. Omit to use 0%.

settlement_destination

settlement_destination is a nested object. Do not send dotted keys such as settlement_destination.type.

Allowed settlement destination types

Do not send NGN_PAYOUT for NGN_VIRTUAL_ACCOUNT funding accounts, and do not send ONCHAIN for CRYPTO_ADDRESS funding accounts.

destination_bank

Before sending 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
For temporary funding accounts, rate_id is required and the rate is locked for the temporary account’s validity window. For permanent funding accounts, omit rate_id; the rate is applied when each deposit is processed.
NGN virtual account to onchain settlement
Crypto address to NGN payout settlement
For 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 a funding_account object. For NGN funding accounts, the bank account the customer should pay into is returned in instructions.
NGN funding account response
For crypto funding accounts, asset identifies the stablecoin the address should receive, chain identifies the network, and instructions contains the wallet address.