Create Withdrawal

This end point initiates the withdrawal of an authenticated account.

🚧

Verify Details Before Initiating Withdrawals.

Please take a moment to verify the details before proceeding with the withdrawal process. Once submitted, funds cannot be recovered if sent to an incorrect address.


PATH PARAMS

user_id - string
The User ID. Use 'me' if you are creating withdrawal from the master account, use the user_id if creating withdrawal from the Sub-account linked to the authenticated user.

BODY PARAMS

currency - string
Currency. Allowed valued: Required. Allowed values: Currencies - qdx, usd, ngn, ghs, btc, usdt, busd, cfx, usdc, cnhc, eth, bnb, xrp, ltc, wkd, bch, doge, dash, trx, one, link, cake, xlm, axs, shib, afen, bls, fil, ada, dot, babydoge, xtz, matic, sfm, aave, wsg, ckt, floki, sol, mana, ftm, sand, slp, enj, lrc, ape, sushi, zil.

amount - string
value to be sent to the recipient.

fund_uid - string
this can be the id of your sub user, or crypto address.

transaction_note - string
notes for the recipient

narration - string
narration for the recipient

fund_uid2 - string
destination tag

network - string
Optional: Blockchain network for the transaction, here is to the supported blockchain page: https://docs.quidax.com/docs/supported-cryptocurrencies

Sample Request

curl --request POST \
     --url https://openapi.quidax.io/exchange-open-api/api/v1/users/<user_id>/withdraws \
     --header 'Authorization: Bearer s3cr3tk3y' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "currency": "btc",
  "amount": "0.0000004",
  "transaction_note": "Stay safe",
  "narration": "We love you.",
  "fund_uid": <wallet address or sub account>,
  "reference": <your_unique_reference>
}
'
const options = {
  method: 'POST',
  headers: {
    accept: 'application/json',
    'content-type': 'application/json',
    Authorization: 'Bearer s3cr3tk3y'
  },
  body: JSON.stringify({
    currency: 'btc',
    amount: '0.0000004',
    transaction_note: 'Stay safe',
    narration: 'We love you.'
  })
};

fetch('https://www.quidax.com/api/v1/users/me/withdraws', options)
  .then(response => response.json())
  .then(response => console.log(response))
  .catch(err => console.error(err));

Sample Response

{
  "status": "success",
  "message": "Successful",
  "data": {
    "id": "IT-89c82dcb3930420ab09a81572985a4ab",
    "reference": "ffff",
    "type": "internal_transfer",
    "currency": "usdt",
    "amount": "1.0000000000000000",
    "fee": "0.0000000000000000",
    "total": "1.0000000000000000",
    "txId": null,
    "narration": "We love you.",
    "status": "done",
    "reason": null,
    "wallet": {
      "id": null,
      "currency": "usdt",
      "balance": "3.453800",
      "locked": "0.0000000000",
      "staked": "0.0000000000",
      "converted_balance": "4779.368440",
      "reference_currency": "NGN",
      "is_crypto": "1",
      "created_at": "2026-02-10T11:48:38.000Z",
      "updated_at": "2026-02-23T10:53:41.000Z",
      "deposit_address": "bc1qel75acv9tdwqdx86tla6yyxagp2fvq2tntxntp",
      "destination_tag": null
    },
    "user": {
      "id": "24rhpmow",
      "sn": "Qw1os7uj7",
      "email": "[email protected]",
      "reference": null,
      "first_name": "test",
      "last_name": "tester",
      "display_name": "Adigun Efon Exchange",
      "created_at": "2026-02-09T13:22:14.000Z",
      "updated_at": "2026-02-13T10:45:42.000Z"
    },
    "recipient": {
      "type": "internal_transfer",
      "details": {
        "address": "[email protected]",
        "name": "Qb3fwf0uk",
        "destination_tag": "N/A"
      }
    },
    "transaction_note": "Internal Crypto Transfer: We love you.",
    "created_at": "Wed Feb 11 16:41:11 UTC 2026",
    "done_at": "Wed Feb 11 16:41:11 UTC 2026"
  }
}
{
  "status": "error",
  "message": "Invalid secret key.",
  "data": {
    "code": "E0001",
    "message": "Invalid secret key."
  }
}