List Withdraws
Retrieves recent withdrawal history for your Binance account, showing outgoing cryptocurrency transfers.
Common Properties
- Name - The custom name of the node.
- Color - The custom color of the node.
- Delay Before (sec) - Waits in seconds before executing the node.
- Delay After (sec) - Waits in seconds after executing node.
- Continue On Error - Automation will continue regardless of any error. The default value is false.
If the ContinueOnError property is true, no error is caught when the project is executed, even if a Catch node is used.
Inputs
- Client Id - The unique identifier from the Connect node (optional if using direct credentials).
- Limit - Maximum number of withdrawal records to retrieve (default: 5 if not specified or ≤ 0).
Options
- Api Key - (Optional) Binance API key credential. Use if not providing Client Id.
- Secret Key - (Optional) Binance API secret key credential. Use if not providing Client Id.
Output
- Result - An array of withdrawal record objects showing transaction details, status, and fees.
How It Works
The List Withdraws node queries Binance for your recent withdrawal transactions.
When executed, the node:
- Retrieves the Binance client (from Client Id or creates one from credentials)
- Validates the Limit input
- Queries Binance's withdrawal history service
- Returns an array of withdrawal records
Requirements
- Either a Client Id from Connect node OR API credentials in options
- Appropriate API permissions (account reading and wallet enabled)
Error Handling
The node will return specific errors in the following cases:
- ErrInternal - Failed to retrieve input values
- ErrListWithdraws - Failed to retrieve withdrawal history from Binance
- ErrSetResult - Failed to set the output result
Usage Notes
- Returns recent withdrawal transactions
- Includes withdrawals of all cryptocurrencies
- Shows withdrawal status (processing, completed, failed, rejected)
- Includes both manual and API-initiated withdrawals
- Withdrawal fees are shown separately
- Failed or rejected withdrawals are also included
Withdrawal Record Structure
Each withdrawal object typically includes:
{
"id": "abc123def456",
"amount": "0.5",
"transactionFee": "0.0005",
"coin": "BTC",
"status": 6,
"address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
"addressTag": "",
"txId": "0x1234567890abcdef...",
"applyTime": 1640000000000,
"network": "BTC",
"transferType": 0,
"info": "",
"confirmNo": 2,
"walletType": 0,
"txKey": ""
}
Withdrawal Fields
Transaction Details:
- id - Unique withdrawal ID
- txId - Blockchain transaction hash (empty if not yet broadcasted)
- coin - Cryptocurrency symbol
- network - Blockchain network used
- amount - Withdrawal amount (excluding fee)
- transactionFee - Network fee charged
Address Information:
- address - Destination address
- addressTag - Memo/tag if applicable (e.g., for XRP, XLM)
Status:
- status - Withdrawal status code:
- 0 = Email Sent
- 1 = Cancelled
- 2 = Awaiting Approval
- 3 = Rejected
- 4 = Processing
- 5 = Failure
- 6 = Completed
Confirmations:
- confirmNo - Number of network confirmations
Timestamps:
- applyTime - When withdrawal was requested (milliseconds)
Additional Info:
- info - Additional information or error message
- transferType - Internal transfer type
- walletType - Wallet type (0 = spot)
Example: List Recent Withdrawals
Scenario: Check the last 10 withdrawals from your account
Inputs:
- Client Id: (from Connect node)
- Limit:
10
Output: Array of up to 10 recent withdrawal records.
Example: Monitor Pending Withdrawals
[Timer: Every 5 minutes]
|
v
[Connect]
|
v
[List Withdraws]
| Limit: 20
v
[Filter: withdrawals where status in [2, 4]] // Pending or Processing
|
v
[For Each: pending withdrawal]
|
v
[Log: withdrawal.coin + " withdrawal pending"]
[Log: " Amount: " + withdrawal.amount]
[Log: " Address: " + withdrawal.address]
[Log: " Status: " + getStatusName(withdrawal.status)]
|
v
[If: status == 4 AND txId exists]
|
v
[Log: " TxID: " + withdrawal.txId]
[Log: " Confirmations: " + withdrawal.confirmNo]
|
v
[Disconnect]
Example: Withdrawal Notification System
[Timer: Every 3 minutes]
|
v
[Connect]
|
v
[List Withdraws: Limit 10]
|
v
[Compare: with last_check_withdrawals]
|
v
[Find: status_changed = withdrawals with status updates]
|
v
[For Each: withdrawal in status_changed]
|
v
[Send Notification]
| Title: withdrawal.coin + " Withdrawal Update"
| Message: getStatusName(withdrawal.status)
| Amount: withdrawal.amount
| Fee: withdrawal.transactionFee
| TxID: withdrawal.txId (if exists)
v
[Update: last_check_withdrawals]
|
v
[Disconnect]
Example: Calculate Total Withdrawal Fees
[Connect]
|
v
[List Withdraws: Limit 50]
|
v
[Group By: coin]
|
v
[For Each: coin, withdrawals]
|
v
[Sum: total_amount = sum of amounts]
[Sum: total_fees = sum of transactionFees]
|
v
[Display Report]
| Coin: coin
| Total Withdrawn: total_amount
| Total Fees Paid: total_fees
| Avg Fee: total_fees / withdrawals.length
v
[Disconnect]
Withdrawal Status Codes
- 0 (Email Sent) - Email confirmation sent
- 1 (Cancelled) - Withdrawal cancelled by user
- 2 (Awaiting Approval) - Waiting for approval
- 3 (Rejected) - Withdrawal rejected
- 4 (Processing) - Being processed
- 5 (Failure) - Withdrawal failed
- 6 (Completed) - Successfully completed
Status Lifecycle
Request Withdrawal
↓
Email Sent (0) → Confirm Email
↓
Awaiting Approval (2)
↓
Processing (4) → TxID generated
↓
Completed (6) → Funds sent
Alternative paths:
→ Cancelled (1) by user
→ Rejected (3) by Binance
→ Failure (5) technical issue
Use Cases
Withdrawal Tracking:
- Monitor outgoing funds
- Track withdrawal completion
- Verify successful transfers
Automation:
- Auto-notify on withdrawal status changes
- Track automated withdrawal batches
- Monitor withdrawal processing times
Accounting:
- Record outgoing transactions
- Calculate total fees paid
- Generate withdrawal reports
Customer Service:
- Verify withdrawal claims
- Check withdrawal status
- Investigate failed withdrawals
Security:
- Monitor unauthorized withdrawals
- Track suspicious activity
- Audit withdrawal history
Fee Analysis:
- Compare fees across networks
- Optimize withdrawal timing
- Track fee expenses
Analyzing Withdrawals
// Group by status
const byStatus = withdrawals.reduce((acc, w) => {
const statusName = getStatusName(w.status);
acc[statusName] = acc[statusName] || [];
acc[statusName].push(w);
return acc;
}, {});
// Calculate total fees by coin
const feesByCoin = {};
withdrawals.forEach(w => {
feesByCoin[w.coin] = (feesByCoin[w.coin] || 0) +
parseFloat(w.transactionFee);
});
// Find large withdrawals
const largeWithdrawals = withdrawals.filter(w =>
parseFloat(w.amount) > 1000 // Adjust threshold
);
// Find failed/rejected
const failed = withdrawals.filter(w =>
[3, 5].includes(w.status)
);
Status Helper Function
function getStatusName(status) {
const statuses = {
0: 'Email Sent',
1: 'Cancelled',
2: 'Awaiting Approval',
3: 'Rejected',
4: 'Processing',
5: 'Failure',
6: 'Completed'
};
return statuses[status] || 'Unknown';
}
Best Practices
- Poll withdrawals periodically to track status changes
- Store withdrawal IDs to avoid processing duplicates
- Check status before considering withdrawal complete
- Verify txId exists before tracking on blockchain
- Investigate info field for failed/rejected withdrawals
- Keep records of all withdrawal transaction IDs
- Calculate net amounts (amount - transactionFee)
- Monitor for stuck withdrawals (processing too long)
- Set up alerts for failed or rejected withdrawals
Common Patterns
Status Monitoring:
Store: previous_withdrawal_statuses
List Withdraws
Compare: current vs previous statuses
Find: status changes
Process: notifications for changes
Update: previous_withdrawal_statuses
Completion Verification:
Input: withdrawal_id
List Withdraws
Find: withdrawal by id
Check: status == 6 (completed)
Verify: txId exists
Return: completion status
Failed Withdrawal Investigation:
List Withdraws
Filter: status in [3, 5] (rejected, failed)
For each failed:
Log: withdrawal details
Log: info field (error reason)
Alert: admin for review
Blockchain Explorer Links
For completed withdrawals (with txId), construct explorer URLs:
Bitcoin (BTC):
https://blockchain.com/btc/tx/{txId}
Ethereum (ETH):
https://etherscan.io/tx/{txId}
BSC (BEP20):
https://bscscan.com/tx/{txId}
Tron (TRC20):
https://tronscan.org/#/transaction/{txId}
Understanding Fees
Withdrawal fees vary by:
- Cryptocurrency - Different coins have different fees
- Network - Same coin, different network = different fee
- Network Congestion - Some exchanges adjust fees dynamically
- Binance Discounts - BNB holders may get fee discounts
Typical Withdrawal Times
After status changes to Processing (4):
- Bitcoin: 30-60 minutes
- Ethereum: 10-30 minutes
- BSC: 5-10 minutes
- Tron: 3-5 minutes
- Times vary based on network congestion
Important Considerations
- Withdrawals may require email confirmation
- Large withdrawals may trigger additional verification
- Some withdrawals may require manual approval
- Network congestion affects processing times
- Failed withdrawals are refunded to your balance
- Withdrawal limits apply (daily, per transaction)
- Some coins may have temporary withdrawal suspension
- Always verify destination address and network
Security Tips
- Enable withdrawal whitelist if available
- Use email/SMS confirmations for withdrawals
- Monitor withdrawal history regularly
- Set up alerts for all withdrawals
- Verify addresses before withdrawing
- Double-check network selection
- Keep records of all transaction IDs
- Report suspicious withdrawals immediately
Troubleshooting Failed Withdrawals
Common reasons for failures:
- Address Invalid - Wrong format or checksum
- Network Mismatch - Wrong network selected
- Insufficient Balance - Not enough funds after fees
- Below Minimum - Amount below minimum withdrawal
- Above Maximum - Amount exceeds limit
- Suspended - Withdrawals temporarily disabled
- Security Hold - Account security restrictions
Check the info field for specific error details.
Withdrawal Fee Optimization
[Get Coin Detail: USDT]
→ Check all network fees
→ Select cheapest network
→ Verify destination supports network
→ Execute withdrawal