Learn
How to Handle Delinquent Subscribers in Stripe
A delinquent subscriber is a customer whose payment has failed and whose subscription is in jeopardy. How you handle delinquency determines whether the customer returns to active status or becomes a permanent churn statistic. This guide covers the full delinquency lifecycle: detection, communication, grace periods, and win-back strategies.
Detecting Delinquency in Stripe
Stripe tracks delinquency at both the customer level and the subscription level. Understanding how these signals work helps you catch delinquent subscribers before they churn.
Customer-level delinquency: Stripe's Customer object includes a `delinquent` boolean field. This is set to true when the customer's latest invoice is past due — meaning a payment attempt failed and the invoice is not yet paid, voided, or marked uncollectible. You can query your customer list filtering by `delinquent: true` to get a snapshot of all customers with outstanding payment issues.
However, the customer-level `delinquent` flag has a timing nuance. It is not set immediately when a payment fails. Stripe sets it when the invoice transitions to past_due, which depends on your billing settings. If you have Smart Retries enabled, the first retry might happen before the invoice is marked past_due. In practice, the delinquent flag usually appears within 24-48 hours of the first failure.
Subscription-level status: The subscription's `status` field provides more granular information. A subscription moves from 'active' to 'past_due' when a payment fails. It stays in 'past_due' during your grace period. After the grace period expires (based on your retry settings and terminal action), it moves to either 'canceled' or 'unpaid' depending on your configuration.
For recovery purposes, you want to act on the subscription status transition, not just the customer delinquent flag. Listen for the `customer.subscription.updated` webhook and check for status changes from 'active' to 'past_due.' This gives you the most timely signal.
Building a delinquent subscriber dashboard: For operational visibility, create a dashboard or scheduled report that shows all currently past_due subscriptions with key context: customer email, plan type, MRR contribution, decline code, number of retry attempts, and days since first failure. This allows your team to prioritize outreach by revenue impact and intervene personally for high-value accounts.
One metric worth tracking: your delinquency ratio — the percentage of active subscriptions that are currently past_due at any given time. Healthy SaaS businesses keep this below 2-3%. If it is above 5%, you have either a systemic payment problem or a recovery gap that needs attention.
Stripe API query for delinquent customers:
``` customers = stripe.customers.list(delinquent=True, limit=100) for customer in customers: subscriptions = stripe.subscriptions.list(customer=customer.id, status='past_due') // Build your delinquent subscriber report ```
Communication Strategy: From Detection to Recovery
Your communication strategy for delinquent subscribers should be a structured sequence that escalates in urgency while maintaining a respectful, helpful tone. The goal is to recover the payment without damaging the customer relationship.
Day 0 (Payment failure detected): No customer communication yet. Let your retry system handle the first attempt. If the decline code is a hard decline (expired card, stolen card), skip to Day 1 communication immediately.
Day 1 (After first retry fails or immediately for hard declines): Send a soft notification email. Keep it casual and blame-free. 'Hey [Name], your latest payment for [Product] did not go through. Here is a quick link to update your payment method: [link]. Your account is still fully active.' This email recovers 15-25% of delinquent subscribers on its own.
Day 3-4 (After second retry): Send a reminder email. Slightly more informative but still friendly. Mention a specific benefit they are getting from the product. 'You have [X projects / Y team members / Z data] in your [Product] account. Just want to make sure you do not lose access — update your payment here: [link].' This email recovers another 10-15%.
Day 7 (Mid-grace period): This is the escalation point. Introduce a soft deadline. 'Your [Product] account will be paused on [date] if we cannot process a payment. Update your card here: [link].' If you have an in-app notification system, add a persistent banner at this stage. Combined, the Day 7 email and in-app prompt recover another 8-12%.
Day 10-12 (Approaching grace period end): Final notice. Direct and clear, but not threatening. 'Last reminder: your [Product] account will be paused tomorrow unless your payment is updated. [link].' For high-value customers ($200+/month), consider a personal email from the customer success team or founder. Personal outreach at this stage recovers 5-15% of remaining delinquent subscribers.
Day 14 (Grace period end): If the payment is not recovered, the subscription transitions to its terminal state (canceled, unpaid, or paused — depending on your Stripe configuration). Send a final email acknowledging the suspension and providing a clear reactivation path.
The total recovery rate across this sequence, combined with automatic retries, should be 50-70% of delinquent subscribers. The remaining 30-50% move into the win-back phase, which has much lower recovery rates (5-15%).
Designing Effective Grace Periods
Your grace period is the window between the first failed payment and the terminal subscription action (cancel, pause, or mark as unpaid). The length and structure of this window directly impacts your recovery rate.
Determining the right duration requires balancing two competing interests. Longer grace periods give you more time to recover payments, but they also mean providing free service to customers who may never pay. Shorter grace periods limit free service but cut off recovery attempts prematurely.
The data suggests three tiers based on your ARPU:
Low ARPU ($10-30/month): 7-10 day grace period. The economics of providing 3-4 weeks of free service for a $15/month subscription do not justify the marginal recovery. A 7-10 day window captures 70-80% of all recoverable payments while limiting free service.
Mid ARPU ($30-100/month): 14 day grace period. The sweet spot for most SaaS businesses. Two weeks allows for 3-4 retries, a full email sequence, and customer response time without excessive free service.
High ARPU ($100+/month): 21-30 day grace period. The revenue at stake justifies a longer recovery window. Each recovered $200/month customer over a 12-month LTV is worth $2,400, making 3-4 weeks of free service during recovery a reasonable cost.
Structuring access during the grace period: There are several approaches, each with trade-offs.
Full access throughout: Least disruptive to the customer experience. No artificial urgency. Best for products where data loss or workflow disruption would cause the customer to churn even after recovery. Downside: no pressure to update quickly.
Gradual degradation: Full access for the first half of the grace period, then restricted access (read-only, limited features, or reduced usage limits) for the second half. Creates urgency without immediate disruption. Works well for collaborative tools where the customer needs access to export data.
Immediate restriction: Access is restricted as soon as the subscription enters past_due. Most aggressive approach. Creates strong urgency but risks losing customers who are frustrated by the restriction and cancel instead of updating. Best for low-ARPU products where the free service cost is a concern.
Grace period best practice: Whatever duration and access model you choose, communicate it clearly in your terms of service and in your recovery emails. Customers should know exactly when their access will change and what they need to do to prevent it. Surprises breed resentment, even when the surprise is 'we gave you free service for two weeks.'
Win-Back Sequences for Lapsed Subscribers
When a delinquent subscriber's grace period expires and the subscription is canceled or paused, you move from payment recovery to win-back. This is a fundamentally different challenge with different tactics and much lower success rates.
The win-back window: The first 30 days after lapse are your primary win-back opportunity. Recovery probability declines sharply: 10-15% in the first week, 5-8% in weeks 2-3, and 2-4% after month 1. After 90 days, win-back rates are essentially zero for involuntary churn — the customer has found alternatives or forgotten about your product.
Win-back email 1 (Day 1 after lapse): Acknowledge the suspension and provide a one-click reactivation link. Keep it simple. 'Your [Product] account has been paused because we could not process your payment. Everything is still saved — just update your payment method to reactivate: [link].' The word 'paused' is critical — it implies temporary, reversible, and easy.
Win-back email 2 (Day 7 after lapse): Appeal to the investment they have made. 'You have [X months / Y projects / Z data] in [Product]. We are keeping everything safe, but we would hate for you to lose your setup. Reactivate in 30 seconds: [link].' Specific numbers about their usage create a sense of investment that motivates action.
Win-back email 3 (Day 14-21 after lapse): Consider offering an incentive. A free month, a discounted rate for 3 months, or a plan upgrade can motivate customers who are on the fence. 'We would love to have you back. Here is a free month of [Product] on us — just update your payment method to claim it: [link].' Incentives can recover an additional 3-5% of lapsed subscribers.
Win-back email 4 (Day 30 after lapse): Final attempt. 'This is our last email about your [Product] account. If you would like to reactivate, here is the link: [link]. If not, we understand — your data will be available for [X days] if you change your mind.'
Data retention during the win-back period is a critical decision. If you delete the customer's data immediately upon lapse, you lose your strongest win-back lever (the customer's investment in the product). If you retain data indefinitely, you incur storage costs and potential privacy compliance issues. A 90-day data retention period after lapse is a reasonable middle ground: long enough for win-back, short enough for compliance.
Reactivation experience: When a lapsed subscriber clicks a reactivation link, the experience should be frictionless. Pre-fill everything you can. Show them their dashboard immediately after payment update, so they feel the value instantly. Do not make them re-enter profile information, reconfigure settings, or re-invite team members. The transition from lapsed to active should feel like nothing happened.
How Revive Automates the Entire Delinquency Workflow
Managing delinquent subscribers manually means monitoring Stripe for status changes, sending timed emails, coordinating retries, tracking grace periods, and running win-back campaigns. Each piece requires code, infrastructure, and ongoing maintenance. Most SaaS teams either build a partial solution or do not address delinquency systematically at all.
Revive automates the complete workflow. From the moment a subscription enters past_due to the final win-back attempt after lapse, Revive manages every step.
When a payment fails, Revive reads the decline code and routes the subscription through the optimal recovery path. Smart retries fire at data-backed intervals. Branded recovery emails send at the right time, coordinated with retries so customers never receive conflicting messages. In-app banner code is optional but available for deeper integration.
During the grace period, Revive escalates communication automatically. First soft notification. Then value-focused reminder. Then soft deadline. Each email is branded with your company identity and includes a one-click payment update link.
If the grace period expires, Revive transitions the subscriber into a win-back sequence with appropriate timing and messaging. The entire lifecycle — from first failure to final win-back attempt — runs on autopilot.
The result: 30-60% of delinquent subscribers recovered before lapse, and an additional 5-15% recovered through win-back. All without your team writing a single line of recovery code. Connect Stripe at [/api/connect](/api/connect) and Revive starts managing your delinquent subscribers immediately.
Key Takeaways
- Stripe's customer.delinquent flag and subscription past_due status are your primary detection signals
- A structured 4-email sequence over 14 days recovers 50-70% of delinquent subscribers when combined with retries
- Grace period length should scale with ARPU: 7-10 days for low ARPU, 14 days for mid, 21-30 for high
- Win-back recovery drops to 5-8% after the first week post-lapse — front-load your efforts
- Use the word 'paused' instead of 'canceled' in lapse communications to imply easy reactivation
- Retain customer data for 90 days after lapse to preserve your strongest win-back lever
- Personal outreach from customer success for high-value accounts recovers 5-15% that automated emails miss
Automate Your Payment Recovery
Revive uses everything in this guide — smart retries, decline-code routing, and branded recovery emails — on autopilot. Connect Stripe in 30 seconds.