Stripe failed payment alert in Slack (payment_intent.payment_failed)

A Stripe failed payment alert in Slack posts the amount, customer, and Stripe's decline message when payment_intent.payment_failed fires. Here is what it shows and how to set it up.

ChargeBell product team

Updated October 1, 2026. 6 min read.

How we check provider claims

A Stripe failed payment alert in Slack tells your team that a charge was declined, while there is still time to help the customer. ChargeBell listens for payment_intent.payment_failed and posts the amount, the customer when Stripe includes one, and Stripe's decline message. ChargeBell marks this alert critical, so it posts during quiet hours and adds an @channel mention by default.

What payment_intent.payment_failed means

Stripe sends payment_intent.payment_failed when "a PaymentIntent has failed the attempt to create a payment method or a payment." The event's data.object is the PaymentIntent, and last_payment_error holds the decline details.

One failed attempt does not mean a lost sale or a canceled subscription. Stripe may retry, or the customer may need to add a new card. Open the payment in Stripe to see which.

Subscriptions also emit invoice.payment_failed, including when the customer has no saved payment method. ChargeBell does not alert on that invoice event. The invoice.payment_failed guide explains the difference and how to cover it.

What the Slack alert shows

The alert title reads "A $X payment didn't go through." Below it is the customer and Stripe's decline message, such as "Your card has insufficient funds." If Stripe gives no message, the alert says "card declined." A View in Stripe button opens the payment.

# billing

ChargeBellAPP

⚠️ A $149.00 payment didn't go through

@channel

acme@example.com · Your card has insufficient funds.

Check Stripe to see if it will be retried.

Fields ChargeBell can include

  • The amount and currency of the failed attempt
  • The customer name or email, when Stripe includes it
  • Stripe's decline message, or "card declined" when there is none
  • A View in Stripe button that opens the PaymentIntent

The alert does not show the decline code, a soft or hard decline label, or a retry date. Open the payment in Stripe for those.

Why the alert is critical

ChargeBell has three critical alerts. They are failed payments, disputes, and failed payouts. A critical alert posts during quiet hours instead of waiting for the morning batch. It also adds an @channel mention, which you can turn off in settings. This is a ChargeBell setting. Stripe does not mark events as critical.

Stripe can deliver events out of order. If a later success for the same PaymentIntent has already posted when the failure arrives, ChargeBell skips the failure. If the payment succeeds within 14 days after the failure posts, ChargeBell sends a payment recovered alert.

Does Stripe retry failed payments?

For subscription invoices, Stripe Billing can retry failed payments with Smart Retries or a custom schedule. Your Billing settings control how many retries run and what happens to the subscription after the last one. One-off PaymentIntents are not retried by Stripe. ChargeBell does not retry payments either. It only reports them.

Some failures need the customer

An expired card or a missing payment method will not succeed on retry. Check the decline code and Stripe's advice before you contact the customer or wait for the next attempt.

How to set up a Stripe failed payment alert in Slack

  1. 1

    Connect Stripe

    Approve ChargeBell's read-only Stripe app. It reads payment events and cannot move money or change anything.

  2. 2

    Connect Slack and pick a channel

    Add the ChargeBell Slack app and choose a channel with a clear owner, such as #billing.

  3. 3

    Check the payment failed alert

    It is on by default. Leave the @channel mention on if you want the channel notified, or turn it off in settings.

  4. 4

    Send a test alert

    Check the message in Slack before your next real decline.

What to do when a payment fails

  • Open the payment in Stripe. Read the decline code and check whether an invoice is attached.
  • Check the retry plan. For invoices, Stripe's invoice page shows the next attempt if one is scheduled.
  • Contact the customer when a retry will not help. Send your usual update-card link through your billing process.
  • Confirm the outcome. ChargeBell posts a payment recovered alert if the same PaymentIntent succeeds within 14 days.

Key takeaways

  • payment_intent.payment_failed fires on one failed attempt. Check Stripe before you act.
  • ChargeBell posts the amount, customer, and decline message, and it posts during quiet hours with an @channel mention by default.
  • ChargeBell does not alert on invoice.payment_failed. Monitor that event separately.
  • Stripe Billing owns retries for invoices. ChargeBell never retries a payment.

Frequently asked questions

Which Stripe event fires on a failed payment?

payment_intent.payment_failed fires when a PaymentIntent fails to create a payment method or complete a payment. Subscription invoices can also emit invoice.payment_failed, which ChargeBell does not alert on.

Does the alert post during quiet hours?

Yes. ChargeBell marks failed payments as critical, so the alert posts right away during quiet hours. It also adds an @channel mention by default, which you can turn off in settings.

Does the alert show the decline code?

No. It shows Stripe's decline message, such as "Your card has insufficient funds." The decline code and Stripe's advice are on the payment in Stripe, one click away through the View in Stripe button.

Does ChargeBell retry failed payments?

No. ChargeBell only reports the failure. Stripe Billing retries subscription invoices based on your retry settings. If a retry of the same PaymentIntent succeeds within 14 days, ChargeBell posts a payment recovered alert.

Does ChargeBell need write access to Stripe?

No. ChargeBell connects through a read-only Stripe app. It reads payment events to build alerts and cannot retry a payment, move money, or change your Stripe account.

Primary sources

We checked event definitions and comparison details against these provider docs and pricing pages.