Get help with anything related to RevenueCat.
Recently active
I have this scenario that I am trying to avoid as it is very confusing how to even manage such a subscription:User1 logs into the app (app_user_id is configured) User1 purchases the 1 month subscription User1 logs out User2 logs in (new app_user_id is configured) User2 tries to purchase the 1 month subscription and gets “already purchased” error BUT if User2 tries to purchase the 3 months subscription, iOS allows it (and treats it as product change?)Will this mean same iOS account has actually made 2 purchases for 2 different users or now the lines are crossed and the first user has been upgraded?FWIW, I have revenue cat configured to now allow transfers since the entire app is behind a login and each user should have their own subscription per one account.
I am implementing a subscription-based app with monthly and yearly plans. I've set up free trials for both plans under Introductory Offers in Apple Store Connect. However, I'm unsure how to integrate these free trials into my iOS app using RevenueCat.Here are the specific points I need help with:How do I configure RevenueCat to recognize and handle the free trials I've set up in Apple Store Connect? Are there specific methods or API calls in RevenueCat I should use to verify the free trial period for a user? Do I need to make any additional configurations in RevenueCat or my app's code to ensure the free trial works correctly for both subscription plans?Any examples, documentation references, or guidance would be greatly appreciated.
I use Paywall(Beta) . I want to translate into 20 languages, but I'm stuck with the character limit. How can we fix this?localized_strings: must be less than 4000 characters
Hi, I’m using RevenueCat with a subscription-based iOS app. In TestFlight, I’m encountering a problem: a single Apple ID is used on two different devices, but the subscription restore isn’t working on the second device. Both devices are logged into the same Apple ID and the same RevenueCat user setup. Has anyone experienced this issue, or know what might be causing the restore to fail?
Hello RevenueCat Team,I hope this message finds you well. I wanted to confirm if RevenueCat's receipt validation currently supports the SHA-256 algorithm, as Apple is transitioning away from the SHA-1 intermediate certificate for App Store receipts starting January 24, 2025. https://developer.apple.com/news/upcoming-requirements/?id=01242025aCould you please let me know if RevenueCat's system is already compatible with this change, or if there are any updates required on our end to ensure a seamless transition?Thank you for your assistance.Best regards,
I set up the paywall and successfully bought a subscription. In revenue cat dashboard I can see it being active but i can’t see it in the manage subscription settings on my device.I’m not using a sandbox account as I’m using my own personal device to test and I haven’t logged out from it. But the purchase says that it’s a test one, i guess that’s because i’m installing the app via xcode? Any ideas as to why i can’t see it in the subscriptions list?And also in this post it says that the subscriptions durations are greatly reduced but i see the subscription that i’ve made will be renewed after a year, like normal. Is that because i haven’t made the purchase through a sandbox account? Thank you
We have an Android and IOS app with a “Pro” subscription product with a monthly and a yearly billing cycle.For now, I’ll talk through the IOS setup: We have a Subscription Group called Pro and within it, we have the Subscription Products Monthly and Yearly We have currently configured an introductory offer for Monthly: 1 week free trial Say we also want to configure a 50% discount for Monthly, so: New user gets a 1 week free trial Then 50% discount for 6 months Then regular price According to Apple docs, it sounds like this this isn’t possible:Although you can create an introductory offer for each subscription product in App Store Connect, each person is only eligible to redeem one introductory offer per subscription group.andApp Store Connect allows you to set an introductory offer for each subscription product in App Store Connect. You can have multiple offers in each subscription group. New and returning customers are only eligible to use one introductory offer per subscrip
Hello ! 🙂We recently implemented the ‘Data Export Version 5’ to replicate key graphs in our Metabase data visualization tool. While we've successfully recreated Revenue and LTV graphs cohorted by the date of first purchase—using data consistent with RevenueCat—there’s an issue when attempting to cohort by the installation date (using the first_seen_time data).Could you confirm whether RevenueCat's graphs for installation date cohorts are indeed based on the first_seen_time field? It’s puzzling why our data doesn’t align, and I’d appreciate any insights you might have.Thank you so much for your help!Best regards,Louis
useEffect(() => { const init = async () => { try { if (Platform.OS === "android") { await Purchases.configure({ apiKey: APIKeys.android }); } else { await Purchases.configure({ apiKey: APIKeys.ios }); } Purchases.setLogLevel(LOG_LEVEL.DEBUG); Purchases.addCustomerInfoUpdateListener((customerInfo) => { console.log( "CustomerInfo update received:", JSON.stringify(customerInfo, null, 2) ); updateCustomerInfo(customerInfo); }); await loadOfferings(); } catch (error) { console.error("Error initializing Purchases:", error); } finally { setLoading(false); } }; init(); // Cleanup function return () => { // Remove the listener when component unmounts Purchases.removeCustomerInfoUpdateListener(); }; }, []); // load offerings a user can purchase const loadOfferings = async () => { try { cons
I’m using Expo and implementing RevenueCat on my app for the first time, and it’s been frustrating. Even though I followed every step in the documentations, it seems like something’s wrong, but the worst part is that there’s no debug. When I try to console the offerings for the app, all I receive is this message: “Error: There is an issue with your configuration. Check the underlying error for more details.” And nothing else. I have absolute no idea of what to do. Inumerous YouTube tutorials, articles, the documentation, NOTHING seems to work. What can I do???
Hello there!We’ve been struggling with a user that has and loses its entitlements from time to time, with no reason. To fix it, we built our RevenueCat integration from scratch, because we upgraded different major versions too easily… and well, it sounded we were logging in too much, restoring purchases too much, etc.So during the debugging we arrived to this error:There was an unknown backend error. Error creating subscriber alias. Alias limit reached. (7255)In this GitHub issue in the iOS SDK we saw that the root problem is that you changed something in your backend that made a user not have more than 50 aliases.I don’t want to discuss if it’s a good decision or not, because maybe it is, but what should we do in case someone logs in, restores purchases, logs out, restores purchases, logs in, restores purchases, logs out, restore purchases… a lot of times? Eventually that user will create 50 aliases, but that’s a fair behavior, right?Or just a person that downloads the app 25 times, r
Hello there, Just a quick one, i’m using Thunkable and I linked it to RevenueCat. In the past i had issues acknowledging Google Play’s purchases and subscriptions, does RevenueCat does it automatically? Thank you very much
Currently, I am not a RevenueCat user.I use pure StoreKit2, to handle subscription and in-app purchase, without any issue.I also do not have a server, to handle any purchase related thingy.However, due to the frustrated high approved refund rate, I am interested in RevenueCat’s offering - https://www.revenuecat.com/blog/company/handle-apple-refund-requests-automatically/But, I wish to keep my existing StoreKit2 untouched, because they are working without issue.My sole goal is to able to handle CONSUMPTION_REQUEST, to reduce refund rate. I am only concerning on the upcoming new users, if we ever integrating RevenueCat. I am not concerning existing users. Hence, can I skip this step, as it seems complicated to me - https://www.revenuecat.com/docs/migrating-to-revenuecat/migrating-existing-subscriptions. Is it as simple as having this line of code? func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsK
HelloI have integrated in-app purchases for the application via Renevuecat with React Native Expo. In debug mode, my renevuecat packages are coming without any problems on the simulator and I can buy them. I am getting the packages using getOffering(). This issue is present on both Android and iOS.But when I publish my mobile application to production, the packages are not coming. Can you help me with this?Expo : 51.0.38React Native : 0.74.5React:18.2.0Thanks in advance
I'm working with flutter, using an apple sandbox account. According to the logs, everything seems to be working fine.PROBLEM - 1But after clicking the paywall and logging in the sandbox credentials, I get this error 2: there was a problem with the app storeHow do I resolve this?PROBLEM - 2In the iPhone emulator, after clicking on paywall, the Apple login modal works, but when I create a build for TestFligh on my iPhone, after clicking on paywall, nothing happens. What could be causing this?PROBLEMA - 3After clicking on the paywall to purchase a plan, shouldn't the package purchase mode automatically open in the simulator? All that appears to me is a modal to log in with apple credentials. flutter: 🏠 DEBUG: Starting HomeScreenflutter: 🛍️ DEBUG: Checking premium accessflutter: 🛍️ DEBUG: Checking if RevenueCat is configured...flutter: 🛍️ DEBUG: Do you have premium access? falseflutter: 🛍️ DEBUG: Entitlements active: {}flutter: 🛍️ DEBUG: All entitlements: {}flutter: 🛍️ DEBUG: Search
I am showing a discount paywall, after the user cancels the first paywall, but for some reason, It works well while testing, while in test flight, but once approved by apple in production it throws the below error RevenueCatUl.PaywallError 0The RevenueCat dashboard does not have an offering with identifier'pro_40_off_paywall'.also shown in the image.code - try {const secondPaywallResult = await RevenueCatUI.presentPaywall({offering: {identifier: 'pro_40_off_paywall'}});Even thought “pro_40_off_paywall” exists and works in dev and in testflight, hope someone can please help.
Hello,I just want to ask1. What are the rate limits of the REST API?2. Is it ok if I call the REST API for every webhook received or is that unnecessary?Thank you! :)
Hey,I suddenly started getting 500 errors from the grant promotionals API. I’m running a promotion on my app right now that all new signups get free access until January 2. This of course is suddenly broken.The response I’m getting from RevenueCat is{"code":7110,"message":"Internal server error."} I of course want to figure out what the problem is now, and not 48 hours from now when support finally gets back to me.
I'm using presentPaywallIfNeeded to call a paywall in Flutter. But I want it to be locked, user cannot swipe to close. How do I do this?
I need to create discounts of my app for a program affiliate. on iOS i can create a promo code that is a Discounted % of my base price.it appears on Android, their “promo” code is only Free. The only option is to create an “Offer” inside the subscription base plan, but I don’t want to do this.So, is it possible to create a PromoCode on Android that is a discount, not a free code?
Hello,I’m currently testing the restore purchase functionality in my app, and I’ve encountered an issue where TestFlight testers receive a true response when triggering restore, even though they have no purchase history.Details: In Sandbox, it works correctly. In TestFlight, the restore function returns success (true) even when no purchases were made. Is this behavior specific to TestFlight? Will this issue persist in the production environment, or is it safe to assume it will work correctly in live deployment?
Hi, Is it possible to add a download link for the app in the email that is sent to the user after the payment?If not, is it something in your roadmap? Thanks!
Hi there,I’m trying to build a subscription flow with some limitations for my plans. Currently i have the code from my Stripe implementation where i have set metadata for each product.My Silver plan can save up to 10 things per month and my Gold plan can save up to 100 things.I see that you have implemented the ability to add metadata per in Offerings but not in Products. Do you plan to add metadata to products as well or is there any other workaround to achieve what i mentioned above? Thanks!
On iOS, my paywall works just fine. So that’s proof that my product settings and paywall settings are all setup correctly for App Store. On Android, I followed the documentation and checklist - three times over - to make sure each step is followed to the letter. I have verified my google ↔ RevenueCat server-side connection is setup correctly, by sending test messages successfully from google. My subscription products in Google Play are in active status - which I’ve “imported” into RevenueCat. I have a attached entitlements, and created one offering with packages in RC correctly (both Apple App Store and Google Play Store products in each package - and all that is working correctly in iOS). My app is in “alpha/closed” testing stage (and approved by google) - when I download the app on a real device, and run it, I still get the following error: "Error 23: There is an issue with your configuration. Check the underlying error for more details." In case you are wondering how Google a
Hello,I am working on integrating webhooks to store and update users' subscription statuses on our server.As suggested in the official documentation (https://www.revenuecat.com/docs/integrations/webhooks#syncing-subscription-status), We’re implementing a system where our server listens to webhook events such as INITIATE_PURCHASE and RENEWAL.Upon receiving these events, we call the RevenueCat V2 Subscriptions API to retrieve the latest subscription status stored in RevenueCat and update our server data accordingly.However, in the case of the RENEWAL event, when we call the V2 Subscriptions API immediately after receiving the webhook event, the response often contains outdated information. It seems that we need to wait at least several seconds before calling the API to retrieve the latest data.To synchronize subscription statuses in an idempotent and robust manner, I agree with the documentation’s suggestion to rely on REST API data rather than directly using the information from webhook
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.