Failed payments, explained by people who built the fix
Guides on Stripe and PayPal failed payments: decline codes, retry timing, dunning emails and recovery costs.
- Stripe Decline Codes: Which Failed Payments to Retry
How to find the decline code behind a failed Stripe payment and decide whether to retry, wait for payday or ask for a new card. Lists the codes by group.
- Stripe Smart Retries: What They Miss and Never Retry
What Stripe Smart Retries cover, when they never run, and what to add on top: your own retry schedule and a customer email sequence.
- Insufficient Funds Decline? Retry on Payday, Not a Timer
How to recover insufficient_funds declines: retry when money arrives, such as payday, instead of on a fixed timer. Includes the schedule and the email.
- PayPal Subscription Payment Failed: What Happens Next
How PayPal handles a failed subscription payment: its retry schedule, when it suspends the subscription, which webhooks to watch and how to recover the customer.
- Churnkey and Baremetrics Alternatives: Yearly Cost Compared
Comparison of failed-payment recovery tools for small SaaS: price, what each does that a self-hosted setup does not, and when a monthly subscription makes sense.
- Dunning Email Sequence That Recovers Failed Payments
A five-email dunning sequence for failed payments: timing between emails, wording, and the rule to re-check payment status before every send.
- What Failed Payments Cost a SaaS at 10 MRR Levels
Estimated cost of involuntary churn for subscription businesses from $2k to $200k MRR, based on Baremetrics, Churnkey and Recurly figures, with Stripe retries alone and with a recovery sequence.
- PayPal Subscription Suspended: How to Reactivate It
What happens to a PayPal subscription suspended after failed payments, and how to get the customer's payment working, reactivate the subscription through the API and collect missed payments.
- Stripe Expiring Cards: Warn Customers Before They Fail
How to find Stripe subscribers whose cards expire soon, which cards the networks update automatically, and the email that covers the rest.
- n8n Stripe Failed Payment Workflow: Step by Step
How to build a Stripe failed-payment recovery workflow in n8n: verify the webhook, fetch the real decline code, branch retries by reason, email a fresh card-update link, and stop the moment the invoice is paid. Free starter template included.
- Stripe Invoice payment_intent Missing? The Basil API Change
Since Stripe API version 2025-03-31 (basil) the invoice no longer has payment_intent, charge or paid. Here is how to get the decline code now, with the exact request, and what breaks if you do not.