Skip to main content

Create your First Withdrawal

Overview

A withdrawal allows users to move funds out of their available balance to an external destination. Once a withdrawal is created, the specified amount is immediately deducted from the user's balance.

If the withdrawal is rejected or fails, the funds are automatically refunded back to the user's balance.

There are two types of withdrawals:

  • USD Withdrawal → Cash withdrawal processed through official physical payout points.
  • USDT Withdrawal → Transfer of funds to the user's external crypto wallet via blockchain transaction.

Endpoint

POST /withdrawal

API Reference: Create Withdrawal


Authentication

Requires a valid Bearer Token in the Authorization header.

Both store or branch users can access to this route.


Supported Currencies

CurrencyDescription
USDUS Dollar
USDTTether stablecoin

Conditional Requirements

USDT

When currency is set to USDT, the address field becomes required. This must be a valid destination wallet address for the on-chain transfer.

{
"address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"
}

Omitting address when using USDT will result in a validation error.


Request Examples

A created withdrawal starts with pending status

USD Withdrawal

curl -X POST "/api/v1/withdrawal" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <your_access_token>" \
-d '{
"amount": "500.00",
"currency": "USD"
}'

USDT Withdrawal

curl -X POST "/api/v1/withdrawal" \
-H "Content-Type: application/json" \
-d '{
"amount": "1000.50",
"currency": "USDT",
"address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"
}'

Balance Impact

EventEffect on Balance
Withdrawal createdAmount is immediately deducted from the user's available balance
Withdrawal rejectedAmount is automatically restored to the user's balance

Important Notes

  • A withdrawal with an amount higher than the user's available balance will result in an error