---
title: "Execute quote"
method: POST
path: "/convert_withdraw/execute"
tags: ["Convert and Withdraw"]
---

# Execute quote

`POST /convert_withdraw/execute`

Executes a convert-and-withdraw quote. The underlying asset will be purchased and automatically withdrawn. Use the returned `withdrawal_request_id` with `GET /withdrawals/requests/{id}` to track the withdrawal.

## Headers

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

## Request body

- PostCWExecuteQuoteBody
  - `quote_id` string, required — the identifier of the quote to execute, which is provided in response to a `POST /convert_withdraw/rfq` or `GET /convert_withdraw/rfq` request
  - `withdrawal_request_id` string — Optional withdrawal request ID to associate with the execution. Used by flows that pre-create a withdrawal record and then execute a quote against it.
  - `funding_details` union — ACH funding details, required only for ACH-funded executions. Supply either an `inbound_reference_id` (to settle against an already-received inbound) or the `external_account_id`/`description`/`bank_fee` trio (to initiate a new ACH pull).
    - object
      - `inbound_reference_id` string, required — Reference ID of an already-received inbound ACH payment to settle this trade against.
    - object
      - `external_account_id` string, required — Registered external bank account to pull funds from.
      - `description` string, required — Short free-form description written to the ACH statement (max 10 characters).
      - `bank_fee` string, required — Bank fee notional (decimal string) applied to this ACH pull.

## Response `200`

Successfully executed convert-and-withdraw quote. Returns the executed quote, the booked `trade_id`, the trade status, and the `withdrawal_request_id` for tracking the on-chain withdrawal.

- PostCWExecuteQuoteResponse
  - `message` object
    - `request_id` string — The identifier of the RFQ
    - `quote` CWQuoteEntityExecute
      - `request_id` string — The identifier of the RFQ
      - `participant_code` string — The identifier of the participant making the quote request
      - `quoted_currency` 'CAD' | 'EUR' | 'GBP' | 'JPY' | 'MXN' | 'USD' — the quoted asset
      - `side` 'buy' | 'sell' — The participant side of the quote
      - `quantity` string — The amount of the underlying currency
      - `price` string — The cost per unit of underlying currency
      - `quote_id` string — The identifier for the quote Note: this is required to execute the quote
      - `expire_ts` number — Timestamp when the quote will expire
      - `account_group` string — The group that the account is a part of
      - `account_label` string — The account label associated with the account
      - `obo_participant` OBOParticipantEntity
        - `participant_code` string — The identifier of the participant making the request
        - `account_group` string — The identifier of the the account group
        - `account_label` string — The account label associated with the account
      - `network_fee_notional` string — fee notional in the currency quoted on the RFQ
      - `network_fee_quantity` string — fee quantity in the underlying asset
      - `withdrawal_fee_type` integer — Indicates the withdrawal fee schedule applied to this quote (0 = flat/default, non-zero values indicate a tiered schedule).
      - `withdrawal_fee_tiers_list` object[] — Withdrawal fee tier schedule applied to this quote. Empty when `withdrawal_fee_type` is 0 (no tiered schedule).
      - `total_notional` string — Total notional is the full cost inclusive of fees or the total proceeds after fees
      - `underlying` 'AAVE.ETH' | 'ADA' | 'ALGO' | 'AVAX' | 'BAT.ETH' | 'BCH' | 'BTC' | 'BUSD.ETH' | 'COMP.ETH' | 'DAI.ETH' | 'DOGE' | 'DOT' | 'EGLD' | 'EOS' | 'ETC' | 'ETH' | 'ETH.ARBITRUM' | 'GRT.ETH' | 'GYEN.ETH' | 'HBAR' | 'LINK.ETH' | 'LTC' | 'LUNA' | 'MATIC.ETH' | 'MATIC.POLYGON' | 'MKR.ETH' | 'MOB' | 'SAND.ETH' | 'SOL' | 'UNI.ETH' | 'USDC.ETH' | 'USDC.ALGO' | 'USDC.POLYGON' | 'USDC.SOL' | 'USDC.HBAR' | 'USDC.XLM' | 'USDC.AVAX' | 'USDT.ETH' | 'UST' | 'WBTC.ETH' | 'XEM' | 'XLM' | 'XRP' | 'XTZ' | 'ZUSD.ETH' — the underlying asset
      - `asset_cost_notional` string — asset_cost_notional is a field that shows the notional cost of the asset
      - `withdrawal_address` string — The whitelisted withdrawal address to withdraw funds to
      - `payment_processor` object
        - `name` string — The name of the payment processor
        - `id` string — The unique identifier of the payment according to the PSP
      - `spread_notional` string — The notional spread applied to the quote
      - `spread_bps` string — The basis points spread to apply to the quote
      - `commission_notional` string — The notional commission applied to the quote
      - `commission_bps` string — The commission in basis points applied to the quote
    - `trade_id` string — The unique identifier assigned to the trade, which is the same `trade_id` as found in a `GET /trades` request. Note: the `quote_id` will be saved as the `client_trade_id`.
    - `trade_ids_list` string[] — All `trade_id`s booked as part of this execution. The first element matches `trade_id`; additional entries represent any settlement / bookkeeping legs.
    - `status` 'Completed' | 'Rejected' — The status of the trade.
    - `withdrawal_request_id` string — Identifier of the withdrawal that was automatically initiated as part of this execution. Use with `GET /withdrawals/requests/{id}` to poll the withdrawal status.
    - `ach_details` object, nullable — Echoed ACH execution details. Only present when the execution used `funding_details` (ACH).
      - `inbound_reference_id` string
      - `external_account_id` string
      - `bank_fee` string
      - `payment_amount` string

## 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/versions/8b647d934363/schema)
