Skip to content
Pixeltree

Field notes

Subscription Dunning Recovery Flow: The DTC Playbook

November 24, 2025

Subscription Dunning Recovery Flow: The DTC Playbook

Involuntary churn is the quietest hole in a DTC subscription P&L

Subscription brands spend months planning voluntary churn mechanics (skip, swap, pause, save offers) and then lose a substantial share of revenue to card expirations and soft declines that nobody remembers to address. The fix is not complex, but it is operational. A dunning recovery flow is 80 percent process and 20 percent creative.

This guide walks through the flow we build for subscription clients, the retry logic behind it, and the measurement that separates working dunning from the theater of sending three "your payment failed" emails nobody opens.

TL;DR ▸ Smart retry logic based on decline reason beats time-based retries. ▸ Lead with the payment update CTA, not a save offer. Most failures are not intent. ▸ Sequence email, SMS, and in-app messages over 7 to 14 days. ▸ Measure recovery rate on the 30-day window, not just immediate.

Why failed payments happen

Before designing the flow, understand what you are recovering from. The distribution varies by brand but usually looks like this:

CauseShareTypical fix
Card expired30-40%Customer updates payment
Insufficient funds15-20%Retry in 2-3 days
Issuer declined (fraud rules)10-15%Customer contacts issuer
Lost or stolen card10-15%Customer updates payment
Address or CVV mismatch5-10%Customer re-enters details
Account closed5-10%Unrecoverable, churn
Intentional cancellation5-10%Save offer appropriate

The implication: roughly 80 percent of failed payments are recoverable with nothing more than a well-timed prompt for the customer to update their card. The flow is essentially a set of nudges to that action.

The retry schedule

Time-based retries with no logic behind them waste opportunities. A schedule that works for most DTC subscription brands:

Retry 1: 1 day after initial failure. Catches transient declines. ▸ Retry 2: 3 days after retry 1. Catches insufficient funds cases. ▸ Retry 3: 5 days after retry 2. Catches slower customer responses. ▸ Retry 4: 7 days after retry 3. Final attempt before subscription pause.

Your billing platform should allow retry customization based on decline reason. Expired card retries are useless. Insufficient funds retries work. Configure the retry logic to match.

After retry 4 fails, pause rather than cancel. A paused subscription preserves the relationship and gives the winback flow something to work with.

The communication sequence

Customer messaging runs in parallel with the retry schedule. The rule is that every retry is preceded by a communication, not followed by one. The customer should have a chance to act before the next card attempt.

Day 0 (initial failure): Email. Subject: "Your [brand] payment needs an update". Body: identify the issue in neutral language, offer a one-click update link, explain what happens next.

Day 1 (pre-retry 1): No send. The automatic retry happens.

Day 2 (post-retry 1 failure): Email plus in-app banner. Escalate tone slightly. Mention that the next order is scheduled for [date] and the card needs updating by then.

Day 4 (pre-retry 2): SMS, if consent is in place. Short, specific. "Heads up, your [brand] card needs an update so your next order can ship. Fix here: [link]".

Day 7 (post-retry 2 failure): Email. Start mentioning that the subscription will pause if not resolved. Link directly to the update card page.

Day 10 (post-retry 3 failure): SMS plus email. Final-attempt messaging. Offer direct support contact.

Day 14 (post-retry 4 failure): Email. Notify subscription has been paused. Explain how to reactivate.

Each message has exactly one CTA: update payment. No cross-sell. No save offer. No "check out what's new". The job of the flow is to fix the card.

Copy patterns that recover payments

Dunning copy sits at a tricky intersection: the customer needs to feel urgency but not alarm, responsibility but not blame. A few patterns that work:

