Billing Fresh
Stripe Billing lets you create and manage subscriptions, send invoices, and handle recurring revenue. Use the Billing API to build any recurring payment model.
In this section
| Page | Description |
|---|---|
| Billing APIs | How Billing API objects work together |
| Quickstart | Prebuilt subscription page with Checkout |
| Subscription Design | Choose pricing models, checkout interfaces, and billing timing |
| Pricing Models | Flat rate, per-seat, tiered, and usage-based pricing |
| Coupons & Promotions | Discounts and promotion codes for subscriptions |
| Modify Subscriptions | Change, pause, cancel, and update active subscriptions |
| Cancel Subscriptions | Cancel immediately, at period end, or on a schedule |
| Billing Cycle | Set and change billing renewal dates |
| Usage-Based Billing | Meter events and pay-as-you-go pricing |
| Revenue Recovery | Smart Retries, dunning emails, and automatic card updates |
| Pricing Table | Embeddable pricing table component |
| SaaS Integration | Full SaaS integration guide |
Core billing flow
When you create a subscription, Stripe automatically:
- Creates an Invoice at each billing cycle
- Attaches a PaymentIntent to the Invoice
- Charges the customer's saved payment method
- Sends receipt and manages the billing lifecycle
Key Billing API objects
| Object | Purpose |
|---|---|
| Product | What you sell |
| Price | How much and how often to charge |
| Customer | Who you charge |
| Subscription | Scheduled recurring purchase |
| Invoice | Statement of amounts owed |
| PaymentIntent | Tracks payment collection |
Subscription webhook events
| Event | When it fires |
|---|---|
customer.subscription.created | Subscription created |
customer.subscription.updated | Subscription changed (price, quantity, status) |
customer.subscription.deleted | Subscription canceled |
customer.subscription.trial_will_end | 3 days before trial ends |
invoice.payment_succeeded | Invoice paid |
invoice.payment_failed | Invoice payment failed |
entitlements.active_entitlement_summary.updated | Feature access changed |