Skip to main content
Dodo Payments emits webhook events at each stage of a payment, subscription, dispute, payout, credit, or license key lifecycle. This page lists every event by resource. For detailed payload schemas and handler examples, see the resource-specific pages linked below.

Payment Events

For the full payload schema, see Payment Webhooks.

Refund Events

For the full payload schema, see Refund Webhooks.

Dispute Events

For detailed payload schemas and handler examples, see Dispute Webhooks.

Subscription Events

For detailed payload schemas and handler examples, see Subscription Webhooks.

License Key Events

For the full payload schema, see License Key Webhooks.

Entitlement Grant Events

For detailed payload schemas, sample events, and the full revocation_reason reference, see Entitlement Grant Webhooks.

Credit Events

For detailed payload schemas and handler examples, see Credit-Based Billing Webhooks.

Recovery Events

For detailed payload schemas, field descriptions, and handler examples, see Recovery Webhooks.

Dunning Events

For detailed payload schemas, field descriptions, and handler examples, see Recovery Webhooks.

Payout Events

Payout events track your funds moving from Dodo Payments to your bank account. They mirror the payout statuses shown in the dashboard. The payload is a payout object with the same shape as an entry from GET /payouts.
Payout events are neither terminal nor strictly ordered. payout.failed can arrive after payout.success when a bank returns the transfer, and payout.success can arrive after payout.failed when a failed payout is later recovered. The payload’s status always matches the event type, so use each event’s top-level timestamp to find the latest state.
payout.created was previously emitted as payout.not_initiated. If an existing endpoint filters on payout.not_initiated, update the filter to payout.created so it keeps matching.
For detailed payload schemas, field descriptions, and handler examples, see Payout Webhooks.
Last modified on September 25, 2026