Webhook Payloads
Recovery
The payloads sent to your webhook endpoint when abandoned cart recovery or subscription dunning events occur.
Documentation Index
Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
Use this file to discover all available pages before exploring further.
Abandoned Cart Recovery Events
The following webhook events track the abandoned cart recovery lifecycle:| Event | Description |
|---|---|
abandoned_checkout.detected | An abandoned checkout has been detected. Sent when a payment is identified as abandoned (failed or incomplete) and the recovery workflow begins. |
abandoned_checkout.recovered | The customer completed payment through the recovery link. The recovered_payment_id field contains the successful payment ID. |
Abandoned Checkout Payload Fields
The original payment that was abandoned. Use this to look up product, amount, and currency details.
The customer who abandoned the checkout.
Why the checkout was abandoned. One of:
payment_failed— Customer attempted payment but it failedcheckout_incomplete— Customer visited checkout but never attempted payment
Current lifecycle state of this recovery attempt. One of:
abandoned— Detected, no emails sent yetrecovering— At least one recovery email sentrecovered— Customer completed paymentexhausted— All emails sent or newer checkout foundopted_out— Customer unsubscribed
ISO 8601 timestamp of when the checkout was detected as abandoned.
The payment ID of the successful recovery payment.
null until the checkout is recovered.Example: Handling ACR Webhooks
Dunning Events
The following webhook events track the subscription dunning lifecycle:| Event | Description |
|---|---|
dunning.started | A dunning attempt has been created for a subscription that entered on_hold or was cancelled by the customer. |
dunning.recovered | The customer updated their payment method and the resulting payment succeeded. The payment_id field contains the successful payment ID. |
Dunning Attempt Payload Fields
The subscription that triggered the dunning attempt.
The customer who owns the subscription.
The subscription state that triggered dunning. One of:
on_hold— Subscription paused due to payment failurecancelled— Customer cancelled from the customer portal
Current lifecycle state of this dunning attempt. One of:
recovering— Dunning emails are being sentrecovered— Customer updated payment method and payment succeededexhausted— All emails sent or subscription state changed
ISO 8601 timestamp of when the dunning attempt was created.
The payment ID of the successful recovery payment.
null while recovering.Example: Handling Dunning Webhooks
Abandoned Cart Recovery
Configure ACR email sequences and discount incentives.
Subscription Dunning
Configure dunning email sequences for lapsed subscriptions.
Subscription Webhooks
Related subscription lifecycle events like
subscription.on_hold and subscription.cancelled.Webhook Payload Schema
Webhook payload for abandoned_checkout.detected and abandoned_checkout.recovered events
Available options:
payment_failed, checkout_incomplete Available options:
abandoned, recovering, recovered, exhausted, opted_out Last modified on April 8, 2026