# Billing & account

The platform runs on **prepaid credits in US dollars**. Every LLM call is metered against your balance; when it reaches zero, model calls stop until an administrator tops you up.

## How metering works

Each model call (agent nodes, Classify, the If/Else LLM fallback, Guardrails, RAG, the AI builder…) records its token usage and is billed as:

```text
billed = real API cost (tokens × model price) + 10% commission
```

- Prices are **USD per 1M tokens**, per model, maintained server-side (see the price list at the bottom of the Billing page).
- The billed amount is rounded **up** to the next cent — minimum 1 cent whenever tokens were consumed.
- Only LLM calls are billed. HTTP requests, transforms, emails, file generation, etc. are free.

## The Billing page

Open **Billing** in the left sidebar:

| Section | What it shows |
| --- | --- |
| **Balance** | Your current prepaid balance in dollars |
| **Usage by day** | Last 30 days of spend, as a bar chart |
| **Usage by model** | Per-model breakdown over the same window: calls, input/output tokens and billed amount |
| **Usage by workflow** | Spend per workflow over the same window (AI builder usage is grouped separately) |
| **Transactions** | The append-only ledger: top-ups, usage debits, admin adjustments, refunds — each with the balance after |
| **Model prices** | Public price list (USD / 1M tokens, input and output) and the commission rate |

## Running out of credits

- Before any LLM call, the runtime checks your balance. At **0 or below**, the run is refused with: `Insufficient credits — please top up your balance.` Non-LLM nodes are unaffected.
- A warning banner appears across the app when your balance drops **below $1**.
- **Administrators are never blocked** by the credit check.

## Top-ups

Top-ups are performed **by the administrator only** — there is no self-service payment flow. Contact your admin to add credits; the credit appears in your Transactions ledger (`topup` / `admin_adjust`).

## Account approval at signup

New accounts require **admin validation** before first login:

1. You register with email + password.
2. The account is created in a *pending approval* state — login returns `account_pending_approval` until an administrator approves it.
3. Once approved, you can sign in normally (and receive your initial credit from the admin).

## Gotchas

- A billing failure never breaks a run — metering is best-effort and fails open.
- The balance check is *before* the call, not during: a single long run that starts with a positive balance completes even if it crosses zero mid-way. The next run is then blocked.
- Transactions are append-only; usage rows keep the model, token counts, and the run that consumed them.

---

*Source: https://agentbuilder.systalink.sn/docs/billing — human documentation.*
*Other language: [/docs-md/fr/billing.md](/docs-md/fr/billing.md).*
*Machine-readable index: [/llms.txt](/llms.txt).*
