Skip to main content

What is a Withdrawal?

A withdrawal moves funds from your Daya withdrawal balance to an on-chain destination address. Withdrawals are separate from deposits and transfers. A deposit may settle into the merchant collection balance first, then be transferred to the withdrawal balance, and the withdrawal happens later as its own lifecycle.
The merchant balance is split into a collection balance and a withdrawal balance. Withdrawals draw from the withdrawal balance. Use POST /v1/merchant/balance/transfer to move funds from collection to withdrawal.

How the Merchant Balance Works

Your merchant balance has two sides: To use collection funds for transfers or withdrawals, move them to your withdrawal balance via POST /v1/merchant/balance/transfer. You can also fund the withdrawal balance directly:
  • Crypto deposits — send stablecoins to your merchant funding crypto wallet addresses on any supported chain.
  • NGN deposits — transfer Naira to your permanent merchant funding NGN bank account. These are converted to USD at the current rate.

When Withdrawals Are Used

Withdrawals apply when you want to move funds from your Daya withdrawal balance to an on-chain crypto address. For sending funds to bank accounts, use the Transfers API instead. Typical flow:
  1. Fund your balance — funding account deposits and USD virtual account deposits land in the collection balance, or fund directly via merchant funding
  2. Move funds to the withdrawal balance via POST /v1/merchant/balance/transfer (skip this step if funded via merchant funding)
  3. Create a withdrawal to a supported chain and token
  4. Daya tracks the withdrawal until it settles or fails

Withdrawal Properties

Each withdrawal is represented by the following fields:

Withdrawal Statuses


Lifecycle

At a high level, withdrawals move through these stages:
  1. Created A withdrawal request is accepted against available merchant balance
  2. Submitted The withdrawal is successfully initiated with the provider
  3. Completed The withdrawal becomes SETTLED or FAILED
Withdrawal progress can be tracked via both the withdrawal read APIs and merchant webhook events.

Webhook Events

Merchant-configured webhook endpoints receive withdrawal lifecycle events:
  • withdrawal.created
  • withdrawal.submitted
  • withdrawal.completed
  • withdrawal.failed
Each webhook uses the common merchant webhook envelope:
  • event
  • timestamp
  • data (the public withdrawal object)

Supported Chains and Tokens

Withdrawals are constrained by token-level support, not just chain-level support.
Withdrawals currently support chains: SOLANA, TRON, APTOS, BASE, POLYGON, ETHEREUM with tokens USDC and USDT.
Use List Supported Chains to fetch the current live matrix of supported chains and token combinations.

API Routes

Use these routes to work with balances and withdrawals:

Next Steps

Merchant Balance

Check available funds before creating withdrawals

Supported Chains

Validate supported chain and token combinations

Webhook Events

Track withdrawal lifecycle asynchronously