Skip to main content
POST
/
account
/
withdraw
Request Withdrawal
curl --request POST \
  --url https://api.fyatu.com/api/v3/account/withdraw \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "amount": 100
}'
{
  "success": true,
  "status": 200,
  "message": "Withdrawal request submitted successfully. Processing can take up to 24 hours.",
  "data": {
    "withdrawalId": "WD1A2B3C4D5E6F7G8H",
    "amount": 100,
    "fee": 2,
    "totalAmount": 102,
    "currency": "USDT",
    "address": "TYourTronAddressHere1234567890123",
    "network": "TRON",
    "status": "PENDING",
    "estimatedCompletion": "2026-01-06T10:30:00+00:00",
    "balance": {
      "available": 898,
      "hold": 102,
      "total": 1000
    }
  },
  "meta": {
    "requestId": "req_abc123def456",
    "timestamp": "2026-01-05T10:30:00+00:00"
  }
}

Overview

Request a withdrawal to your registered withdrawal address. The withdrawal currency (USDT or USDC) and network are determined by your registered withdrawal address. The funds (amount + fee) are moved from your available balance to a hold balance pending confirmation, which can take up to 24 hours.

Supported Currencies & Networks

Withdrawals support USDT and USDC on multiple networks:
CurrencyNetworks
USDTTRON, ETH, BSC, Polygon, Arbitrum, Avalanche
USDCTRON, ETH, BSC, Polygon, Arbitrum, Avalanche
The currency and network are set when you register your withdrawal address.

Prerequisites

Before requesting a withdrawal, you must:
  1. Register a withdrawal address via POST /account/withdrawal-address (specify currency and network)
  2. Have your withdrawal address verified (automatic for valid addresses)
  3. Have sufficient available balance to cover amount + withdrawal fee

Request Body

FieldTypeRequiredDescription
amountnumberYesAmount to withdraw in USDT (before fee)

How It Works

  1. Validation: System validates your withdrawal address is registered and verified
  2. Fee Calculation: Withdrawal fee is calculated based on your business fee configuration
  3. Balance Check: Ensures available balance >= amount + fee
  4. Limit Check: Validates against daily and monthly withdrawal limits
  5. Hold Funds: Moves total amount (amount + fee) from available balance to hold balance
  6. Create Transaction: Creates a PENDING withdrawal transaction record

Withdrawal Statuses

StatusDescription
PENDINGWithdrawal request submitted, awaiting processing
PROCESSINGWithdrawal is being processed on the blockchain
COMPLETEDWithdrawal completed successfully, funds sent
FAILEDWithdrawal failed, funds returned to available balance

Example Usage

const response = await fetch('https://api.fyatu.com/api/v3/account/withdraw', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': `Bearer ${accessToken}`
  },
  body: JSON.stringify({
    amount: 100.00
  })
});

const { data } = await response.json();

console.log(`Withdrawal ID: ${data.withdrawalId}`);
console.log(`Amount: ${data.amount} ${data.currency}`);
console.log(`Fee: ${data.fee}`);
console.log(`Total Deducted: ${data.totalAmount}`);
console.log(`To Address: ${data.address} (${data.network})`);
console.log(`Status: ${data.status}`);
console.log(`Est. Completion: ${data.estimatedCompletion}`);

Error Responses

Error CodeDescription
WITHDRAWAL_ADDRESS_MISSINGNo withdrawal address registered
WITHDRAWAL_ADDRESS_UNVERIFIEDWithdrawal address not yet verified
INSUFFICIENT_BALANCENot enough available balance
WITHDRAWAL_LIMIT_EXCEEDEDDaily or monthly withdrawal limit exceeded
WALLET_INACTIVEWallet is suspended or inactive

Authorizations

Authorization
string
header
required

JWT access token obtained from /auth/token

Body

application/json
amount
number
required

Amount to withdraw in USDT (before fee)

Required range: x >= 0.01
Example:

100

Response

Withdrawal request submitted successfully

success
boolean
Example:

true

status
integer
Example:

200

message
string
data
object
meta
object