> For the complete documentation index, see [llms.txt](https://tri.gitbook.io/tri-doc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tri.gitbook.io/tri-doc/liquidity-pool/balance.md).

# Balance

Spending Capacity is money a client keeps inside the platform: it is added from a saved card, spent on Carbon Pool purchases, and returned when a purchase does not go through. Every movement is journalled.

**Who holds a balance.** The client itself, one of its employees, or one of its Individual Consumptions. Business accounts hold money per employee — in both purchase flows the employee pays — so a Business client has no balance of its own.

**Endpoints**

<table data-full-width="true"><thead><tr><th width="260">Endpoint</th><th>What it does</th></tr></thead><tbody><tr><td><a href="/tri-doc/liquidity-pool/balance/get-balance.md">Get Balance</a></td><td>Current balance of a holder</td></tr><tr><td><a href="/tri-doc/liquidity-pool/balance/add-balance.md">Add Balance</a></td><td>Adds money from the holder's saved card</td></tr><tr><td><a href="/tri-doc/liquidity-pool/balance/set-autofill-balance.md">Set Autofill Balance</a></td><td>Turns Autofill balance on or off for a holder</td></tr><tr><td><a href="/tri-doc/liquidity-pool/balance/get-deposit.md">Get Deposit</a></td><td>Outcome of one Add Balance attempt</td></tr><tr><td><a href="/tri-doc/liquidity-pool/balance/get-balance-transactions.md">Get Balance Transactions</a></td><td>Journal of movements, newest first</td></tr><tr><td><a href="/tri-doc/liquidity-pool/balance/balance-error-codes.md">Balance Error Codes</a></td><td>Every failure code these endpoints return</td></tr></tbody></table>

**Identifiers.** `client_id` comes from [Get Clients](/tri-doc/liquidity-pool/get-clients.md), `employee_id` from [Get Employees](/tri-doc/liquidity-pool/get-employees.md), `individual_consumption_id` from [Get Individual Consumptions](/tri-doc/liquidity-pool/get-individual-consumptions.md), and the id of a deposit from the answer to [Add Balance](/tri-doc/liquidity-pool/balance/add-balance.md).

### Conventions

These endpoints follow conventions of their own; the rest of the Liquidity Pool API is unchanged.

**The answer is the resource.** There is no `message` / `success` / `data` wrapper: a successful call returns the object itself as `application/json`, and the HTTP status carries the outcome — `200` for a read, `201` for a created deposit (with its address in the `Location` header).

**Money is a currency and a decimal string.**

```json
{ "currency": "USD", "amount": "250.00" }
```

The currency is an ISO 4217 code; the amount is a string with at most two decimals, never a JSON number. Thousands separators and exponent form are refused. In the journal the sign of the amount carries the direction: money out is negative, money in is positive.

**Time is ISO 8601 in UTC** — `2026-08-04T11:20:05Z` — both in answers and in the date filters of the journal.

**Identifiers are uuids.** A deposit and an operation in the journal are addressed by uuid; row numbers of the database are not exposed.

**Failures are problem+json.** A failed call answers `application/problem+json` with a readable `title` and `detail`, a stable `code` to branch on, and `param` when a particular field is at fault:

```json
{
    "title": "Amount is not valid",
    "status": 422,
    "detail": "amount must be a decimal string with at most 2 decimals, e.g. \"10.00\".",
    "code": "invalid_amount",
    "param": "amount.amount"
}
```

**Nothing is cached.** Every answer carries `Cache-Control: no-store`.

**Authorization** is the one used by the whole Liquidity Pool API — the `hash` parameter with your API key.
