Billing is where you define the plans your application sells: "Manage plans, features, and subscriptions." It is not your Authdog invoice — that is set per organization. This module lets Authdog issue tokens that carry a user's entitlements, so your app can gate features without maintaining its own subscription store.

Prerequisite: connect Stripe
The page states the dependency up front: plans are billed through the Stripe connection configured under Authentication → Add-ons → Stripe. Connect Stripe there first — see Authentication > Add-ons.
That single connection does three things: it charges the subscriptions defined here, it syncs seat counts for per-seat billing, and it lets Authdog stamp entitlements into access tokens.
Plans
?tab=plans — the plan catalog. Click "New plan" to create one. Empty environments read "No plans yet. Create one to start billing."
A plan carries:
- A name and identifier your app can reference
- Its Stripe price mapping
- The features (entitlements) it grants
Features are the part your application code cares about. Once a user is subscribed, their entitlements are available from the session, so a feature check is a local read rather than a round trip to Stripe.
Checkout
Authdog ships embedded Stripe Elements checkout components in the React elements package, plus REST endpoints on the identity service, so the subscribe flow can live inside your own UI. See Billing for the client-side integration.
Scope
Plans are defined per environment, so a dev environment can carry test-mode prices while prod carries live ones — the same separation Stripe itself uses for test and live keys.
Subscriptions in the current version are user-level: a subscription belongs to an individual user rather than to an organization.
Related
| Read | To learn how to |
|---|---|
| Authentication | Connect Stripe under Add-ons |
| Organizations | Where your own Authdog subscription tier lives |
| Users | See which users hold a subscription |
| Billing | Build the checkout and entitlement checks in your app |
| JWT claims | Read entitlements from the access token |