Payment Failed Email: How to Send One Automatically
A payment failed email tells customers their card was declined and how to fix it. Learn when to send one, what to say, and how to build it with Claude Code.
Quick answer
Send a payment failed email as soon as a customer’s subscription charge fails. Say what failed, give one button to update their card, and send a reminder and a final notice while Stripe retries. Tell Claude Code the schedule and tone you want, and it builds the emails so they go out automatically.
Last checked: October 2026
On this page
When a customer's card is declined, they usually don't find out until something stops working. A payment failed email tells them right away, explains what happened and gives them one button to fix it.
This guide is for SaaS founders who charge by subscription and build with Claude Code. You'll see when to send a payment failed email, how many follow-ups to send, what to tell Claude Code, and what a good email looks like. The examples use Stripe. If you use a different payment service, tell Claude Code which one.
Why do payment failed emails matter for churn?
Many customers who stop paying never meant to leave. Their card expired, hit a limit or was replaced, and the renewal charge bounced. Stripe calls this involuntary churn: losing a customer to a failed payment rather than a decision to cancel.
Stripe can retry a failed charge automatically, which helps when the problem is temporary. It doesn't help when the card itself needs replacing. Stripe won't retry at all when there's no card on file or the bank returns a hard decline, such as a card reported lost or stolen. Nothing changes until the customer adds a new card, and they can only do that if they know there's a problem.
Stripe's own subscription guide says that when a subscription falls behind on payment, you should contact the customer directly and ask them to update their payment details. A payment failed email does that. It's a transactional email: a message your SaaS sends because something happened in the customer's account, not a marketing message.
When should a payment failed email go out, and how often?
Send the first payment failed email as soon as the first charge fails. After that, send a small number of follow-ups while Stripe keeps retrying, not one email per retry.
Stripe's Smart Retries feature picks the best times to try the charge again. The recommended default is 8 tries within 2 weeks, and you can choose a window from 1 week to 2 months in the Stripe Dashboard under Billing, then Revenue recovery, then Retries. Each failed attempt sends your project a webhook, a short message Stripe sends to your project the moment something happens. If your project emailed the customer every time, they could get eight emails in two weeks.
Here's a schedule that suits most SaaS products, based on the default two-week window:
| When | What it says | |
|---|---|---|
| Right after the first failed charge | Payment failed | What failed, and a button to update the card |
| 3 days later, if still unpaid | Reminder | The card still needs updating, and Stripe will try again soon |
| 2 days before retries end | Final notice | The date access will change, with the same button |
| When retries end | Account paused or ended | What happened and how to restart |
| Whenever a payment succeeds | Payment fixed | Thanks, it's sorted, nothing else to do |
When retries run out, Stripe does whatever your settings say: cancel the subscription, mark it unpaid, leave it past due or pause it. Tell Claude Code which one you've picked, so the last email matches what happens.
The same thinking about timing applies to reminders sent before a charge, covered in our guide to trial ending and renewal reminder emails.
What should you tell Claude Code?
Tell Claude Code what should happen when a payment fails, the schedule you want and the tone. It handles the rest: reacting to Stripe's payment failed event, writing each email and sending it through SimpleSends.
If SimpleSends isn't connected yet, follow the four steps in our guide to sending emails from Claude Code first. If your project doesn't react to Stripe events yet, our guide to sending your own emails after a Stripe payment explains how Stripe tells your project a payment happened.
When a customer's subscription payment fails in Stripe, I'd like them to get a friendly email straight away. Say which plan and amount failed and which card it was (last four digits only), and add a button that takes them to Stripe's customer portal to update their card. Send one reminder after 3 days if it's still unpaid, and a final notice 2 days before Stripe stops retrying. When the payment goes through, send a short thank-you. Keep the tone calm and helpful, never threatening. Show me each email before you build it.
Claude Code drafts each email for you to approve, sets your project up to react when Stripe reports a failed payment, and sends test versions to your inbox from the chat. Once your SaaS is live, the emails go out from your project automatically. Claude Code doesn't need to be open.
Stripe's customer portal is a secure page hosted by Stripe where customers manage their billing details. Linking to it means your SaaS never has to handle card numbers.
Stripe can also send its own failed payment emails. If you're sending yours through SimpleSends, turn off the setting called Send emails when card payments fail in Stripe's revenue recovery settings, so customers don't get two emails about the same problem.
Before real customers see anything, test the whole flow in Stripe's sandbox, a practice copy of your Stripe account where no real money moves:
Set up a test customer in Stripe's sandbox whose renewal payment fails, move time forward so the retries play out, and send me each email as it would go out.
Stripe has a test card that's accepted at sign-up but fails on later charges, and test clocks that move time forward, so you can watch two weeks of retries in a few minutes. Our guide to testing your emails before users see them has a full checklist.
What does a good payment failed email look like?
A good payment failed email says what failed, reassures the customer, and gives one clear way to fix it, in that order. Here's an example:
SubjectYour payment for YourCompany Pro didn't go through
Hi Sam,
We tried to charge $29.00 for your YourCompany Pro plan today, but your bank declined the card ending in 4242.
This happens for lots of reasons, like an expired card or a new card number. It takes about a minute to fix.
We'll try the payment again over the next few days. Your account stays fully active in the meantime.
Questions? Reply to this email and someone on our team will help.
The YourCompany team
Why this works:
- The subject names the product and the problem, so it's hard to miss.
- The amount and card are specific, so the customer knows which card to check.
- It explains without blaming, since most declines aren't the customer's fault.
- There's one button, not a choice of links.
- Replies go to a real inbox, sent from an address such as billing@yourcompany.com.
How should follow-up emails work?
Each follow-up should be shorter than the one before and clearer about when things change. Keep the same button in every email.
- Reminder. Open with "Your card still needs updating." Mention that Stripe will try again soon, and repeat the button.
- Final notice. Give the exact date access will change, matching your Stripe setting. Stay polite and specific.
- After retries end. Say what happened and how to restart. Stripe's hosted update link stops working once a subscription is canceled or marked unpaid, so ask Claude Code to point this email to your SaaS's own billing page instead.
- Payment fixed. A short thank-you that confirms everything is back to normal, much like a subscription confirmation email.
If a customer says one of these never arrived, ask Claude Code. It can check SimpleSends' send logs and tell you whether the email went out and what happened to it. Our guide to checking whether your emails actually sent covers the common causes.
Payment failed emails are one of the core emails a subscription SaaS needs. For the full set, see 12 transactional emails every SaaS needs.
Frequently asked questions
What is a dunning email?
Dunning is the process of reminding customers about payments that failed or are overdue, and a dunning email is one of those reminders. In a SaaS, the payment failed email is usually the first one, followed by a reminder and a final notice before access changes.
What happens if the customer’s card was reported lost or stolen?
Stripe treats this as a hard decline, which means the bank won’t accept a retry. Stripe keeps the retry schedule going but only charges once the customer adds a new payment method. That makes your payment failed email the main way the problem gets fixed.
Should I block access as soon as a payment fails?
Usually not. Many failed payments are fixed during the retry window, and cutting access early can push away customers who meant to stay. Stripe’s guidance is to revoke access once a subscription is canceled or marked unpaid, which happens after retries run out, depending on your settings.
What subject line works best for a payment failed email?
Be direct. Name your product and the problem, for example “Your payment for YourCompany Pro didn’t go through.” Vague subjects like “Important account update” are often ignored. Ask Claude Code for two or three options and pick the one that sounds most like you.
Do payment failed emails work for one-off invoices too?
Yes. Stripe can also retry one-off invoice payments, which you set up separately under Settings, then Billing, then Invoices. Tell Claude Code which kinds of payments your SaaS takes, and it can send a payment failed email for each, worded for a single charge rather than a subscription.
Sources (4)
- Automate payment retries(checked October 5, 2026)
- Automate customer emails(checked October 5, 2026)
- Using webhooks with subscriptions(checked October 5, 2026)
- Test your Billing integration(checked October 5, 2026)
Keep reading
More on Task guides →Team Invite Email: How to Send Them From Your SaaS
How a team invite email works, what to put in it, and the exact message to send Claude Code so your SaaS sends invites that expire safely and on time.
6 min read
Subscription Confirmation Email: What to Send and How
Learn what a subscription confirmation email should include, what to tell Claude Code to set it up, and how to handle plan changes and cancellations.
5 min read
Transactional Email Examples: 12 Every SaaS Needs
12 transactional email examples every SaaS needs, from welcome and password reset to receipts and payment failed, with when to send each and what to include.
9 min read