> ## 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.

# Money and idempotency

> Available balance, reserves, fees, and ext_id rules.

# Money and idempotency

## Settlement balance

Your funds live on a single USDT / TRON settlement account.

| Field               | Meaning                                                                                |
| ------------------- | -------------------------------------------------------------------------------------- |
| `ledger_balance`    | Posted balance                                                                         |
| `reserved`          | Held for in-flight operations (planned debits + pending withdrawals before plan posts) |
| `available_balance` | What you can spend now (`ledger − reserved`)                                           |
| `pending_credit`    | On-chain deposits seen but not yet posted to ledger                                    |

Create calls that need funds check **available** balance. Insufficient funds → `422` / `insufficient_balance` (document is **not** created). IMBA does not extend credit.

## Fees

Some operations return a separate `fee` (USDT). For withdrawals, `amount` is what the recipient receives; the fee is charged on top from your available balance.

Catalog prices for eSIM/gift are the USDT debit amounts you will be charged (after any agreed discount).

## Currency / network

v1 asset:

* `currency=USDT`
* `network=TRON`

Optional query synonym: `asset=USDT_TRC20`.

## `ext_id` idempotency

Every create requires your `ext_id` (unique per partner).

| Retry                          | Result                                          |
| ------------------------------ | ----------------------------------------------- |
| Same `ext_id` + same body      | Idempotent `200` / `202` with the same document |
| Same `ext_id` + different body | `409` / `ext_id_conflict`                       |

Use `GET /partner/documents/{ext_id}` to poll status. Design `ext_id` as a stable business key (order id), not a random value per retry.

## Amounts

JSON amounts are **decimal strings** (e.g. `"12.50"`), not floats.
Timestamps are UTC RFC 3339.
