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."
}
}
