Skip to main content
In the Bango Platform, entitlements describe a user’s ability to access a service provided by a merchant. In some circumstances you might want a “soft ending” for the entitlement: to allow the user to access the service until the end of the period for which they have already paid, and then to deny access. For example, if a user chooses not to renew a subscription, you want to withdraw access when the current subscription ends. To do this, you cancel the entitlement by making a POST request to the Bango Resale API. (To immediately withdraw access, revoke the entitlement instead.) (You may cancel and revoke entitlements only in accordance with the merchant product descriptions and your commercial agreements.) As part of the API request, you supply:
  • The entitlement ID
  • A reason for cancellation, including a category, a code, and a human-readable description
  • Optionally, custom data
The API response is a structure that contains:
  • A response code, indicating the result of the request. Use this code to determine what to do next.
  • For HTTP 200 responses, the entitlement record. The record includes the cancellation reason and any additional custom data as part of the entitlement’s extensionData property, and the status is ACTIVE-ENDING or CANCELLED depending on the use cases the merchant supports.
  • For HTTP 202 responses, the entitlement record. The record includes the cancellation reason and any additional custom data as part of the entitlement’s extensionData property, and the status won’t be changed until the merchant sends an asynchronous notification to the Bango Platform.
The Bango Platform automatically cancels entitlements when a merchant tells the Bango Platform to do so (for example, if the user cancels directly with the merchant, or if the merchant detects fraud). Set an entitlement’s notificationUrl to receive a POST notification when this happens.

Sequence diagrams

The Bango Platform cancels the service for the user.
Image
The merchant providing the service tells the Bango Platform to cancel the entitlement.
The Bango Platform can’t cancel the service for the user, and returns the reason in the response to the API request.

Skeleton code

Here’s some sample code in a C/Java-like language: adapt this code to your needs. Use the same API endpoint prefix with test credentials and with production credentials.

FAQ

You must pass the entitlement ID in the path of the request URL.In the request body, you should set the cancelReasonCategory, cancelReasonCode, and cancelReasonDescription parameters. You can also include any other parameters, with any names and values you like.The cancelReasonCategory, cancelReasonCode, cancelReasonDescription, and custom properties are added to the entitlement’s extensionData property.See Bango Resale / For resellers / Reseller API reference / Reseller API reference overview for detailed information on all request parameters, and Bango Resale / For resellers / Reseller API reference / Standard reasons for suspend, cancel, revoke, and terminate for the values to use for cancelReasonCategory and cancelReasonCode.
All responses contain a responseCode string that indicates the result of the request. Use this code to determine how to react. For each distinct responseCode, the response might include other useful values.See Bango Resale / For resellers / Reseller API reference / Reseller API reference overview for detailed information on all responses.