Lead with the practical: "Your next order is scheduled for March 12. The card on file needs updating so we can send it." ▸ Avoid guilt language: "You haven't paid" reads as hostile. "We couldn't process your payment" is neutral. ▸ One action, visible above the fold: the update payment button should be the first thing visible, not buried below the explanation. ▸ Include the subscription details: "Your subscription to [product] at [frequency] is affected". Generic messages feel like phishing. ▸ Brand-consistent voice: dunning is not the moment to go formal. Stay in the brand voice.

Our subscription development service builds these flows as part of the broader subscription program because dunning copy is tightly coupled to the subscription experience.

In-app and header messaging

Customers who log into their account dashboard during a failed payment situation should see a clear banner. Most subscription apps (Recharge, Bold, Stay, Skio) support custom banners through their customer portal.

The banner should:

▸ Appear at the top of every page of the customer portal. ▸ Link directly to the update payment method screen, not a general settings page. ▸ Stay visible until the payment is resolved or the subscription is canceled. ▸ Use neutral language, not red-alarm styling that panics the customer.

SMS integration

SMS tends to outperform email on payment-update actions because the recipient is more likely to act on the lock screen than in the inbox. A few rules:

▸ Only send if the subscriber has active marketing SMS consent OR if the message qualifies as transactional under your consent language. ▸ Use transactional routing if possible. Payment failures are arguably operational, but check with your platform and counsel. ▸ Keep the message under 160 characters. Include the brand, the issue, and the link. ▸ Respect quiet hours even for payment recovery unless the urgency is real (e.g., shipment in 24 hours).

Our SMS compliance 10DLC guide covers the consent and routing specifics.

The RECOVER framework

Run every dunning flow change through RECOVER:

Retry logic keyed to decline reason. ▸ Every retry preceded by communication, not followed. ▸ CTA is payment update, singular. ▸ One-click link to the update page, not the dashboard. ▸ Voice matches brand, not a generic billing system. ▸ Exit to pause, not cancel. ▸ Reinstatement flow ready for when customers come back.

Measurement

The metrics that matter:

MetricTargetWhy
Recovery rate 30-day40-60%Core flow effectiveness
Average days to recoveryunder 7Speed of customer response
Involuntary churn sharedeclining month over monthStructural improvement signal
Second-retry recovery ratecaptured separatelyTells you if early retries are working
Reinstatement rate from pause10-20%Tests the pause-to-paid path

Compare month-over-month and by product category. Different products have different recovery rates because different customer profiles have different urgency.

Reinstatement from pause

Customers whose subscriptions pause after dunning failure are not all lost. A reinstatement flow that reaches out 14 and 45 days after pause can recover a meaningful share. Messaging should be soft, not urgent. Remind them the subscription is there, make restart one click, do not pitch a new offer.

This connects to the broader subscription swap before skip approach where the goal is to keep subscribers subscribed through friction rather than force a cancellation decision.

Adjacent flows

Dunning does not live alone. It coordinates with:

▸ The Klaviyo replenishment flow setup for one-time buyers who are good candidates for subscription. ▸ The post-purchase experience for repeat buyers that shapes the overall subscription relationship. ▸ The broader customer experience service that handles refund, pause, and escalation from failed payments. ▸ For brands evaluating subscription platforms, the Recharge alternatives comparison.

What to do this week

▸ Pull the last 90 days of failed subscription charges and categorize by decline reason. ▸ Configure retry logic based on decline reason if the platform supports it. ▸ Audit the existing dunning emails. Remove anything that is not a direct payment-update CTA. ▸ Add SMS to the sequence if consent is in place, sending on days 4 and 10. ▸ Enable the account dashboard banner that appears for customers with active failed payments. ▸ Switch from cancel-on-final-failure to pause-on-final-failure if not already configured. ▸ Build a 14-day and 45-day reinstatement email for customers in the pause state.

One-page resource

Get the Vendor Recovery Checklist.

The 12 steps every displaced maker should take in the next 30 days. Delivered in your inbox.

No spam. Unsubscribe any time.

Ready to put this into motion?

Book a 15-min call