This API only works if the subscription is published to RETAIL. If using a development sandbox, first publish the subscription to either a private flight group or as hidden in RETAIL, before calling this API. If the subscription isn’t published to RETAIL, the response is an HTTP 400 error with a message stating “Requested catalog product data wasn’t found.”
Prerequisites
Review Prerequisites for service-to-service APIs. This API only supports the Microsoft Entra ID auth type. If product configuration isn’t published in Partner Center, can succeed but return no results.Request
Request syntax
Request header
Request parameters
Request body
Change type operations
Request example
The following example demonstrates how to use this method to extend the subscription period by five days. Replace the b2bKey value with the User Store ID key that represents the identity of the user whose subscription you want to change.Response
This method returns a JSON response body describing the updated subscription add-on, including modified fields.This method has the same RETAIL publishing requirement described at the beginning of this article.
Response body
The
RecurrenceItem object contains the following parameters.
Recurrence states
- Inactive/Canceled/Failed are terminal states. When a subscription enters one of these states, the user must repurchase the subscription to activate it again. The user isn’t entitled to use the services in these states.
- When a subscription is Canceled, the
expirationTimeis updated with the date and time of the cancellation. - The ID of the subscription remains the same during its entire lifetime. It doesn’t change if the auto-renew option is turned on or off. If a user repurchases a subscription after reaching a terminal state, a new subscription ID will be created.
- The ID of a subscription should be used to execute any operation on an individual subscription.
- When a user repurchases a subscription after canceling or discontinuing it, if you query the results for the user you’ll get two entries: one with the old subscription ID in a terminal state, and one with the new subscription ID in an active state.
- It’s always a good practice to check both recurrenceState and
expirationTime, since updates torecurrenceStatecan be delayed a few minutes (or occasionally hours).
