The failure paths
are the work.
Stripe wired for trials, upgrades, proration, cancellation, dunning and failed payments. The happy path is an afternoon; the rest is why this is its own line of work.
Taking a first payment is genuinely easy now. What is not easy is everything the subscription does afterwards: the trial that has to convert or expire cleanly, the mid-cycle upgrade that needs proration your customer would agree with, the cancellation that should keep access until the period ends, and the card that expires eighteen months in.
Failed payments are where revenue leaks quietly. Without a dunning sequence — retries on a sensible schedule, a notification the customer actually receives, a defined point at which access changes — accounts drift into a state where the product is being delivered and nothing is being collected. Nobody notices, because nothing looks broken.
Webhooks are the other reliability question. Payment events arrive asynchronously, occasionally more than once and occasionally out of order, and an integration that assumes otherwise will eventually double-charge or fail to grant access. Idempotent handling is a requirement rather than a refinement.
For EU businesses there is tax on top: VAT and IVA treatment differ by customer location and status, and invoices carry legal content requirements. This is configured deliberately rather than left at defaults.
What you get
- Subscription lifecycle: trial, active, past due, cancelled, reactivated
- Proration on upgrades and downgrades
- Dunning: retry schedule, customer notification, access change
- Idempotent webhook handling with replay safety
- EU VAT and IVA configuration, and compliant invoices
Not included
- Ongoing support retainer unless contracted separately
- Third-party licence fees
Kitchen Stocker
Multi-tenant inventory and cost control for restaurants, built and operated by us.
Read the case study