Skip to main content
Dodo Payments provides real-time webhook notifications to keep you informed about critical events related to transactions, subscriptions, refunds, disputes, and license key management. Below is a detailed guide to these events, categorized for clarity, along with implementation tips and considerations.

Payment Events

Event NameEvent TypeDescription
Payment Succeededpayment.succeededTriggered when a payment is successfully processed.
Payment Failedpayment.failedOccurs when a payment attempt fails due to errors, declined cards, or other issues.
Payment Processingpayment.processingIndicates that a payment is currently being processed.
Payment Cancelledpayment.cancelledTriggered when a payment is cancelled before completion.

Refund Events

Event NameEvent TypeDescription
Refund Succeededrefund.succeededTriggered when a refund is successfully processed.
Refund Failedrefund.failedOccurs when a refund attempt fails due to processing errors or other issues.

Dispute Events

Event NameEvent TypeDescription
Dispute Openeddispute.openedTriggered when a customer initiates a dispute.
Dispute Expireddispute.expiredIndicates that a dispute expired without resolution.
Dispute Accepteddispute.acceptedTriggered when a merchant accepts the dispute.
Dispute Cancelleddispute.cancelledOccurs when a dispute is cancelled by the customer or system.
Dispute Challengeddispute.challengedTriggered when a merchant challenges a dispute.
Dispute Wondispute.wonIndicates that the merchant has successfully won a dispute.
Dispute Lostdispute.lostOccurs when the merchant loses a dispute.

Subscription Events

Event NameEvent TypeDescription
Subscription Activesubscription.activeIndicates that a subscription is now active and recurring charges are scheduled.
Subscription Updatedsubscription.updatedTriggered when any subscription field is updated (real-time sync without polling).
Subscription On Holdsubscription.on_holdTriggered when a subscription is temporarily put on hold due to failed renewal.
Subscription Renewedsubscription.renewedOccurs when a subscription is successfully renewed.
Subscription Plan Changedsubscription.plan_changedTriggered when a subscription is upgraded, downgraded, or modified with different addons.
Subscription Cancelledsubscription.cancelledTriggered when a subscription is cancelled by the merchant or customer.
Subscription Failedsubscription.failedIndicates a failed subscription. This means that we were unable to create a mandate.
Subscription Expiredsubscription.expiredTriggered when a subscription reaches the end of its term and expires.

License Key Events

Event NameEvent TypeDescription
License Key Createdlicense_key.createdTriggered when a new license key is created for a product.

Credit Events

Event NameEvent TypeDescription
Credit Addedcredit.addedTriggered when credits are granted to a customer (subscription, one-time, add-on, or API).
Credit Deductedcredit.deductedOccurs when credits are consumed through usage or manual debit.
Credit Expiredcredit.expiredTriggered when unused credits expire after the configured expiry period.
Credit Rolled Overcredit.rolled_overOccurs when unused credits are carried forward to a new grant at cycle end.
Rollover Forfeitedcredit.rollover_forfeitedTriggered when credits are forfeited because the max rollover count was reached.
Overage Chargedcredit.overage_chargedOccurs when overage charges are applied for usage beyond zero balance.
Manual Adjustmentcredit.manual_adjustmentTriggered when a manual credit or debit adjustment is made.
Balance Lowcredit.balance_lowTriggered when credit balance drops below the configured threshold.
These webhook events are designed to provide merchants with critical updates to manage their operations effectively. Implement robust handlers for each relevant event in your webhook integration to ensure smooth and reliable functionality.