Upgrades and Downgrades

Learn how to manage subscription upgrades, downgrades or crossgradse

For iOS Apps

Users can choose to upgrade, downgrade, or crossgrade between subscriptions if they want and do it directly on the App Store, and nothing is required from developers to support upgrades, downgrades, and crossgrades for iOS subscriptions in their apps.

For Android Apps

For Android apps, app developers can decide to support upgrade, downgrade or both in their apps by selecting their upgrade policy via Deepwall. You should use the setProductUpgradePolicy method to set the upgrade policy for the first time and you can use the updateProductUpgradePolicy method for updates on the policy.

Deepwall by default uses DISABLE_ALL_POLICIESunless a different policy is selected.

Once a policy has been set, that selection will remain valid until it is updated again

Set Upgrade Policy

You should use the setProductUpgradePolicy method to set the product upgrade policy for Google Play apps.

DeepWall.setProductUpgradePolicy(
  prorationType = ProrationType.IMMEDIATE_WITHOUT_PRORATION,
  upgradePolicy = PurchaseUpgradePolicy.ENABLE_ALL_POLICIES
)

Deepwall upgrade policy types for Google are:

Upgrade Policy

Description

ENABLE_ALL_POLICIES

All policies are open. Users can upgrade or downgrade their products

DISABLE_ALL_POLICIES

All policies are closed. Users can not upgrade or downgrade their products.

ENABLE_ONLY_UPGRADE

Users can only upgrade their products

ENABLE_ONLY_DOWNGRADE

Users can only downgrade their products

Google Proration Types are:

Proration Type

Description

DEFERRED

Replacement takes effect when the old plan expires, and the new price will be charged at the same time.

IMMEDIATE_AND_CHARGE_PRORATED_PRICE

Replacement takes effect immediately, and the billing cycle remains the same.

IMMEDIATE_WITHOUT_PRORATION

Replacement takes effect immediately, and the new price will be charged on next recurrence time.

IMMEDIATE_WITH_TIME_PRORATION

Replacement takes effect immediately, and the remaining time will be prorated and credited to the user.

For detailed information about Proration Types, you can see this document https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.ProrationMode

Once a policy has been set, that selection will remain valid until it is updated again

Update Upgrade Policy

You can use the updateProductUpgradePolicy method to update the product upgrade policy within the app workflow before requesting paywalls.

DeepWall.updateProductUpgradePolicy(
    prorationType = ProrationType.IMMEDIATE_WITHOUT_PRORATION,
    upgradePolicy = PurchaseUpgradePolicy.ENABLE_ALL_POLICIES)

Important Note

You need to set/update upgrade the policy before requesting a paywall for the selected upgrade policy change to take place for the purchases from the opened paywall.

You can also check out the following guide for troubleshooting the most common errors while setting up the in-app purchases and Deepwall SDK :

Last updated