Redeemable codes configurations for both iOS and Android on a Flutter app.

  • 8 September 2023
  • 2 replies

Badge +1

I've developed a Flutter app tailored for both Android and iOS platforms. Within the app, we've implemented a subscription mechanism utilizing RevenueCat to manage our in-app subscriptions. One of our primary goals is to provide our users with a seamless experience, such that their subscription status remains consistent across multiple devices or platforms. To put it simply, if a user subscribes on an Android device and later logs into their account on an iOS device, their subscription status should be synchronized, reflecting their active subscription.

With this intent in mind, we've configured RevenueCat to utilize a custom user identifier, specifically using the user's Firebase authentication ID. We believed that this would facilitate the synchronization of subscription status across platforms.

Our next endeavor is to introduce promo or offer codes into our application. These codes, when redeemed, should be tied directly to a user's account, ensuring they benefit from the promotion regardless of the platform they're on.

Given this context, I have a couple of queries:

  1. Is our decision to use the Firebase authentication ID as a custom identifier in RevenueCat the optimal approach for our goal?
  2. How can we implement the redemption of promo codes in such a manner that they are tied to the user's account and their associated subscription status is correctly updated and synchronized across devices and platforms?

If our current setup with custom IDs is not the ideal solution for synchronized cross-platform subscriptions, could you recommend an alternative strategy? Our main objective is to ensure users have a consistent experience, especially concerning their subscription status and redeemable codes.

Thank you for your assistance

2 replies

Userlevel 4
Badge +6

Hey @Zahra ,


Your current implementation of using custom ID’s would be the best way to have the granted subscription persist across different platforms and devices. As long as the user must log in first so you are able to verify that they are on that same ID on their different devices, if they log in to an account with that RevenueCat ID that was granted a promotional entitlement, that will be on unlocked on the other device that they log into with the same ID. 


For more information on setting up promotional offers in the store(which we support) we have some useful documents here. Any subscription made with these along with how you are identifying users will be made available on that other device that the user logs in on. 


Hope that helps! 



we have the same problem and the answer doesn't really explain how to set up promo codes. For example, when I redeem a code in ios, how does revenuecat connect that code to the correct custom ID? We also use the function "presentCodeRedemption" but that only shows the ios redemption screen and nothing happens after redeeming the code. 

We would prefer to implement our own codes for test periods and activate the user via api access, but this is not allowed according to apple guidelines. So there must be a solution for this?