---
title: "Update (Re-quote) a Withdrawal Detail"
method: PATCH
path: "/v1/withdraw-details/{id}"
tags: ["Withdrawals"]
---

# Update (Re-quote) a Withdrawal Detail

`PATCH /v1/withdraw-details/{id}`

Re-quotes an existing withdrawal in place when inputs change or the quote expires. Returns a fresh `token`, `prepared` payload, and `summary` while reusing the same `withdrawalDetailId`. Only details in `QUOTED` state are re-quotable. Optional `customerId` on the request body is ignored; it is set only on prepare.

## Path parameters

- `id` string, required

## Request body

- PreparedWithdrawalDto
  - `ownerAddress` string, required — Holder's source wallet address. Format is lane-specific (e.g. Solana base58 for Solana `raw`, EVM checksummed address for EVM `raw`/`hyperliquid`).
  - `recipient` string, required — Destination address on any supported chain.
  - `amount` string, required — Amount in atomic units as a decimal-free string (e.g. `1500000` for 1.5 USDC).
  - `toCurrencyId` string, required — Destination currency Mongo ID.
  - `sourceCurrencyId` string, required — Source currency Mongo ID from the withdrawal config.
  - `customerId` string — Optional merchant identifier for the end user (max 255 characters). Persisted on prepare and echoed on the withdrawal detail and webhooks. Not applied on re-quote.

## Response `200`

Withdrawal re-quoted successfully.

- PreparedWithdrawalEntity
  - `withdrawalDetailId` string — Per-request ID. Use for submit and status polling.
  - `token` string — JWT quote token. Pass verbatim on submit.
  - `prepared` union
    - RawPreparedTransaction
      - `kind` 'raw', required
      - `chain` string, required — Blockchain symbol (e.g. `SOL`).
      - `unsignedTx` string, required — Base64-encoded unsigned VersionedTransaction, already sponsor-signed as fee payer.
    - UserOpPreparedTransaction
      - `kind` 'userop', required
      - `chain` string, required — EVM blockchain symbol (e.g. `BASE`).
      - `userOp` object, required — Unsigned ERC-4337 UserOperation. Shape depends on the 4337 version.
      - `entryPoint` string, required — EntryPoint contract address for the user operation.
      - `authorization` object — Optional EIP-7702 authorization metadata.
        - `chainId` string
        - `address` string
        - `nonce` string
    - HypercorePreparedTransaction
      - `kind` 'hypercore', required
      - `chain` string, required — Blockchain symbol for the HyperCore action.
      - `typedData` PreparedWithdrawalTypedData, required
        - `domain` PreparedWithdrawalTypedDataDomain
          - `name` string
          - `version` string
          - `chainId` number
          - `verifyingContract` string
        - `types` object
        - `primaryType` string
        - `message` object
  - `summary` PreparedWithdrawalSummary
    - `sourceToken` string
    - `sourceAmount` string
    - `destinationToken` string
    - `destinationAmount` string — Firm expected output net of fees.
    - `destinationAmountMin` string — Minimum output after slippage.
    - `destinationAmountUsd` string, nullable — USD value of `destinationAmount`, when a price is available. Optional.
    - `destinationAmountMinUsd` string, nullable — USD value of `destinationAmountMin`, when a price is available. Optional.
    - `maxSlippageBps` number — Maximum slippage tolerance in basis points.
    - `estimatedPriceImpact` number — Estimated price impact, when available.
    - `bridgeFee` WithdrawalQuoteFee
      - `amount` string — Fee amount in atomic units of `currency`.
      - `currency` Currency
        - `blockchain` Blockchain, required
          - `engine` BlockchainEngine, required
            - `id` string, required
            - `type` 'EVM' | 'SOL' | 'BTC', required
          - `id` string, required
          - `name` string, required
          - `symbol` 'SOL' | 'ETH' | 'POLYGON' | 'BASE' | 'BITCOIN', required
        - `id` string, required
        - `symbol` string, required
        - `name` string, required
        - `mintAddress` string, required
        - `coinMarketCapId` number, required
        - `decimals` number, required
        - `minDecimals` number
        - `symbolPrefix` string
        - `order` number, required
        - `type` 'FIAT' | 'DIGITAL'
        - `features` string[]
        - `iconUrl` string
    - `applicationFee` WithdrawalQuoteFee
      - `amount` string — Fee amount in atomic units of `currency`.
      - `currency` Currency
        - `blockchain` Blockchain, required
          - `engine` BlockchainEngine, required
            - `id` string, required
            - `type` 'EVM' | 'SOL' | 'BTC', required
          - `id` string, required
          - `name` string, required
          - `symbol` 'SOL' | 'ETH' | 'POLYGON' | 'BASE' | 'BITCOIN', required
        - `id` string, required
        - `symbol` string, required
        - `name` string, required
        - `mintAddress` string, required
        - `coinMarketCapId` number, required
        - `decimals` number, required
        - `minDecimals` number
        - `symbolPrefix` string
        - `order` number, required
        - `type` 'FIAT' | 'DIGITAL'
        - `features` string[]
        - `iconUrl` string
    - `protocolFee` WithdrawalQuoteFee
      - `amount` string — Fee amount in atomic units of `currency`.
      - `currency` Currency
        - `blockchain` Blockchain, required
          - `engine` BlockchainEngine, required
            - `id` string, required
            - `type` 'EVM' | 'SOL' | 'BTC', required
          - `id` string, required
          - `name` string, required
          - `symbol` 'SOL' | 'ETH' | 'POLYGON' | 'BASE' | 'BITCOIN', required
        - `id` string, required
        - `symbol` string, required
        - `name` string, required
        - `mintAddress` string, required
        - `coinMarketCapId` number, required
        - `decimals` number, required
        - `minDecimals` number
        - `symbolPrefix` string
        - `order` number, required
        - `type` 'FIAT' | 'DIGITAL'
        - `features` string[]
        - `iconUrl` string
    - `totalFee` WithdrawalQuoteFee
      - `amount` string — Fee amount in atomic units of `currency`.
      - `currency` Currency
        - `blockchain` Blockchain, required
          - `engine` BlockchainEngine, required
            - `id` string, required
            - `type` 'EVM' | 'SOL' | 'BTC', required
          - `id` string, required
          - `name` string, required
          - `symbol` 'SOL' | 'ETH' | 'POLYGON' | 'BASE' | 'BITCOIN', required
        - `id` string, required
        - `symbol` string, required
        - `name` string, required
        - `mintAddress` string, required
        - `coinMarketCapId` number, required
        - `decimals` number, required
        - `minDecimals` number
        - `symbolPrefix` string
        - `order` number, required
        - `type` 'FIAT' | 'DIGITAL'
        - `features` string[]
        - `iconUrl` string
    - `expiresAt` string, date-time — Quote expiry. Re-quote before this passes.

## Other responses

- `404` — Withdrawal detail not found.
- `409` — Withdrawal is not re-quotable in its current state (not `QUOTED`).

---

[API](https://skmtc.net/hel/apis/helio-open-api.md) · [All operations](https://skmtc.net/hel/apis/helio-open-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/hel/helio-open-api/versions/5732beb2d39f/schema)
