Create withdrawal request
Changed onCreates new withdrawal requests to be settled. Withdrawal requests created through the API go directly into an APPROVED state.
Specifying the destination
Provide exactly one of the following per request (zerohash always responds with withdrawal_account_id):
| Method | Field | Use for |
|---|---|---|
| Saved account | withdrawal_account_id | Pre-whitelisted crypto address or fiat account (recommended) |
| Inline crypto | address (+ destination_tag for tag assets) | An on-chain address |
| Inline fiat | account{} | A bank wire (DOMESTIC / REAL_TIME / INTERNATIONAL) |
To retrieve saved account IDs use GET /withdrawals/digital_asset_addresses (crypto) and GET /withdrawals/fiat_accounts (fiat).
💡 Use the Examples dropdown on the request body to see a ready-to-use request for each destination method and withdrawal type.
Request
- Base URLhttps://api.cert.zerohash.com
- URLhttps://api.cert.zerohash.com/withdrawals/requests
- AuthAPI key in header X-SCX-API-KEY and API key in header X-SCX-PASSPHRASE
Headers
HMAC-SHA256 signature of the request, base64-encoded. See the Authentication guide for the exact signing formula.
Current Unix timestamp in seconds. Must be within 60 seconds of server time or the request is rejected.
Request body
Example request
{
"client_withdrawal_request_id": "c6af3d80-1aca-4280-b96b-a9b8d7ced46a",
"participant_code": "ABCDEF",
"account_group": "PLAT01",
"account_label": "sub_account_test",
"amount": "20.1",
"asset": "BTC",
"address": "2NCgV7BXXafJZ86utcYFs5m3tCpkcpLafeG"
}Response
Successfully created withdrawal request. Returns the created resource with generated IDs and timestamps.
Example response
{
"message": {
"id": "9084dd8f-ab9f-4f9b-a22b-49bdb4915a93",
"withdrawal_account_id": 3709509,
"participant_code": "ABCDEF",
"requestor_participant_code": "ABCDEF",
"requested_amount": "0.1004142",
"settled_amount": "0.100414200000000000",
"status": "APPROVED",
"asset": "BTC",
"account_group": "PLAT01",
"transaction_id": "0x0c36fd59b0f48257b5cd02cdf23fd8fb8230e27c5ddd28ce02c8a6a4736da4e6",
"requested_timestamp": 1777830138534,
"created_timestamp": "2026-05-03T17:40:10.733Z",
"client_withdrawal_request_id": "20aed707-3127-427d-a47e-97efc6470cb3",
"on_chain_status": "CONFIRMED",
"fee_amount": "0.000004021417575",
"withdrawal_fee": "0",
"quoted_currency": "EUR",
"quote_notional": "5",
"total_notional": "5.92",
"amount_in_usd": 234.32708342365032,
"recipient_instructions": "Invoice #123"
}
}Changes
- breaking
removed
subschema #2: UTXO and Account-Based Withdrawalssubschema #3: Tag based asset withdrawalssubschema #4: DOMESTIC_FIAT withdrawalssubschema #5: INTERNATIONAL_FIAT withdrawalsfrom the request bodyoneOflist - info
added
subschema #1: UTXO and Account-Based Withdrawalssubschema #2: Tag based asset withdrawalssubschema #3: DOMESTIC_FIAT withdrawalssubschema #4: INTERNATIONAL_FIAT withdrawalsto the request bodyanyOflist - info
added the optional property
/to the response with the status - info
added the optional property
/to the response with the status - info
added the optional property
/to the response with the status
- breaking