Need help with implementing promo codes for subscription discounts

  • 7 June 2023
  • 1 reply

Badge +1

I'm currently facing an issue with implementing promo codes in my app. Currently, my app has only one subscription, but we would like to provide different "promo codes" that offer discounts on the subscription based on the code entered.


After reading the documentation on promo codes for Android, I discovered that the Play Console promo codes don't exactly meet our requirements. They only allow for providing free trials to users and don't directly support subscription discounts. However, I came across the "subscription offers" feature and had an idea of creating a subscription offer with the criteria "developer determined." This way, I could create an offer with a discount and maintain a list of valid codes within the app. When a user enters a valid code on the app paywall, the offer with the discounted price should be applied to their purchase.


With this plan in mind, I created a developer-determined offer yesterday. Today, I'm trying to find a way to retrieve that offer within the app, but I'm unsure of how to do it. Currently, I retrieve the subscription using Purchases.getOfferings() and access the subscription details from the availablePackages property to display the information to the user. However, I noticed that the discounts property in the product object inside the package is null. Is this where the offer should be displayed?


I'm a bit confused about the whole "promo codes" topic. Is the approach I'm taking the right one, or is there an easier way to achieve this? Additionally, despite mentioning that the promo codes from the Play Console wouldn't work for us, I attempted to create a custom promo code with a free trial of the subscription just to test it. The promo code is now live, but after using purchasePackage() and reaching the Google Play paywall, there is no dropdown to enter any redeemable code. I'm not sure if this information is helpful in addressing my question.


Thank you for your time, and I hope someone can assist me with this issue 🙂

1 reply

Userlevel 4
Badge +8

Hi, sorry for the delay in answering this, are you still having trouble?

I would recommend using multiple offerings to achieve this. With RevenueCat, you can create an offering that contains the discounted subscription product and then display this paywall to the user when they enter your code. So you’d want to create a separate discounted subscription product and then can place this into a new offering. Then once the user purchases this product, you can then switch their paywall back to the old one.