Skip to main content
checkout.terminally_failed is off by default. It will not be delivered until you enable it in Dashboard → Developers. See Receiving Webhooks for instructions.

Payload Structure

Example Payload

terminally_failed_at is a Ruby-formatted timestamp string ("2025-05-30 06:05:22 UTC"), not ISO 8601. Other webhook events, such as checkout.review.created, use ISO 8601 ("2026-04-08T14:30:00Z") for their timestamps. Handle both formats if you write a shared date parser across webhook events.
The terminally_failed_at timestamp indicates when the checkout session failed terminally, and the type field specifies whether it was a deposit or withdrawal attempt. Unlike temporarycheckout.failed events, terminal failures indicate that the session can no longer be continued.