SaaS Billing System Design Guide: Subscriptions, Pricing, and Payment Integration

SaaS product's core business model is subscription billing. A well-designed billing system ensures recurring revenue while improving user experience and retention.

1. Pricing Model Design

1.1 Common Pricing Models

Model Example Best For
Fixed $19/month Single-purpose tools
Tiered $19/$49/$99 Feature-layered products
Usage-based $0.01/API call API services, cloud
Per-seat $10/user/month Team collaboration tools
Hybrid Base $19 + usage Products with variable usage

1.2 Pricing Best Practices

Tier Design:

Free → Limited features, attract users
Pro → Core features complete, most users
Business → Advanced features + team
Enterprise → Custom solutions

Key principles: Value anchoring, clear feature progression, meaningful free tier

2. Subscription Cycle Management

2.1 Billing Cycle Options

Cycle User Preference Business Advantage
Monthly Flexible, low barrier More users
Yearly 20-30% cheaper Stable cash flow, lower churn
Quarterly Compromise Better cash flow than monthly
Usage-based Pay for what you use Higher revenue from heavy users

2.2 Proration on Mid-Cycle Upgrades and Downgrades

Upgrading or downgrading mid-cycle is where subscription systems make the most accounting mistakes. Take a Pro user on $19/month who upgrades to Business at $49/month on day 10 of a 30-day month; two common approaches:

Approach Calculation Result
Simple top-up (difference × remaining days) ($49-$19) × 20/30 Charge $20
Refund used days + full prorated new plan $19×(1-10/30) + $49×(20/30) About $45.33

Most billing platforms (Stripe included) default to the "prorated top-up" approach: from the moment of upgrade you are billed at the new rate, with the remaining period converted by day, so the customer's invoice stays intuitive. The key principle: upgrades take effect immediately with prorated top-up; downgrades take effect next cycle — the former improves experience, the latter prevents customers from strategically downgrading right after paying. When implementing, normalize the proration factor to days rather than calendar months, or an upgrade near month-end will trigger "overcharged by a day" disputes.

3. Payment Integration

3.1 Platform Selection

Need Recommendation
Simple subscriptions, global Stripe Billing
Tax compliance needed Paddle / LemonSqueezy
China domestic Alipay + WeChat Pay
Complex billing logic Chargebee / Recurly

3.2 Stripe Billing Setup

const product = await stripe.products.create({
  name: 'Pro Plan',
  description: 'For individuals and small teams',
});

const monthlyPrice = await stripe.prices.create({
  product: product.id,
  unit_amount: 1900,
  currency: 'usd',
  recurring: { interval: 'month' },
});

3.3 Customer Portal

Stripe provides a hosted customer portal for subscription management:

const session = await stripe.billingPortal.sessions.create({
  customer: customerId,
  return_url: 'https://yourdomain.com/account',
});

3.4 Tax and Compliance: Don't Let VAT Eat Your Margin

Cross-border subscriptions often overlook taxes. If you charge value-added tax (VAT) to European customers or sales tax in some US states, yet hard-code the rate as zero, the back-tax bill will come with interest and penalties. Choosing a "merchant of record" provider such as Paddle or LemonSqueezy means they fold tax into the price and remit it on your behalf — you simply split revenue at a fixed rate. If you integrate Stripe yourself, enable the Tax API and configure rate tables per country or region. And an invoice is not just a financial document; enterprise customers need it for reimbursement, so make sure it carries the customer's legal entity name and tax ID.

4. Key Metrics

Metric Meaning Healthy Value
MRR Monthly recurring revenue Growing
Churn Rate Cancellation rate < 5%/month
LTV Customer lifetime value LTV > 3x CAC
CAC Customer acquisition cost CAC < 1/3 LTV
Net Revenue Retention Revenue change from existing > 100%

5. Upgrade/Downgrade Handling

5.1 Upgrade Strategy

  • Immediate upgrade (prorated billing) - better UX
  • Next cycle upgrade - simpler billing

5.2 Downgrade Strategy

  • Takes effect next cycle (keep current features until cycle end)

6. Dunning Process

Day 1: Payment fails → Email notification
Day 3: Auto retry → Fail → Reminder
Day 7: Auto retry → Fail → Warning
Day 14: Final retry → Fail → Freeze account
Day 30: Mark as canceled, clean up data

7. Summary

Balance UX and business needs. Start simple, increase complexity as you grow. For most SaaS startups, Stripe Billing + Customer Portal is the fastest way to launch.

Reference: Stripe Billing documentation: https://docs.stripe.com/billing; Stripe subscription lifecycle guide: https://docs.stripe.com/billing/subscriptions/overview