The model
You define your pricing once, and everything else derives from it:| Object | What it is |
|---|---|
| Feature | A single capability you sell — api-calls, seats, export |
| Plan | A bundle of features with a base price and billing interval |
| Rule | How a feature behaves in a plan: flat, usage-based, or graduated pricing, plus optional credit backing |
| Customer | Your customer, keyed by your ID (customerReferenceId) — no ID sync |
| Subscription | A customer on a plan, with period tracking and proration |
| Event | One unit of usage, idempotent, carrying units, cost, and revenue |
| Entitlement | The materialized answer to “can this customer use this feature right now?” |
| Credit pool | Prepaid balance with grants, FIFO draw-down, expiry, and an append-only transaction ledger |
The integration loop
Three calls from your backend:- Check an entitlement before serving a request.
- Serve the request.
- Report a usage event after.
Next steps
- Quickstart — running with seeded data in about five minutes
- Billing lifecycle — from empty database to first revenue, every call spelled out
- Self-hosting — configuration and production notes