What is a Withdrawal?
A withdrawal moves funds from your Daya merchant balance to an on-chain destination address. Withdrawals are separate from deposits. A deposit may settle into merchant balance first, and the withdrawal happens later as its own lifecycle.When Withdrawals Are Used
Withdrawals apply when an onramp settles to merchant balance instead of auto-withdrawing directly on-chain. Typical flow:- Deposit settles into merchant balance
- You check available balance
- You create a withdrawal to a supported chain and token
- Daya tracks the withdrawal until it settles or fails
Withdrawal Properties
Each withdrawal is represented by the following fields:| Property | Description |
|---|---|
id | Unique withdrawal identifier |
amount_usd | Amount withdrawn from merchant balance |
chain | Destination chain |
token | Token sent on-chain |
destination_address | Recipient address |
status | Current withdrawal status |
failure_code | Failure code if unsuccessful |
failure_message | Human-readable failure detail |
provider_tx_id | Provider-side transfer identifier |
tx_hash | On-chain transaction hash after submission/settlement |
created_at | When the withdrawal record was created |
updated_at | Last update time |
submitted_at | When the withdrawal was submitted to the provider |
settled_at | When the withdrawal completed |
Withdrawal Statuses
| Status | Meaning | Terminal |
|---|---|---|
PENDING | Withdrawal record exists but has not been submitted yet | No |
SUBMITTED | Sent to the provider and awaiting final outcome | No |
SETTLED | Withdrawal completed successfully | Yes |
FAILED | Withdrawal failed permanently | Yes |
Lifecycle
At a high level, withdrawals move through these stages:- Created A withdrawal request is accepted against available merchant balance
- Submitted The withdrawal is successfully initiated with the provider
-
Completed
The withdrawal becomes
SETTLEDorFAILED
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.submittedwithdrawal.settledwithdrawal.failed
eventtimestampdata(the public withdrawal object)
Supported Chains and Tokens
Withdrawals are constrained by token-level support, not just chain-level support. Use List Supported Chains to fetch the current live matrix of supported chains and token combinations.API Routes
Use these routes to work with 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