Create a withdrawal

Creates a withdrawal from a previously requested quote.

POST/withdrawals

System information

API key
Required
Rate limit
∞

Before creating, get a quoteId from the fee calculation (POST /withdrawals/calculate).

Body parameters

ParameterTypeRequiredDescription
quoteIdstring (UUID)YesValue from the quote response.
coinCodestringYesSame as in the quote.
networkCodestringYesSame as in the quote.
amountstringYesSame as in the quote.
destinationAddressstringYesSame as in the quote.
curl -X POST "https://api.atomic.wallet/api/v1/withdrawals" \
  -H "x-api-key: $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "quoteId": "42792728-4d29-4d0a-bcb5-4aed46642fce",
  "coinCode": "USDT",
  "networkCode": "ethereum",
  "amount": "10.000000",
  "destinationAddress": "0x977e259e69ad9bfd882ceb411afaebb4a66e4020"
}'
{
  "uuid": "0f8c2a2e-7d0c-4f4b-9a51-1c2f6b8e4d10",
  "coinCode": "USDT",
  "networkCode": "ethereum",
  "amount": "10.000000",
  "recipientAmount": "9.900000",
  "debitAmount": "10.000000",
  "address": "0x977e259e69ad9bfd882ceb411afaebb4a66e4020",
  "status": "requested",
  "networkFee": "0.100000",
  "txid": null,
  "createdAt": "2026-10-07T12:01:00.000Z",
  "updatedAt": "2026-10-07T12:01:00.000Z",
  "broadcastedAt": null,
  "confirmedAt": null
}

Response fields

ParameterTypeDescription
uuidstringWithdrawal UUID.
coinCodestringCryptocurrency code.
networkCodestringBlockchain network code.
amountstringRequested withdrawal amount.
recipientAmountstringAmount the recipient receives.
debitAmountstringAmount debited from the balance.
addressstringRecipient address.
statusstringWithdrawal status, see “Statuses”.
networkFeestringNetwork fee.
txidstring | nullBlockchain transaction hash. Appears after broadcasting.
createdAtstringCreation date (ISO 8601).
updatedAtstringLast update date (ISO 8601).
broadcastedAtstring | nullDate the transaction was broadcast (ISO 8601).
confirmedAtstring | nullConfirmation date (ISO 8601).

A 201 response means the withdrawal is accepted for processing. The minimum is 0.001 in coin units.

Idempotency

SituationResult
Creating a withdrawalBalance and permissions are checked again.
Timeout, result unknownRepeat the same request with the same quoteId. Do not request a new quote until you know the result.
Withdrawal already createdA retry returns the existing withdrawal, even after the quote has expired.
Different parameters with the same quoteId400 WITHDRAWAL_QUOTE_MISMATCH
Withdrawal cancelled or failedIt is not created again with the same quoteId.
Quote expired before creation400 WITHDRAWAL_QUOTE_INVALID_OR_EXPIRED: request a new quote, the fee may change.
Idempotency-Key headerNot used.

Possible errors

HTTPCodeDescription
400WITHDRAWAL_ASSET_UNAVAILABLEThe withdrawal asset is unavailable.
400WITHDRAWAL_DESTINATION_INVALIDInvalid destination address.
400WITHDRAWAL_AMOUNT_INVALIDInvalid withdrawal amount.
400WITHDRAWAL_AMOUNT_BELOW_MINIMUMThe withdrawal is below the minimum.
400WITHDRAWAL_BALANCE_INSUFFICIENTInsufficient balance.
400WITHDRAWAL_QUOTE_INVALID_OR_EXPIREDThe quote is invalid or expired.
400WITHDRAWAL_QUOTE_MISMATCHWithdrawal parameters do not match the quote.
400WITHDRAWAL_QUOTE_ALREADY_USEDThe quote is already used.
403ACCOUNT_ACCESS_DENIEDWithdrawals are disabled for the key (withdrawalsEnabled=false).