Stripe Experts
Shopify IntegrationPlatformsIndustriesHire UsBlog
Book a Free Consultation
Stripe Experts

Trusted Stripe integration services for SaaS, marketplaces, and e-commerce.

Company

  • About
  • Blog
  • Contact

Services

  • All Services
  • Stripe Checkout
  • Stripe Connect
  • Stripe Billing

Hire Us

  • All Hiring Options
  • Hire a Stripe Expert
  • Hire a Developer
  • Hire a Stripe Consultant
  • Migrate to Stripe

Industries

  • SaaS
  • Marketplace
  • Healthcare
  • Fintech

Legal

  • Privacy Policy
  • Terms of Service

© 2026 Stripe Experts. All rights reserved.

Not affiliated with Stripe, Inc. Independent Stripe integration partner.

Powered by mzkzeeshan

bussiness@mzkzeeshan.com

  1. Home
  2. Blog
  3. Stripe Architecture
  4. SaaS Subscription Architecture on Stripe: What to Model Where
Stripe Architecture

SaaS Subscription Architecture on Stripe: What to Model Where

The boundary between Stripe's billing state and your app's entitlement state is the whole design.

Z

Zeeshan

Founder · Published Aug 14, 2026

Every SaaS billing system eventually answers two questions: what is this account being charged, and what is it allowed to do. Stripe should own the first. Your application must own the second. Most billing pain traces back to blurring that line.

Entitlement Is Not Subscription Status

A subscription can be past_due while the account should still have access, because Stripe is mid-retry and the customer has not actually churned. It can be active while a specific feature stays locked, because that feature is an add-on. Map Stripe status onto an entitlement decision explicitly: do not treat them as the same field.

  • active or trialing: full access
  • past_due: keep access during the dunning window, show an in-app banner
  • canceled: access until current_period_end, then revoke
  • incomplete. Never granted access in the first place

Plan Changes Are a Proration Decision

Upgrades and downgrades are trivial API calls and non-trivial business decisions. Stripe will happily prorate mid-cycle, credit the unused portion, and invoice the difference immediately, or defer everything to the next cycle. Both are correct; they are just different products.

Decide your proration policy before you write the upgrade endpoint. Retrofitting it means reissuing invoices for customers who already paid under the old behavior.

Where Usage-Based Pricing Changes the Shape

Metered billing inverts the flow. The amount is unknown until the period closes, which means your app is the source of truth for usage and must report it to Stripe reliably. That reporting path needs the same care as a payment path: retries, idempotency, and a reconciliation job that catches drift.

  • Report usage idempotently: a retried report must not double-count
  • Reconcile your own usage ledger against Stripe's totals before the period closes, not after the invoice is issued
  • Give customers in-app visibility of accruing usage; a surprise invoice is a support ticket and a churn risk

Let the Customer Portal Absorb the Rest

Card updates, plan changes, invoice history, and cancellation are the four highest-volume billing support categories, and Stripe's Customer Portal handles all of them as configuration rather than code. Build custom billing UI only for what the Portal genuinely cannot express: usually enterprise tiers and usage dashboards.

#saas#billing#customer-portal#usage-billing

Stripe insights, monthly

One email a month, no spam, unsubscribe anytime.

No spam, unsubscribe anytime.

On This Page

  • Entitlement Is Not Subscription Status
  • Plan Changes Are a Proration Decision
  • Where Usage-Based Pricing Changes the Shape
  • Let the Customer Portal Absorb the Rest

Related Services

Stripe Billing

Full Stripe Billing implementation: plans, upgrades, dunning, all handled.

Learn more

Customer Portal

A branded, self-serve portal that cuts support tickets.

Learn more

Usage Billing

Accurate, auditable usage-based billing on Stripe.

Learn more

Recurring Payments

Robust, idempotent recurring-payment infrastructure on Stripe.

Learn more

Related Reading

Stripe Architecture

Architecting a Multi-Sided Marketplace on Stripe Connect

The five architectural decisions that determine whether your marketplace payments scale cleanly.

Mar 9, 2026Read
Stripe Tutorials

Subscriptions in Django with Stripe Billing

Let Stripe own the billing state and Django own the entitlement. Mixing the two is where it goes wrong.

Aug 10, 2026Read
Stripe Guides

Stripe Billing: How Proration Actually Works

Proration is where most custom billing bugs live. Here's the mental model that actually holds up.

Mar 30, 2026Read