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

# Payment Schemes Overview

> The schemes StellarX402 supports today, when to use each, and how they slot into the verify/settle cycle.

A **scheme** is the contract between what a client authorizes and what a seller can charge. StellarX402 ships with two: `exact` and `upto`. A third, `batch`, is planned. Each scheme reuses the same verify/settle plumbing; the only thing that changes is how the amount is bound.

## The schemes at a glance

| Scheme                                                   | The client authorizes   | The seller charges               | Use when                                                                             |
| -------------------------------------------------------- | ----------------------- | -------------------------------- | ------------------------------------------------------------------------------------ |
| [`exact`](/payment-schemes/exact)                        | A fixed amount          | Exactly that amount              | The price is known before the work starts.                                           |
| [`upto`](/payment-schemes/upto)                          | A ceiling amount        | Anything up to that ceiling      | The final cost depends on the work (tokens processed, bytes returned, compute time). |
| [`batch`](/payment-schemes/batch-settlement) *(planned)* | A rolling authorization | Aggregated across multiple calls | High-frequency callers with per-call amounts too small to settle individually.       |

## How the scheme is negotiated

The seller declares which scheme applies in the `PaymentRequirements` that come back with the `402`. The client cannot switch schemes unilaterally; if it disagrees, it simply does not pay. If a seller supports multiple schemes on the same endpoint, they can return an array of `PaymentRequirements` and let the client pick.

```json theme={null}
{
  "scheme": "exact",
  "network": "stellar:testnet",
  "amount": "10000",
  "asset": { "address": "C...", "decimals": 7 },
  "payTo": "G..."
}
```

## Where next

* Sellers: [Choosing a Pricing Scheme](/guides/sellers/choosing-a-pricing-scheme).
* Buyers: [Budgets & the Upto Scheme](/guides/buyers/budgets-and-upto).
