The card that bounced
Your revenue dropped 15% this month, but nobody cancelled. In , a row of subscriptions has quietly ended.
This answers: What happens when a Stripe renewal payment fails? No coding needed. 3 quick decisions.
- Payments and webhooks
- Keeping it running
Checking your access…
What happens when a Stripe renewal payment fails?
marks the invoice failed, sets the subscription to past_due and retries on a schedule. If no retry succeeds, the subscription is cancelled or marked unpaid, depending on your settings. Customers who were never told often lose access without deciding to leave. Email them, show an in-app banner with a card update link, and keep access during retries.
Breaks at Your server: Failed payment never shown to the customer
Why AI tools write this bug
AI-built billing usually handles the happy path, checkout and cancel, and skips invoice.payment_failed entirely.
How to fix it
- Handle invoice.payment_failed, invoice.paid and subscription updates.
- Turn on 's failed-payment emails and Smart Retries.
- Show a banner with a billing portal link while past_due.
- Remove access only when the subscription ends.
Check your own app
Paste this into Lovable, Cursor or Claude Code:
Without changing anything, list the Stripe webhook events this project handles and what each does to the user's access. What happens when a renewal payment fails, while the subscription is past_due, and when it is deleted? Does the user see any warning or a way to update their card?
Common questions
- How long should the grace period be?
- Usually as long as Stripe's retry schedule, often one to three weeks. Make it a deliberate choice and tell customers.