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

# Billing

> How sovseal bills: flat plans, fair-use ceilings, seat scaling, and Layer-A metering.

sovseal bills on **flat plans with fair-use ceilings** — not per-operation metering, and not credits. Because the architecture is zero-knowledge, every number the billing engine sees is **Layer-A metadata**: operation counts, ciphertext byte totals, and seat counts. The server never needs, requests, or holds a decryption key to produce an invoice.

<Note>
  **Pricing lives in one place.** Plans, prices, seats, quotas, and the trial/grace model are documented on [Usage & Billing](/platform/console/usage-and-billing). This page covers the billing *mechanics*.
</Note>

## What "flat with fair use" means

There is no balance to top up and no per-call charge. Each paid plan carries a **soft monthly operations ceiling** that exists to catch runaway automation, not to meter you:

| Plan       | Soft monthly ops ceiling |
| :--------- | :----------------------- |
| Solo       | 10,000                   |
| Business   | 50,000                   |
| Enterprise | Unbounded                |

Crossing a ceiling starts a conversation, not an overage invoice. **Local memory is never metered, throttled, or billed** — it runs entirely on your device.

## Per-seat team billing

Business (5 seats included) scales by seat at **\$25/month** per additional seat.

* **Automatic scaling** — when an admin grants access beyond the purchased seat limit, the billing engine triggers a Polar subscription seat update (`PATCH /subscriptions/{id}`) and the new seat is invoiced.
* **Manual adjustment** — add seats from **Plan** (`/plan`) via **Add Seat**, which updates the Polar subscription and issues a prorated invoice.
* **Webhook syncing** — seat claims (`customer_seat.claimed`) and revocations (`customer_seat.revoked`) sync back via signature-verified webhooks, keeping the database and Polar aligned.

## What the server measures

Three Layer-A dimensions, none of which require decryption:

1. **Sync operations** — count of background replicate calls against the `v2-agent-state` edge endpoint.
2. **Encrypted storage** — sum of ciphertext bytes in `public.agent_state_snapshots` and the `sovseal-rom` bucket. The server measures envelope size, never content.
3. **Seats** — active member count on Business and Enterprise.

API project sub-keys (`sov_proj_`, `sov_live_`) are **unlimited on every tier** and are not a billing dimension.

<Tip>
  **Cryptographic privacy guarantee** — usage is computed from ciphertext size and operation metadata alone. Producing your invoice never requires access to your key or your memories.
</Tip>

## Polar checkout

sovseal uses [Polar](https://polar.sh) as merchant of record for checkouts, subscriptions, seat changes, and invoices. Payment credentials never touch sovseal servers.

```mermaid theme={null}
sequenceDiagram
    participant User as User / Browser
    participant Dashboard as Dashboard UI
    participant Edge as Edge Function (Frankfurt)
    participant Polar as Polar checkout API

    User->>Dashboard: Click "Upgrade to Business"
    Dashboard->>Edge: POST /billing/create-checkout
    Edge->>Polar: Create checkout (user external ID)
    Polar-->>Edge: Checkout URL
    Edge-->>Dashboard: Return URL
    Dashboard->>User: Redirect to Polar checkout
    User->>Polar: Provide payment details
    Polar-->>Edge: Webhook subscription.created
    Note over Edge: Signature verified, plan limits updated
```

To upgrade, downgrade, or manage invoices, open **Plan** (`/plan`) in the dashboard and choose **Manage Subscription** to reach the Polar customer portal.
