Skip to main content
Bango DVM™ sends Consumer Offer notifications to report the outcome of provisioning and cancellation across all Entitlements in a Consumer Offer. Use these notifications to track the overall Consumer Offer lifecycle and identify where an individual Entitlement needs attention. A Consumer Offer represents a consumer’s subscription to an Offer. Consumer Offer notifications report aggregate outcomes, not necessarily current Product access. A successfully created Entitlement may still require activation.

Notification reasons

Consumer Offer status describes aggregate orchestration. Even an Offer that previously reached FULLY_ACTIVE can contain an Entitlement whose state changes later. Check individual Entitlements whenever current Product access matters.

Provisioning outcomes

CONSUMER_OFFER_CREATED, CONSUMER_OFFER_PARTIALLY_CREATED, and CONSUMER_OFFER_CREATE_FAILED describe the outcome of Entitlement creation. They do not confirm that every Product is activated. Consumer Offer creation can be asynchronous: POST /consumerOffers returns 202 Accepted, while subsequent notifications report the completion or failure of provisioning. For partial failures, review the entitlements array to identify affected Products. For a failed creation outcome, investigate the cause before deciding whether to create a new Consumer Offer. If any Entitlements remain created in a particular failure or recovery scenario, handle their cleanup as appropriate rather than assuming that all resources were removed.

Cancellation outcomes

CONSUMER_OFFER_CANCEL_PENDING indicates scheduled cancellation. Check consumerOffer.timeline.plannedCancellationTs when provided and continue to distinguish scheduled termination from completed termination. CONSUMER_OFFER_CANCELLED reports full completion; CONSUMER_OFFER_PARTIALLY_CANCELLED requires you to check which Entitlements have not terminated. For individual access-level termination events, see Entitlement notifications.

Example notification payloads

The payloads below retain event-specific identifiers, timestamps, and Entitlement details from the original examples. Placeholder objects such as {} represent illustrative example values, not literal production timestamps.
Sent when all entitlements in the Offer are successfully created. The Offer status is FULLY_CREATED and all entitlements have status CREATED. The reseller can confirm provisioning has completed. Product activation may still be pending.
Sent when at least one entitlement was created successfully and at least one failed. The Offer status is PARTIALLY_CREATED. The Reseller must review the entitlements array to identify which products failed and decide whether to retry, notify the consumer, or cancel the Offer.
Sent when a cancellation is initiated and the scheduling service successfully schedules it. The Offer status does not change but the sub-status moves to PENDING_CANCELS. The plannedCancellationTs indicates when the cancellation is due to complete.
Sent when all entitlements in the Offer have been successfully terminated. The Offer status is FULLY_CANCELED and all entitlements have status ENDED. The reseller can treat the Consumer Offer as fully terminated.
Sent when at least one entitlement was terminated and at least one was not. The Offer status is PARTIALLY_CANCELED. The Reseller must review the entitlements array to determine which products are fully terminated and apply the appropriate product access and business rules.
Sent when a Consumer Offer could not be created, for example because a Content Provider rejected the request to create an entitlement. POST /consumerOffers returns 202 Accepted and creation continues asynchronously, so this notification is how you find out that creation did not complete, without relying on a successful creation notification.

Key fields

string
required
Identifies the Consumer Offer notification, using one of the exact reason values listed above.
string
Unique identifier of the Consumer Offer affected by the notification.
string
Aggregate lifecycle status. Examples in these payloads include FULLY_CREATED, PARTIALLY_CREATED, CREATES_FAILED, FULLY_CANCELED, and PARTIALLY_CANCELED. This is not a substitute for an Entitlement’s access status.
string
Transitional information when present, such as PENDING_CANCELS for scheduled cancellation. Use the actual value returned.
object
Relevant timestamps, which vary by event, including createdTs, createsFailedTs, plannedTs, plannedCancellationTs, and terminatedTs.
string
Identifies the consumer associated with the Consumer Offer.
object
Consumer contact information where present, such as emailAddress and msisdn. Do not assume this object is present in every notification.
array
Entitlements associated with the Consumer Offer. Check individual entitlementId, status, subStatus, productKey, and merchantAccountKey fields, where present, especially for partial outcomes.
Preserve returned API field names and enum values exactly. The examples include different shapes depending on the notification reason.