Payment Intents & CheckoutRecovery event

Stripe webhook event

checkout.session.async_payment_failed

A delayed payment method on a Checkout session failed.

Quick answer

An async payment (e.g. bank debit) fails after Checkout.

Event typecheckout.session.async_payment_failed
CategoryPayment Intents & Checkout
When it firesAn async payment (e.g. bank debit) fails after Checkout.
Recovery-relevant?Yes, used in failed-payment recovery

When it fires

An async payment (e.g. bank debit) fails after Checkout.

What to do with it

Notify the customer and prompt them to use a different method.

This is a payment-recovery event

checkout.session.async_payment_failed is part of the failed-payment lifecycle. Handling it well, with retries, branded emails, a card update page, and stop-on-success, is what recovers the ~9% of MRR most SaaS lose to failed payments. See how to recover failed Stripe payments or skip the build with SubRevival.

Stop building webhook handlers

SubRevival consumes the failed-payment events for you and runs the full recovery stack, no endpoint to build, secure, or maintain. 5-minute Stripe OAuth, $19/mo flat.

Start Recovering Revenue

FAQ

What does the Stripe checkout.session.async_payment_failed webhook event mean?

A delayed payment method on a Checkout session failed.

When does checkout.session.async_payment_failed fire?

An async payment (e.g. bank debit) fails after Checkout.

What should I do when I receive a checkout.session.async_payment_failed event?

Notify the customer and prompt them to use a different method.

Related events

Source: official Stripe events documentation.