How Long Should You Wait Before Cutting Off Access? The Failed Payment Grace Period, Decided
How long should customers keep access after a failed payment? The grace-period policy that recovers revenue without burning goodwill, day by day.

The answer, then the reasoning
For most subscription SaaS: keep full access for 7-14 days after the first failed payment, then downgrade (don't delete) if recovery hasn't landed. The grace period exists because most failed payments are innocent, and innocent customers who get locked out don't retry their card — they churn angry.
That single policy sentence took me longer to arrive at than I'd like to admit. Too short a window and you punish loyal customers for their bank's bad day. Too long and you're running a charity for people who left months ago. Here's how to think it through.
Why immediate lockout is a revenue-killer
The case for instant cutoff sounds clean: they didn't pay, they don't get the product. But look at what failed payments actually are. Expired cards. Bank fraud blocks. Insufficient funds on the 28th that resolve on the 1st. SCA challenges nobody was awake to approve. The majority of first-time failures are mechanical accidents, and the customer doesn't even know yet.
Now imagine being that customer: you open the app Tuesday morning and you're locked out of your own data. No warning you noticed, no explanation that landed. Your reaction is not 'let me update my card.' It's 'what kind of company does this' — followed by a support ticket, a refund demand, or a quiet decision to never come back. You took a customer with a 5-minute card update between you and recovered revenue, and turned them into a churned ex-customer with a grudge.
Why an endless grace period is also bad
- •It trains non-payment. Customers learn that the invoice failing changes nothing, so updating the card drops to the bottom of the to-do list.
- •It hides your real churn. Accounts that are dead in spirit stay 'active' in your metrics, and your MRR dashboard lies to you.
- •It costs real money at scale. Compute, support load, and delivery costs for customers paying nothing.
The grace period is a clock, and clocks only change behavior when they visibly run out. An open-ended grace period is just free service with extra steps.
What Stripe controls vs what you control
Stripe sets the outer frame. In your subscription settings you choose how many retry attempts happen and what the subscription status does afterward — stay past_due, go unpaid, or cancel entirely. That decides how long the billing relationship technically survives on paper.
Product access is your code and nobody else's. Stripe doesn't know what 'access' means for your app. You decide whether a past_due customer sees their full dashboard, a read-only snapshot, or a paywall screen. The best setups treat these as separate dials: Stripe's schedule on one, your access policy on the other, coordinated so the pressure builds gradually instead of arriving as a cliff.
The graduated policy that works
- •Days 0-3: full access, soft communication. First recovery email goes out friendly — 'your card got declined, probably nothing, here's a link.' No product changes at all.
- •Days 4-7: full access, visible nudge. An in-app banner joins the emails: payment issue, please update. Still zero functional limits.
- •Days 8-14: limited mode. They can log in and see their data, but creating new things pauses. The banner is louder. Emails shift from friendly to direct.
- •Day 14+: downgrade or pause. The account goes to a minimal free-read state — nothing deleted, nothing destroyed — and the final 'your account is paused, everything is waiting for you' email goes out.
The principle underneath the schedule: pressure should arrive before pain does. Every step up in restriction is preceded by clear communication, so nothing ever surprises the customer. Surprised customers churn; informed customers update cards.
Notice what this schedule never does: it never deletes data, never blocks exports, and never shames. Those three lines are easy to hold at 40 customers and surprisingly tempting to cross at 4,000. Hold them anyway — the customer in day 11 of a grace period is still one card update away from being your longest-tenure account.
Adjust the dial by customer, not just by day
A flat policy is a good default, but two customers should bend it:
- •Long-tenure, high-value customers get a longer rope and a personal email. Three years of on-time payments earns more than seven days of trust. One email from the founder — 'your card's acting up, anything I can do?' — recovers these accounts at a rate no sequence matches.
- •Brand-new trial converts get a shorter rope. A card that fails on the very first invoice of a brand-new account is statistically a different animal. Tighten the window, keep the tone friendly, and don't invest weeks of grace in someone who arrived Tuesday.
The edge cases worth deciding before they happen
- •Annual plans: a failed annual renewal is a huge amount at stake and almost always worth an extended, high-touch grace period — 14 to 30 days with founder-level outreach. Losing an annual customer over a 7-day policy is an expensive own-goal.
- •Data-heavy products: if customers store real work in your app, make the post-grace state read-only rather than dark. People pay to get their data back; they don't pay to hear it's gone.
- •Regulated or contractual customers: some B2B contracts specify notice periods before service suspension. Your graceful default can conflict with your own MSA — check before the policy goes live.
- •The serial non-payer: a customer whose card fails every single month isn't in a grace situation anymore, they're in a pattern. Move them to manual review instead of restarting the clock every 30 days.
Write these decisions down somewhere. The worst grace-period outcomes come from making the call in the moment, case by case, under pressure — that's how a loyal three-year customer gets locked out at 2am by a rule nobody remembered setting.
When the grace period ends
The end of grace isn't deletion — it's the write-off decision, which deserves its own care. Pause rather than delete: keep their data intact, mark the account dormant, and leave a win-back door open. Customers return months later when the card situation sorts itself out, and the one who comes back to find their data intact re-subscribes. The one who finds a crater doesn't. (The full decision framework for that final step is in our post on when to write off a failed payment.)
If you take one implementation note from all of this: make the grace window a config value, not a hardcoded number buried in logic. You'll tune it — every business does — and the difference between editing a constant and editing logic is the difference between a five-minute experiment and a deploy you're scared of.
The takeaway
Seven to fourteen days of access, graduated pressure, communication before restriction, and a pause instead of a delete at the end. That's a grace period policy that recovers money without burning goodwill — and it fits in a single config file.
The communication half of that policy is where StayPaid earns its keep: recovery emails go out from your address, in your voice, with you approving each one, so the customer in their grace period hears from a person instead of a billing daemon. Access policy stays your code. The emails can be ours.
FAQ
How long should a grace period be after a failed payment?
For most subscription SaaS, 7-14 days of full access works well. It's long enough for retries and recovery emails to land, short enough that customers still feel urgency. Under 7 days feels punitive for innocent card failures; beyond 14 days you're training customers to ignore you.
Should I cut off access immediately when a payment fails?
Almost never. Most failed payments are innocent — expired cards, bank hiccups, insufficient funds on a bad day. Locking a paying-intent customer out of a product they love over a banking glitch converts a recoverable payment into a lost customer and a bad review.
What's the difference between a grace period and writing off a payment?
The grace period is what happens during recovery — how much access the customer keeps while you retry and email. Write-off is the end: you accept the money isn't coming and close the account. Grace period is the middle game; write-off is the resignation.
Does Stripe handle grace periods automatically?
Partially. Stripe's subscription settings control when a past_due subscription becomes unpaid or cancelled, which sets the outer bound. But what happens to product access during that window — full, limited, or read-only — is your code and your decision, not Stripe's.
Keep reading
Robert
Founder at StayPaid
Want to recover failed payments like a founder?
Start Free — First 3 recoveries