Overview
When you use the DVM’s Billing & Charging capability, the DVM automatically sends billing lifecycle notifications to your system at key points in a consumer’s subscription journey. These notifications are designed to help you proactively communicate with your consumers — informing them of upcoming charges, confirming successful payments, and alerting them when a charge has failed.Notification types
There are six billing lifecycle notifications issued by the DVM:Upcoming Phase Change
Sent in advance of a billing phase change — for example, a consumer transitioning from a free trial to a paid subscription. Gives Resellers time to notify consumers before they are first charged.
notificationReason: UPCOMING_PHASE_CHANGEUpcoming Renewal
Sent in advance of a scheduled renewal charge. Allows Resellers to remind consumers their subscription is about to renew and what they will be charged.
notificationReason: UPCOMING_RENEWALCharge Succeeded
Sent after a charge has been successfully accepted by the Reseller’s billing system. Confirms to the Reseller that the charge was collected and the subscription continues.
notificationReason: CHARGE_SUCCEEDEDCharge Failed
Sent after a charge has failed following the full retry period. Signals that the DVM was unable to collect the charge and the Reseller may need to take action.
notificationReason: CHARGE_FAILEDRefund Succeeded
Sent after a pro-rated refund — issued on a mid-cycle downgrade or immediate cancellation — has been successfully processed by the Reseller’s billing system.
notificationReason: REFUND_SUCCEEDEDRefund Failed
Sent after a pro-rated refund has failed. Signals that the refund could not be processed and the Reseller may need to take action.
notificationReason: REFUND_FAILEDDefault timing
Each notification has a default send window configured during onboarding. These can be adjusted based on your requirements.Notification examples
Upcoming Phase Change
Upcoming Phase Change
Sent ahead of a billing phase change — typically when a consumer is about to move from a free or discounted phase into full-price billing. The
upcomingPhase object describes the phase they are moving into, and the charge object shows the amount they will be billed and when.This notification gives you advance notice to communicate the upcoming charge to your consumer before it is collected.Upcoming Renewal
Upcoming Renewal
Sent ahead of a scheduled renewal charge, giving you advance notice to remind the consumer their subscription is about to renew and what they will be charged. The
charge object contains the upcoming charge amount and the scheduled charge timestamp.Charge Succeeded
Charge Succeeded
Sent after the charge has been accepted by your billing system. The
charge.status is PAID, confirming the payment was collected successfully. Use this notification to confirm to your consumer that their subscription has renewed.Charge Failed
Charge Failed
Sent after the charge has failed following the full retry period. The
charge.status is FAILED and a failureCode is included, indicating why the charge could not be collected. Use this notification to alert your consumer and take any necessary action — such as prompting them to update their payment details.Refund Succeeded
Refund Succeeded
Sent after a refund has been successfully processed by your billing system. This notification is triggered when a consumer downgrades their product entitlement or immediately cancels their subscription mid-cycle, and the refund for the unused days in the billing period has been accepted. The
charge.status is PAID.Refund Failed
Refund Failed
Sent after a refund has failed. This notification is triggered when the DVM was unable to process a refund following a mid-cycle downgrade or cancellation. The
charge.status is FAILED and a failureCode is included. Use this notification to investigate the failure and take any necessary action to ensure the consumer receives their refund.Key fields explained
string
required
Identifies the type of billing notification. One of
UPCOMING_PHASE_CHANGE, UPCOMING_RENEWAL, CHARGE_SUCCEEDED, CHARGE_FAILED, REFUND_SUCCEEDED, or REFUND_FAILED.string
required
The identifier of the consumer this notification relates to, as registered in the DVM.
string
required
The unique identifier of the billing plan associated with this notification. Use this to locate the relevant subscription in your system.
object
required
Contains the
offerId, offerName, and consumerOfferId — identifying the specific offer and consumer subscription this notification relates to.object
Present on
UPCOMING_PHASE_CHANGE notifications only. Describes the phase the consumer is moving into, including the sequence, duration, and startTs of the new phase.string
required
The current status of the charge associated with this notification.
UPCOMING_CHARGE for pre-event notifications, PAID for successful renewals, FAILED for failed renewals.number
required
The charge amount in standard currency units (e.g.
13.99). Use this when displaying the charge amount to consumers. The raw amount field is in minor units scaled by assetScale.string
required
ISO 8601 timestamp of when the charge is scheduled (for upcoming notifications) or when it was due (for outcome notifications).
string
Present on
CHARGE_FAILED, andREFUND_FAILED notifications. Indicates why the charge or refund failed. Possible values include USER_INSUFFICIENT_CREDIT, USER_SUSPENDED, USER_BARRED, USER_SPEND_LIMIT_EXCEEDED, REFUND_PERIOD_EXPIRED, and others. See Recurring Charges for the full list of decline reason codes.
