Design a Subscription Billing Platform
Last updated: October 30, 2025
Quick Overview
Design a subscription billing platform that handles recurring payments, plan changes, prorations, trials, and dunning management for SaaS products.
Intuit
October 30, 20257
3
4,644 solved
Design a subscription billing platform that handles recurring payments, plan changes, prorations, trials, and dunning management for SaaS products.
Relevant across Intuit products and for engineers working on Intuit's own subscription infrastructure. Tests understanding of billing state machines and financial accuracy.
What the Interviewer Expects
- Design a subscription lifecycle state machine covering trials, active, paused, cancelled, and expired states
- Handle plan upgrades, downgrades, and mid-cycle prorations accurately
- Implement dunning management with intelligent retry logic for failed payments
- Support multiple billing frequencies and complex pricing models (tiered, per-seat, usage-based)
- Ensure revenue recognition compliance and accurate financial reporting
Key Topics to Cover
How to Approach This
- Start by clarifying functional and non-functional requirements with the interviewer.
- Estimate the scale: QPS, storage, bandwidth. This drives your design decisions.
- Draw a high-level architecture first, then deep dive into 1-2 critical components.
- Discuss trade-offs explicitly (e.g., consistency vs availability, SQL vs NoSQL).
- Address failure scenarios, monitoring, and how the system handles 10x traffic spikes.
Possible Follow-up Questions
- How do you handle a proration when a customer upgrades mid-billing-cycle on a metered plan?
- What happens if a payment fails on the last day of a trial period?
- How would you support grandfathered pricing for existing customers?
- How do you ensure billing accuracy when customers make multiple plan changes in a single billing cycle?
Sharpen Your Skills on Codemia
Practice similar problems with our interactive workspace, get AI feedback, and track your progress.
Practice System Design ProblemsSample Answer
Subscription State Machine
Model subscriptions as a state machine with states: Created, Trial, Active, PastDue, Paused, Cancelled, Expired. Each transition has guards (e.g., tri...
Billing Engine
A billing clock runs daily, evaluating which subscriptions need invoicing based on their billing schedule. The invoice generation pipeline: calculate ...