Skip to main content
The Customer Billing primitive lets a Naive developer monetize their SaaS customers. You define plans (each mapped to an Account Kit + per-primitive usage quotas), give each tenant user a subscription, and Naive meters their primitive usage and enforces quotas automatically.
This is distinct from Billing & Credits, which is your own Naive subscription. Customer Billing is the platform side of “charge your users”: your app still owns the Stripe charge — Naive owns plan → permissions → quota → usage.

Define plans (control plane)

A plan maps a key to an Account Kit (what the tenant may do) plus quotas (how much, per period).

Subscribe a tenant

Typically driven by your Stripe webhook. assignKit (default true) also applies the plan’s Account Kit to the tenant in the same call.

Usage + quotas

Metered primitives (currently seo, aeo and email) record one usage event per successful call. When a tenant exceeds the plan’s quota for a primitive, the call returns 429 rate_limited:
Tenants without a subscription are not quota-limited — seed a free-plan subscription on signup if you want every customer metered.

REST

See the Customer Billing API reference and the billing sub-client.

Billing

Free — metering and quota enforcement carry no extra credit cost.