End-to-end billing
The billing module stores plans in PostgreSQL, syncs Stripe price IDs, and exposes checkout + portal flows in the customer app.
What's included
- Plan catalog with monthly/annual intervals
- Stripe Checkout for new subscriptions
- Billing portal for payment methods and invoices
- Webhooks in service to sync subscription state
Website integration
The marketing site fetches plans from service/website/plans with fallback JSON — pricing pages stay in sync with your database.
Setup
- Create products and prices in Stripe.
- Seed plan rows with matching price IDs.
- Configure webhook endpoint in Stripe dashboard pointing to service.
Upgrade paths
Customers upgrade, downgrade, or cancel via service APIs — changes propagate to Stripe and Hasura-backed subscription records.