The revenue recovery journal
82 field guides on involuntary churn: decline-code retry strategy, channel data, integration engineering and how RRLabs compares to legacy dunning tools.
82 guides
Engineering
Optimizing 3D Secure (3DS) Failures: Frictionless Re-Authentication Pipelines
How to recover authentication_required declines: exemptions, on-session re-presentment, WhatsApp-first delivery of confirmation links and a 24-hour retry window.
ReadZero-Downtime AI Dunning: Combining GPT-4o-mini, DeepSeek Flash, and Deterministic Templates
A four-tier cascade — cache, primary model, fallback model, deterministic templates — that guarantees a recovery message is always produced within a bounded latency budget.
ReadDecline code retry strategy: timing every retry to the reason
A practical mapping from Stripe decline codes to retry windows and messaging channels, with the reasoning behind each delay.
ReadVerifying signed payment webhooks correctly
HMAC verification, constant-time comparison and why string equality is a vulnerability.
ReadIdempotency and deduplication for payment events
Providers retry webhooks aggressively; duplicate processing double-sends recovery messages.
ReadMulti-tenant row-level security for billing data
Every failed-payment row must be scoped to a workspace at the database layer, not the query layer.
ReadA four-tier AI fallback that never drops a message
Cache, primary model, low-cost fallback, deterministic templates — each with a hard timeout.
ReadDesigning a decline-aware retry scheduler
Scheduling retries by reason and local time rather than a global cron tick.
ReadObservability for a recovery pipeline
What to log so recovery lift is attributable instead of anecdotal.
ReadKeeping recovery out of PCI scope
How to run a full recovery pipeline without ever touching card data.
ReadData retention for recovery message logs
Balancing audit value against privacy obligations on customer contact data.
ReadPlaybooks & Tactics
Handling Stripe `insufficient_funds`: Payday Routing and Card Issuer Batch Windows
Why insufficient_funds is the most recoverable decline code on Stripe, how to time the retry around pay cycles and issuer batch windows, and what the message should say.
ReadResolving `do_not_honor` and Bank Holds: Frictionless SCA & Multi-Channel Recovery
How to handle the most opaque decline code in card processing: what do_not_honor really signals, why grinding retries backfires, and the alternate-card strategy that recovers it.
ReadInsufficient funds declines: the recovery playbook
How to handle `insufficient_funds` declines — retry window, channel choice, message framing and the recovery rate to expect.
ReadExpired card declines: the recovery playbook
How to handle `expired_card` declines — retry window, channel choice, message framing and the recovery rate to expect.
ReadDo not honor declines: the recovery playbook
How to handle `do_not_honor` declines — retry window, channel choice, message framing and the recovery rate to expect.
ReadAuthentication required declines: the recovery playbook
How to handle `authentication_required` declines — retry window, channel choice, message framing and the recovery rate to expect.
ReadCard not supported declines: the recovery playbook
How to handle `card_not_supported` declines — retry window, channel choice, message framing and the recovery rate to expect.
ReadLost or stolen card declines: the recovery playbook
How to handle `lost_stolen_card` declines — retry window, channel choice, message framing and the recovery rate to expect.
ReadProcessing error declines: the recovery playbook
How to handle `processing_error` declines — retry window, channel choice, message framing and the recovery rate to expect.
ReadPickup card declines: the recovery playbook
How to handle `pickup_card` declines — retry window, channel choice, message framing and the recovery rate to expect.
ReadInvoluntary churn in B2B SaaS: a recovery playbook
Failure rates, cadence design and channel mix for reducing involuntary churn in B2B SaaS.
ReadInvoluntary churn in ecommerce subscriptions: a recovery playbook
Failure rates, cadence design and channel mix for reducing involuntary churn in ecommerce subscriptions.
ReadInvoluntary churn in membership sites: a recovery playbook
Failure rates, cadence design and channel mix for reducing involuntary churn in membership sites.
ReadInvoluntary churn in digital publishers: a recovery playbook
Failure rates, cadence design and channel mix for reducing involuntary churn in digital publishers.
ReadInvoluntary churn in agencies: a recovery playbook
Failure rates, cadence design and channel mix for reducing involuntary churn in agencies.
ReadInvoluntary churn in marketplaces: a recovery playbook
Failure rates, cadence design and channel mix for reducing involuntary churn in marketplaces.
ReadInvoluntary churn in fitness and wellness studios: a recovery playbook
Failure rates, cadence design and channel mix for reducing involuntary churn in fitness and wellness studios.
ReadInvoluntary churn in edtech and cohort courses: a recovery playbook
Failure rates, cadence design and channel mix for reducing involuntary churn in edtech and cohort courses.
ReadFlat fee vs revenue share: the real cost of dunning tools
Why percentage pricing gets expensive exactly when recovery starts working.
ReadWriting dunning copy that actually converts
Framing, length and the one action per message rule.
ReadGetting WhatsApp utility templates approved
What Meta rejects and how to phrase a payment-failure template that passes.
ReadGrace periods and access revocation timing
How long to keep the lights on after a failed charge.
ReadReporting recovery to your board
The four numbers that make involuntary churn legible to non-operators.
ReadForecasting recoverable revenue
Turning failure rate and decline mix into a defensible forecast.
ReadChannels
Expired Card Recovery: Recovering Failed Renewals on WhatsApp Before Invoices Cancel
Expired cards are the most recoverable failure in subscription billing. Here is the pre-expiry, update-link and WhatsApp architecture that converts 70-85% of them.
ReadWhy WhatsApp Cloud API Generates a 90%+ Read Rate for Subscription Dunning
The channel economics, template rules and sequencing behind WhatsApp-based failed payment recovery — and where it beats email, SMS and in-app banners.
ReadWhatsApp Cloud API for failed payment recovery
Open rates, delivery windows, cost and compliance considerations for recovering failed subscription payments over whatsapp cloud api.
ReadTransactional email for failed payment recovery
Open rates, delivery windows, cost and compliance considerations for recovering failed subscription payments over transactional email.
ReadSMS for failed payment recovery
Open rates, delivery windows, cost and compliance considerations for recovering failed subscription payments over sms.
ReadIn-app payment banner for failed payment recovery
Open rates, delivery windows, cost and compliance considerations for recovering failed subscription payments over in-app payment banner.
ReadPush notification for failed payment recovery
Open rates, delivery windows, cost and compliance considerations for recovering failed subscription payments over push notification.
ReadVoice outreach for failed payment recovery
Open rates, delivery windows, cost and compliance considerations for recovering failed subscription payments over voice outreach.
ReadIntegrations
How to Intercept and Recover Failed Stripe Invoices via Signed HMAC Webhooks
A complete engineering blueprint for catching Stripe invoice.payment_failed events, verifying the signature safely, routing by decline code and recovering the invoice over email and WhatsApp.
ReadPreventing Involuntary Churn on Paddle: Merchant-of-Record Recovery Architecture
How to build a failed-payment recovery pipeline on Paddle when the merchant of record owns the customer relationship, the tax handling and the default dunning email.
ReadAutomating Failed Subscription Recovery for Lemon Squeezy Stores
A practical architecture for recovering failed Lemon Squeezy subscription payments: webhook verification, decline routing, branded messaging and honest recovery reporting.
ReadShopify Subscription Churn: Recovering Failed Charges Across Recharge and Native Checkout
How to recover failed Shopify subscription billing attempts across Recharge and native Subscription APIs, including queue timing, fulfilment cut-offs and multi-channel dunning.
ReadHow to recover failed payments on Stripe
A technical guide to intercepting Stripe failed-payment webhooks, timing retries by decline code, and dispatching recovery messages over email and WhatsApp.
ReadHow to recover failed payments on Lemon Squeezy
A technical guide to intercepting Lemon Squeezy failed-payment webhooks, timing retries by decline code, and dispatching recovery messages over email and WhatsApp.
ReadHow to recover failed payments on Paddle
A technical guide to intercepting Paddle failed-payment webhooks, timing retries by decline code, and dispatching recovery messages over email and WhatsApp.
ReadHow to recover failed payments on Shopify Subscriptions
A technical guide to intercepting Shopify Subscriptions failed-payment webhooks, timing retries by decline code, and dispatching recovery messages over email and WhatsApp.
ReadHow to recover failed payments on WooCommerce Subscriptions
A technical guide to intercepting WooCommerce Subscriptions failed-payment webhooks, timing retries by decline code, and dispatching recovery messages over email and WhatsApp.
ReadHow to recover failed payments on Chargebee
A technical guide to intercepting Chargebee failed-payment webhooks, timing retries by decline code, and dispatching recovery messages over email and WhatsApp.
ReadHow to recover failed payments on Recurly
A technical guide to intercepting Recurly failed-payment webhooks, timing retries by decline code, and dispatching recovery messages over email and WhatsApp.
ReadHow to recover failed payments on Braintree
A technical guide to intercepting Braintree failed-payment webhooks, timing retries by decline code, and dispatching recovery messages over email and WhatsApp.
ReadBenchmarks
The CFO's Guide to Involuntary Churn: How to Calculate Recoverable MRR
A finance-grade model for sizing involuntary churn: failure rate, at-risk MRR, realistic recovery bands by decline code, cost per recovered dollar and payback period.
ReadInvoluntary churn benchmarks: what good recovery looks like
Typical failed-payment rates, recovery-rate benchmarks by decline code, and how to tell whether your dunning is underperforming.
ReadFailed payment rate benchmarks by business model
First-attempt failure rate benchmarks for subscription businesses, with the ranges that separate healthy recovery from a leaking billing stack.
ReadDunning email open rate benchmarks
Open rate benchmarks for subscription businesses, with the ranges that separate healthy recovery from a leaking billing stack.
ReadRecovery rate by decline code
14-day recovery benchmarks for subscription businesses, with the ranges that separate healthy recovery from a leaking billing stack.
ReadTime-to-recovery benchmarks
Median time to recover benchmarks for subscription businesses, with the ranges that separate healthy recovery from a leaking billing stack.
ReadHow many retries actually convert
Marginal recovery per attempt benchmarks for subscription businesses, with the ranges that separate healthy recovery from a leaking billing stack.
ReadInvoluntary vs voluntary churn: the split
Share of total churn benchmarks for subscription businesses, with the ranges that separate healthy recovery from a leaking billing stack.
ReadWhat recovery should cost per recovered dollar
Cost per $1 recovered benchmarks for subscription businesses, with the ranges that separate healthy recovery from a leaking billing stack.
ReadAlternatives
Churn Buster alternative: RRLabs for failed payment recovery
An honest comparison of Churn Buster and RRLabs — pricing model, retry logic, messaging channels and what migrating actually involves.
ReadBaremetrics Recover alternative: RRLabs for failed payment recovery
An honest comparison of Baremetrics Recover and RRLabs — pricing model, retry logic, messaging channels and what migrating actually involves.
ReadStripe Smart Retries alternative: RRLabs for failed payment recovery
An honest comparison of Stripe Smart Retries and RRLabs — pricing model, retry logic, messaging channels and what migrating actually involves.
ReadGravy alternative: RRLabs for failed payment recovery
An honest comparison of Gravy and RRLabs — pricing model, retry logic, messaging channels and what migrating actually involves.
ReadProfitWell Retain alternative: RRLabs for failed payment recovery
An honest comparison of ProfitWell Retain and RRLabs — pricing model, retry logic, messaging channels and what migrating actually involves.
ReadRecurly Revenue Optimization alternative: RRLabs for failed payment recovery
An honest comparison of Recurly Revenue Optimization and RRLabs — pricing model, retry logic, messaging channels and what migrating actually involves.
ReadChargebee dunning alternative: RRLabs for failed payment recovery
An honest comparison of Chargebee dunning and RRLabs — pricing model, retry logic, messaging channels and what migrating actually involves.
ReadButter Payments alternative: RRLabs for failed payment recovery
An honest comparison of Butter Payments and RRLabs — pricing model, retry logic, messaging channels and what migrating actually involves.
ReadVindicia Retain alternative: RRLabs for failed payment recovery
An honest comparison of Vindicia Retain and RRLabs — pricing model, retry logic, messaging channels and what migrating actually involves.
ReadStunning alternative: RRLabs for failed payment recovery
An honest comparison of Stunning and RRLabs — pricing model, retry logic, messaging channels and what migrating actually involves.
ReadFlyCode alternative: RRLabs for failed payment recovery
An honest comparison of FlyCode and RRLabs — pricing model, retry logic, messaging channels and what migrating actually involves.
ReadPaddle Retain alternative: RRLabs for failed payment recovery
An honest comparison of Paddle Retain and RRLabs — pricing model, retry logic, messaging channels and what migrating actually involves.
ReadChurnkey alternative: RRLabs for failed payment recovery
An honest comparison of Churnkey and RRLabs — pricing model, retry logic, messaging channels and what migrating actually involves.
ReadUpzelo alternative: RRLabs for failed payment recovery
An honest comparison of Upzelo and RRLabs — pricing model, retry logic, messaging channels and what migrating actually involves.
ReadBest failed payment recovery software in 2026
How dunning and failed-payment recovery tools actually differ — pricing model, retry intelligence, channels and white-label — and how to pick one.
ReadDunning software comparison: pricing, retries and channels
A side-by-side look at how dunning tools price themselves, time retries and reach customers, with the questions to ask on every demo call.
ReadStripe Smart Retries: what it does well and where it stops
An engineering look at Stripe's built-in retry scheduler — what it optimises, what it cannot do, and when to layer a recovery engine on top.
ReadWhite-label dunning for agencies and platforms
How agencies resell failed-payment recovery under their own brand — domain, DKIM, WhatsApp sender, per-client workspaces and margin maths.
ReadComparisons
RRLabs vs Churn Buster
Churn Buster pioneered email-first dunning. RRLabs adds adaptive retry timing, WhatsApp delivery and AI-written copy on flat pricing.
CompareRRLabs vs Baremetrics Recover
Recover is a add-on to an analytics suite. RRLabs is a dedicated recovery engine with multi-channel dispatch and AI copy.
CompareRRLabs vs Stripe Billing dunning
Stripe's built-in Smart Retries handle the retry. RRLabs adds the customer conversation — multi-channel, AI-written, and fully auditable.
CompareRRLabs vs Gravy
Gravy pairs software with a human outreach team billed as a share of recovery. RRLabs automates the same outreach at a flat fee.
Compare