Withdrawals

Create withdrawal request

Changed on

Creates 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):

MethodFieldUse for
Saved accountwithdrawal_account_idPre-whitelisted crypto address or fiat account (recommended)
Inline cryptoaddress (+ destination_tag for tag assets)An on-chain address
Inline fiataccount{}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.

post/withdrawals/requests

Request

  • Base URL
    https://api.cert.zerohash.com
  • URL
    https://api.cert.zerohash.com/withdrawals/requests
  • Auth
    API key in header X-SCX-API-KEY and API key in header X-SCX-PASSPHRASE

Headers

X-SCX-SIGNEDstring required

HMAC-SHA256 signature of the request, base64-encoded. See the Authentication guide for the exact signing formula.

X-SCX-TIMESTAMPstring required
Example:1678901234

Current Unix timestamp in seconds. Must be within 60 seconds of server time or the request is rejected.

Request body

OR
OR
OR
OR

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 Withdrawals subschema #3: Tag based asset withdrawals subschema #4: DOMESTIC_FIAT withdrawals subschema #5: INTERNATIONAL_FIAT withdrawals from the request body oneOf list

    • info

      added subschema #1: UTXO and Account-Based Withdrawals subschema #2: Tag based asset withdrawals subschema #3: DOMESTIC_FIAT withdrawals subschema #4: INTERNATIONAL_FIAT withdrawals to the request body anyOf list

    • 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