> ## Documentation Index
> Fetch the complete documentation index at: https://api-docs.imbawallet.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Withdrawals

> Send USDT TRC-20 from your settlement balance.

# Withdrawals

Scope: `withdraw`.

## Create withdrawal

```http theme={null}
POST https://api.imbawallet.com/partner/withdrawals
Authorization: Bearer <access_token>
Content-Type: application/json

{
  "currency": "USDT",
  "network": "TRON",
  "amount": "100.50",
  "to_address": "TExamplePartnerWithdrawAddr22222",
  "ext_id": "withdraw-20260710-001"
}
```

`amount` is the sum sent to `to_address` (**excluding** IMBA fee). Available balance must cover `amount + fee`.

### Response `202`

```json theme={null}
{
  "withdrawal_id": "019d0123-bf52-74b5-b78a-76c49333e82d",
  "ext_id": "withdraw-20260710-001",
  "currency": "USDT",
  "network": "TRON",
  "amount": "100.50",
  "fee": "1.00",
  "fee_currency": "USDT",
  "to_address": "TExamplePartnerWithdrawAddr22222",
  "status": "pending",
  "created_at": "2026-07-10T09:20:00.000Z",
  "request_id": "019d0120-7b59-7eab-b837-a7af38ea3db2"
}
```

## Status lifecycle

```
pending → processing → completed | failed | cancelled
```

Track with:

* Webhook `withdrawal.status_changed`
* `GET /partner/documents/{ext_id}`

## Errors

| Code                      | Typical HTTP |
| ------------------------- | ------------ |
| `invalid_address`         | 400 / 422    |
| `unsupported_asset`       | 400 / 422    |
| `invalid_amount`          | 400 / 422    |
| `insufficient_balance`    | 422          |
| `withdrawals_disabled`    | 403 / 503    |
| `withdraw_limit_exceeded` | 422          |
| `ext_id_conflict`         | 409          |

Daily withdraw caps may apply per tenant (`withdraw_limit_exceeded`). See [Rate limits](/guides/rate-limits).
