Current Plan Setup

List customer subscriptions

To show the customer all their subscriptions use /customers/:customerId/subscriptions method.

You will get all the details, including the next payment price, period, payment method, offer title etc.

This endpoint will return all active and cancelled subscriptions.


Current plan card - MediaStore SDK

A subscription purchased via In-Apps cannot be managed in MyAccount, as it may cause unpredictable behavior. In such a case, we recommend showing information about a payment method and hiding options to unsubscribe and apply a coupon. See the example below.


Subscription bought via In-App - MediaStore SDK

Update customer subscription


This applies to both un-subscribe and re-subscribe the subscription

Once you listed all subscriptions, you can enable the customers to unsubscribe or resubscribe. For both of these cases use /customers/:customerId/subscriptions.

Apply customer survey

You can also apply a customer survey to find out why the customer is unsubscribing. Attach a “reason” from survey cancellationReason to collect this data (you will see them in the subscriber retention dashboard. You can also see cancellation reasons in the Subscription Report section in the dashboard.


Survey - MediaStore SDK

Apply coupon on customer subscription

Once all customer's subscriptions are listed, you can apply a coupon to a selected one. You can do it by using /customers/:customerId/subscriptions/:subscriptionId endpoint.


Apply coupon - MediaStore SDK

Subscription switch

Customers can change their plan to other defined plans thanks to the Subscription Switch feature. This feature can be used to upgrade or downgrade subscribers on the web from one subscription plan to another.


Proper configuration is required in the Dashboard.

The Broadcaster has to define possible upgrades/downgrades for a plan in subscription switch settings.
The hierarchy should be clearly defined which plan can be upgraded/downgraded to which one.

Step-by-Step Guide



  • If you're using MediaStore SDK components, you can see the example look and feel here.
  • If you have your own “My Account” implementation and use only our API endpoints, the actual look and feel depends on your implementation.

For more information on the two options see the Quick Start section.

Follow the steps below to change a subscription plan:

Step 1: List Possible Switch Options

Call this endpoint: /customers/:customerId/subscription_switches/:offerId/availability to display "change plan" options to a customer.

Remember that switches can be unavailable for customers temporarily or permanently.

For example, a switch is unavailable if a plan is not supported in a customer’s country. Or if a customer is at the end of the billing cycle for their current plan and the payment has already started - then it needs to be finished before upgrade is possible.

The list of possible cases is presented in API Reference.

Step 2: Select and Request a Switch

When a customer chooses which plan he/she wants to switch to, use endpoint /customers/:customerId/subscription_switches/:offerId to request a switch.

Subscription switch is an asynchronous process and it may take a while. The switch will happen as per your switch settings.

Immediate switch

The switch may be immediate - when the switch settings allow the customer to get access to the new plan instantly.
In such a situation when the customer confirms the change to another plan, he/she will see the new plan after returning to plan details.

Deferred switch

If the subscription switch is deferred - the subscription plan and access rights change when the subscription renews. Then a customer may still change his/her mind before the actual switch takes place.

In such a situation when the customer confirms the change to another plan, he/she will see the new plan after returning to plan details, but there should be a Stop switch button available as the switch is pending.

Pending switch

“Pending” is the status of the subscription switch (upgrade or downgrade) that represents a customer’s will to change his/her subscription plan. It is the status between the subscription switch request and the actual switch processing.

API endpoints are provided for fetching details about switches and managing them.

Detecting a pending switch

Information about a pending switch is present in the following endpoints:

Their responses include the pendingSwitchId parameter if they have a pending switch.

Fetching the list of requested switches

You can fetch detailed information about switches with the following endpoints:

Managing pending switches

You can change a pending switch only if it is not being processed yet (when payment authorization has not been made yet).

You can manage a pending upgrade or downgrade using this endpoint:

Currently it supports the cancelled status so you can only cancel a pending switch.


Not a MediaStore SDK user?

If you’re not using MediaStore SDK, but you would still want to use the Subscription Switch feature, or you want to use it for marketing campaigns, please check out here API Reference. You can use it with a custom front-end. Please also remember that you need to configure switch options in the Dashboard (see Prerequisites).