Create subscription groups

A subscription group contains multiple subscriptions with different access levels, prices, and durations so users can select the option that best fits their needs.
A user can only buy one subscription within a group at a time.

Configure a subscription group on IAPHUB

In order to configure a subscription group you must first create it on IAPHUB.
Give the group a name (can be edited at any time) and add the products to the group.

Configure a subscription group on Itunes

On itunes each subscription you offer must be assigned to a subscription group.
The order is very important because it'll determine if the subscription replace is an upgrade/downgrade or crossgrade.

Subscription upgrade

The current active subscription is replaced immediately and the user receive a refund of the prorated amount of the previous subscription.
The Get user API route will return the new subscription in the activeProducts property and a subscription_replace webhook will be triggered.

Subscription downgrade

The new subscription will be replaced at the next renewal date.
The current active subscription available in the activeProducts property of the Get user API route will return the new product in the subscriptionRenewalProduct property.
On the renewal with the new subscription the subscription_replace webhook will be triggered.

Subscription crossgrade

A subscription crossgrade depends on the duration of the new subscription.

  • If the new subscription has a different duration it'll be the same as a subscription downgrade, the new subscription will be replaced at the next renewal date.
  • If the new subscription has the same duration it'll be the same as a subscription upgrade, the new subscription will be replaced immediately.

Configure a subscription group on Google Play

On Android a subscription replace is configured on the client side, there is nothing to do on the Google Play Console.
React-native-iaphub will trigger a subscription replace automatically if an user has an active subscription and is trying to buy a new product of the same subscription group.

The default behavior replace the subscription immediately and the remaining time will be prorated and credited to the user. It is possible to configure react-native-iaphub to use a different proration mode.

The Get user API route will return the new subscription in the activeProducts property and a subscription_replace webhook will be triggered.