Failed payment email template for Stripe declines

Pick a Stripe decline code to get a failed payment email template you can edit. You also get a checklist for your team and a Slack handoff. The wording follows Stripe's decline code guidance.

Runs in your browser. Nothing you type is sent or saved.

The payment

Payment type
Automatic retry

For the email

All optional. Anything you leave blank stays out.

Only add this if it's true for your account. It goes into the email as written.

For the handoff

Defaults to the first checklist step.

Your next-step checklist

You haven't picked a decline reason, so the wording stays neutral.

  1. Open the payment in Stripe and find its decline code, then pick it here for tailored guidance.
  2. Check in Stripe whether a retry is scheduled before you mention one to the customer.
  3. Add a payment link if you have one, such as the hosted invoice page or your customer portal. Otherwise the email asks the customer to reply.
  4. Check what your Stripe Billing settings do if the invoice stays unpaid before telling the customer about any access change.

Your failed payment email

Edit freely before you send it. The builder never sends anything.

Slack handoff

Paste into your billing or support channel so someone owns the follow-up.

*Failed payment: customer*
Reason: Unknown
Type: Subscription
Retry: Unknown
Owner: Unassigned
Next action: Open the payment in Stripe and find its decline code, then pick it here for tailored guidance.
Customer email: drafted, not sent yet.

Based on Stripe's decline codes reference, reviewed September 25, 2026. The builder doesn't recover payments or predict whether a retry will work.

To see what that alert looks like, read about failed payment alerts in Slack.

Failed payment email questions

What should a failed payment email say?

Tell the customer which payment failed and what to do next, such as adding a new card or approving the payment with their bank. Include a link to pay or update their card if you have one. Leave out retry dates and access changes unless they are true for your account. For fraud, lost card, and stolen card declines, keep the wording generic.

Does this tool send the email or Slack message?

No. It only drafts text. You review it, copy it, and send it from your own email or Slack. Nothing you type leaves your browser unless you copy it.

Why doesn't the email mention fraud or a lost or stolen card?

Stripe's decline code reference says not to reveal fraudulent, lost_card, stolen_card, or merchant_blacklist to the customer, and to present them like a generic decline. The checklist tells you the real reason, and the customer email stays generic.

Why isn't there a retry date in my email?

The builder only mentions a retry when you say one is scheduled, and a date only when you enter it. It never promises that a retry will succeed. For hard declines such as authentication_required, lost_card, and stolen_card, it leaves retries out. Stripe keeps those retries scheduled but only runs them after the customer adds a new payment method.

Where do I find the decline reason?

Open the failed payment in your Stripe Dashboard and look for its decline code. If you can't find it, pick "I don't know the reason" and the builder uses neutral wording.

Know when a payment fails or recovers with alerts in Slack.

ChargeBell posts Stripe's decline message to the Slack channel you choose when a payment fails, and again when the payment recovers.

Create your workspace