> For the complete documentation index, see [llms.txt](https://docs.loomgate.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.loomgate.io/en/concepts/balance.md).

# Balance and unlock times

Available balance, pending balance and when funds are unlocked.

Loomgate keeps a balance for your account in each currency. The balance only changes through ledger entries: collected payments, fees, refunds, refund fees and adjustments. Entries are never edited or deleted.

| Part              | Meaning                                                              |
| ----------------- | -------------------------------------------------------------------- |
| `available`       | Funds that are past their unlock time                                |
| `pending`         | Funds of unlock steps whose time has not come yet                    |
| `pending_unlocks` | The pending funds, split by currency and unlock time, earliest first |

The balance can be **negative**, for example when a refund fee or an adjustment is larger than your available balance. Read your balance with the [Balance API](/en/api-reference/balance.md) or see it in the **Tổng quan** (Overview) section of the dashboard.

## Unlock schedule

What a succeeded payment brings you, that is the total the buyer paid (`amount_total`) less the processing and bank fees, is unlocked in **steps** "after N days, X %", for example 80 % after 14 days, then 20 % after 30 days. Loomgate sets the steps of your account; see them on the **Phí** (Fees) page of the dashboard, section *Lịch mở khóa tiền* (unlock schedule).

When a payment succeeds, the steps in force for your account are copied onto the payment, in its `unlock_schedule` field, and never change afterwards: a later change of the schedule only applies to payments that succeed after it. Each step unlocks at:

1. the time the payment succeeded,
2. plus the step's days (calendar days of 24 hours),
3. rounded up to the next **:00 or :30**.

Each step's part is its cumulative share, rounded once; the last step takes what remains, so the steps add up to exactly what the payment brings you. For example, a 100.00 USD payment where you pay 2.90 % + 0.30 USD in fees brings you 96.80 USD: 77.44 USD unlocks after 14 days and 19.36 USD after 30 days.

Each element of `unlock_schedule`:

| Field          | Meaning                                                                                               |
| -------------- | ----------------------------------------------------------------------------------------------------- |
| `step`         | The step number, from 1                                                                               |
| `days`         | Days after the payment succeeded (`null` for payments that succeeded before unlock schedules existed) |
| `percent_bps`  | The step's share, in basis points (8000 = 80 %)                                                       |
| `available_at` | When the step unlocks (unix seconds)                                                                  |
| `amount`       | The step's part                                                                                       |
| `deducted`     | What refunds (with their refund fees) took from the step                                              |
| `remaining`    | `amount` − `deducted`                                                                                 |
| `rescheduled`  | `true` when Loomgate changed the step's unlock time                                                   |

`unlock_schedule` is empty until the payment succeeds. From a step's unlock time, its funds move to `available` (a few seconds after that time) and, when something remains in the step, Loomgate sends the [`unlock_step.available`](/en/webhooks/webhook-events.md) webhook.

## Refunds before the unlock time

A refund, then its refund fee, is taken from the payment's still-locked steps, the nearest unlock time first (the step's `deducted` grows). What no locked step holds is deducted from `available` at once. See [Refunds](/en/concepts/refunds.md).

## Adjustments

Loomgate may record an adjustment (`adjustment`, id `adj_…`) on your balance, for example a negative amount when a buyer disputes a payment with their bank. An adjustment takes effect immediately in `available` and comes with an `adjustment.created` webhook:

```json
{
  "id": "adj_7Tn2KqL9WmX4cV8bR1sD",
  "object": "adjustment",
  "currency": "usd",
  "amount": -1500,
  "reason": "Chargeback for order 1042",
  "payment_intent": "lg_pi_4Qx9ZcM2LwT8rKv1bN3a",
  "created": 1790000000
}
```

`payment_intent` is `null` when the adjustment is not tied to a payment.

## Payouts

The API only lets you view your balance. Loomgate pays out your available balance to you outside the API.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.loomgate.io/en/concepts/balance.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
