---
title: "Execute withdrawal"
method: POST
path: "/withdrawals/execute"
tags: ["Withdrawals"]
---

# Execute withdrawal

`POST /withdrawals/execute`

Executes a withdrawal that has been previously quoted.

## Headers

- `X-SCX-SIGNED` string, required
- `X-SCX-TIMESTAMP` string, required

## Request body

- WithdrawalExecuteRequest
  - `withdrawal_quote_id` string — The unique id associated with a locked network fee quote
  - `client_withdrawal_request_id` string — A unique id for the withdrawal produced by the Platform
  - `beneficiary_participant_code` string — The identifier of the participant benefiting from the withdrawal request
  - `beneficiary_first_name` string — The first name of the participant benefiting from the quote request Only applies to individual beneficiaries. Cannot be used along with business_beneficiary_name. Note: Redundant if beneficiary_participant_code is provided in request
  - `beneficiary_last_name` string — The last name of the participant benefiting from the quote request Only applies to individual beneficiaries. Cannot be used along with business_beneficiary_name. Note: Redundant if beneficiary_participant_code is provided in request
  - `beneficiary_business_name` string — The name of the the business participant benefiting from the quote request Only applies to business beneficiaries. Cannot be used along with first/last_beneficiary_name. Note: Redundant if beneficiary_participant_code is provided in request

## Response `200`

Successfully executed withdrawal.

- WithdrawalExecuteResponse
  - `message` ExecuteResponse — Response body returned by POST /withdrawals/execute, describing the executed withdrawal.
    - `request_id` string, uuid — Server-generated request identifier for this execution. Returned as part of the audit trail for the call.
    - `withdrawal_quote_id` string, uuid — The locked network fee quote ID that was executed. Matches the `withdrawal_quote_id` supplied on the request.
    - `withdrawal_request_id` string, uuid — The underlying withdrawal request ID created as a result of this execution. Use this value with GET /withdrawals/requests/{id} to poll status.
    - `participant_code` string — The participant code the withdrawal is debited against.
    - `account_group` string — The `account_group` for the source account the withdrawal is debited from.
    - `account_label` string — The `account_label` for the source account the withdrawal is debited from.
    - `withdrawal_address` string — The on-chain address that will receive the crypto asset. Only populated when the quote was requested by address (rather than by `withdrawal_account_id`).
    - `withdrawal_account_id` string — The whitelisted withdrawal account identifier used for the withdrawal. Only populated when the quote was requested by `withdrawal_account_id`.
    - `destination_tag` string — The destination tag or memo ID associated with the transaction. Required when the asset is EOS, XLM, or XRP and `no_destination_tag` is false. Returned as an empty string when not applicable.
    - `no_destination_tag` boolean — Whether the destination address requires a destination tag. False for tag-based assets when a tag is included. zerohash requires `no_destination_tag` to be `false` for EOS.
    - `asset` string — The asset being withdrawn.
    - `amount` string — The requested withdrawal amount.
    - `amount_notional` string — The notional value of the withdrawal amount in USD at the time the quote was locked.
    - `network_fee` string — The network fee quantity being deducted from the requested withdrawal amount.
    - `network_fee_notional` string — The network fee notional value in USD.
    - `on_chain_status` 'CONFIRMED' | 'PENDING' — The status of the withdrawal on the blockchain at the time of execution. Newly executed withdrawals return `PENDING`; the status transitions to `CONFIRMED` once the transaction is confirmed on-chain.
    - `withdrawal_fee` string — The withdrawal fee (denominated in the withdrawn asset) charged by zerohash for this execution. Returns "0" when no withdrawal fee applies.
    - `client_withdrawal_request_id` string — The client-supplied `client_withdrawal_request_id` echoed back, or an empty string when none was supplied.

## Other responses

- `400` — Bad Request
- `403` — Forbidden
- `404` — Not Found
- `500` — Internal Server Error
- `503` — Service Unavailable

---

[API](https://skmtc.net/zerohash/apis/zerohash-api.md) · [All operations](https://skmtc.net/zerohash/apis/zerohash-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/zerohash/zerohash-api/revisions/8b647d934363/schema)
