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
| Currency | Description |
|---|---|
USD | US Dollar |
USDT | Tether 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
addresswhen usingUSDTwill result in a validation error.
Request Examples
A created withdrawal starts with
pendingstatus
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
| Event | Effect on Balance |
|---|---|
| Withdrawal created | Amount is immediately deducted from the user's available balance |
| Withdrawal rejected | Amount 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