The first ever step-by-step playbook to building & scaling subscription-based apps 👉 Get your copy


Upgrade & Downgrade Subscriptions on App Store and Play Store

Allowing users to upgrade and downgrade subscriptions will improve the retention and the UX: in this article we will explain how to handle it on iOS and Android
Marco Pifferi
February 2, 2023
glassfy blog hero image


Apple allows to group a set of subscriptions that unlock the same feature in a Subscription Group.

The subscription group introduce the following rules:

  1. A subscriber can only have one active subscription within a Subscription Group.
  2. A subscriber can only use an introductory offer of any product in a group once: eg. a free trial can only be purchased once.

The subscriber will be able to move among suscriptions of the same group in the AppStore app: when that will happen Glassfy automatically update the permission status of the subscriber.

To programmatically change (upgrade/downgrade) the subscription the Glassfy purchase SDK API can be used: simply purchase the new SKU.

The app store will automatically convert the existing subscription to the new SKU and Glassfy will automatically update the permission status of the subscriber.


Android does not have the concept of Subscription Group (Google Billing V4: upgrade and downgrade are working differently with V5 that Glassfy will support in 2023).

To upgrade or downgrade a subscription in Android the purchase SDK API needs two parameters: the SKU to upgrade and the new SKU:

val skuToUpgrade = SubscriptionUpdate(currentSkuToUpgrade)
Glassfy.purchase(activity, newSku, skuToUpgrade) { result, error ->

The subscriber permission object contains an array of AccountbleSku that can be used to determine the current subscription to pass to the purchase API.

Read More