Get help with anything related to RevenueCat.
Recently active
HiFor the past weeks i have been having a serious with trying to purchase my app's subscription that i set with RevenueCat. I have followed all the documentation steps required to set up subscription in my app, but i still get get an error saying purchase failed due to configuration error and also saying i should contact customer support. My product ID from google play console is correct that i put in RevenueCat and everything in Google play consoleThe problem happens with my android app when i test it in internal testing using google play console. Please do note that it is an app i created using expo react-native.. I would really like help A.S.A.P.
For some reason today I am unable to complete any purchases in the Simulator. Offerings are retrieved successfully from RevenueCat - as can be seen in the screenshot. However when purchase() is called I get the following popup.I am using a Storekit configuration file, and this worked just fine previously. My app was rejected yesterday due to 2.1.0 Performance: App Completeness - as they couldn’t even load this screen in the review (maybe because the subscriptions are still in review?)All my agreements are active, everything looks good on RevenueCat side but this just wont work. I can’t test using a real device because I don’t have an iPhone so thats not possible. Releasing Google Play was such a painless experience, this in comparison is a nightmare.I am not sure what to do here? Do I wait for the subscription review to pass before trying again?
Hi everyone,We’ve been getting a handful of reports from iOS users who sign up for a free trial, but are charged the full amount immediately. Interestingly, in the App Store purchase confirmation screen it also says they’ll be charged again in 7 days, which is obviously unexpected.For most users, trials and paywalls seem to be working normally, so this doesn’t appear to be a widespread or consistent issue. It started recently (within the past week or two), and so far seems to be iOS-only.I’m wondering if anyone else has seen similar reports or has insights into what might cause this... maybe a temporary Apple billing or eligibility glitch?Thanks in advance for any ideas or confirmation from others seeing the same pattern.— Simon
I’ve created an Offering with 3 packages, each of which has a Test Store product in it.In the app, I’m initializing using the Test Store API key.When retrieving the Offering details, I’m not seeing all three packages - only two of them. The missing one is for a subscription product, while the ones I’m seeing are non-consumables. However, I’m not sure that this is relevant.Is there any cacheing taking place, or delay in publication of updates to the product catalogue? I’ve tried restarting the app and also waiting several hours, but still no joy.The Packages and Products look OK, but could I be missing a vital configuration item? Any pointers would be appreciated.Note that I’m using the Maui.RevenueCat.InAppBilling abstraction, as this is in a MAUI app.
Problem DescriptionI'm experiencing Error 23 during Apple's App Store review process and need clarification on the proper approach for handling paywalls when subscription products are still pending approval.Current Situation:Products in App Store Connect: Status = "Waiting for Review"RevenueCat Configuration: Correctly configured with valid API keyBundle ID: Matches exactly across Xcode, App Store Connect, and RevenueCatProducts: properly configuredXcode Error: “ERROR: 😿‼️ There is an issue with your configuration. Check the underlying error for more details. There's a problem with your configuration. None of the products registered in the RevenueCat dashboard could be fetched from App Store Connect (or the StoreKit Configuration file if one is being used). More information: https://rev.cat/why-are-offerings-empty” Iphone error: The Issue:Apple reviewers report they cannot successfully sign in because:User signs in with Apple ✅Success screen appears ✅User clicks "Let's get started
I’m looking at adding Customer Center to our app. When you show Customer Center for a user that doesn’t have an active subscription there is a “Contact Support” button that is visible, however that button is not present for users who do have an active subscription. How can I get the “Contact Support” button to show up in Customer Center for users that do have an active subscription? Seems like this would be something you would want users to be able to do even if they have a subscription for issues not addressable directly by the Customer Center UI.
Superwall has an extremely powerful feature that boosts the revenue significantly: When a user rejects the native store subscription modal, it sends an "abandoned cart" event that allows you to trigger opening another paywall with a downsell offer. It allows you to recover many users and increase revenue drastically.
Hi RevenueCat Team,I’m using RevenueCat in my Flutter app for Apple in-app purchases. I noticed the following behavior: In RevenueCat (and when fetching offerings), the price is displayed in USD. When I actually make a purchase, Apple converts it to my local currency (AUD) and charges correctly. I understand that Apple handles the final purchase currency, but I’d like the price displayed in my app to reflect the localized currency rather than USD.Currently, I’m fetching the product and showing the price like this:final Offerings offerings = await Purchases.getOfferings();monthlyPrice.value = offerings.current?.monthly?.storeProduct.priceString ?? "";Is there a recommended way in RevenueCat to display the localized price (AUD) in Flutter so it matches what the App Store will charge?Thanks for your guidance!
Same code, works on iOS, not working on Android."react-native": "0.79.5""expo": "~53.0.20"Android:“activeSubscriptions": []iOS"activeSubscriptions": ["hey_roar_cinema_pass", "hey_roar_creator_pass", "hey_roar_unlimited"]
I’m attempting to make my flutter app available on MacOS as well as iOS and currently use the RevenueCat paywalls with the purchases_ui_flutter package.Unfortunately the purchases_ui_flutter package does not support MacOS, is there a plan to add RC paywall support in the near future? If not is the recommended way to continue using RC paywalls for MacOS to build via a Catalyst app instead of direct MacOS?
really love using revenue cat but there is one foundational feature missing which is super annoying for us. we are using it in our native app and our nextjs web app and created separate offerings. we need discount codes to set up our partner program and hand out special discounts in email campaigns. as i see it, this doesn’t exist yet which is a dealbreaker for any serious b2b company. so requesting you guys to add this asap. the mvp of this would be just linking discount codes to a given product. stripe offers this as well so api changes shouldn’t be so hard.
In my app’s onboarding flow a user can claim a referral code, which changes their offering via WinWinKit. On the next step of onboarding purchase screen is shown, but the old offering is shown.I figured that offerings are loaded and cached at initialization of the SDK, but why can’t I clear the cache or force load them?I tried using invalidateCustomerInfoCache and checked its implementation, but it won’t do the thing.Also found similar questions in the community, both marked as resolved, but can’t find a solution for myself.
I only recently updated Xcode to 26.0. While adding some features to my app, everything was running fine in the simulator. But when I tried to run it on an external device running iOS 26, I start getting this error:Concurrency is only available in iOS 13.0.0 or newerI’ve tried to Clean Build Folder to no avail.Now when trying to run in simulator I’m getting this error.Stored properties cannot be marked potentially unavailable with '@available' Any suggestions?
im getting Associated Entitlements but im not getting Associated Offerings in revenue cat subscriptions android app i got entitlement already but not the offerings!! while on ios it is working fine!im stuck here from few weeks couldnt get how to do?this is what i face in app[RevenueCat] ₹!! Error fetching offerings ⁃ PurchasesError(code=ConfigurationError, underlyingErrorMessage=There are no products registered in the RevenueCat dashboard for your offerings. If you don't want to use the offerings system, you can safely ignore this message. To configure
Hi, so currently I have a few TestFlight users who have subscribed to my app through the sandbox. When I push the app to the iOS App Store, I would like these same users to retain their memberships.Is this the default or do I have to do something behind the scenes to allow this to happen?Thanks!
If I am not mistaken, the GDPR requires apps to delete personal data after a set period of inactivity (e.g. 1 or 2 years), because of the Storage Limitation principle. I wonder how other apps handle this, and if this means I would need to track users with an in-app user_id, and save each time they open the app on a backend to delete them after being inactive for 1 or 2 years.
Hi everyone,I’m currently integrating RevenueCat with Firebase Analytics and Google Analytics 4 (GA4). The setup seems fine, but after checking in Firebase Analytics and GA4, I don’t see any RevenueCat events coming through.A couple of questions: Is there a list of the event names that RevenueCat sends to Firebase/GA4? How long does it usually take for events to appear after integration? Is there any specific configuration required on the Firebase or GA4 side (other than linking the SDKs)? I couldn’t find any documentation that clearly lists which events RevenueCat pushes to Firebase/GA4, so any guidance or experience would be appreciated.Thanks in advance!
I’m hitting what looks like a gap in the RevenueCat v2 API and wanted to sanity-check with others + give RC more visibility.Context I rely on canonicalizing App User IDs across anonymous IDs and migrations. The Dashboard correctly shows: Original App User ID All App User IDs (aliases) Webhooks also include original_app_user_id and a full aliases[] array. Problem (v2 API) GET /v2/projects/{project_id}/customers/{id} returns a minimal customer object. No original_app_user_id No aliases Calling GET /v2/projects/{project_id}/customers/{id}/aliases with a non-canonical alias often returns only that same ID (i.e. not the full alias graph the Dashboard shows). Result: the Dashboard and webhooks have the correct graph, but the v2 “Get customer” read doesn’t expose it, and the aliases endpoint behaves as if it’s scoped to the ID you queried rather than the canonical grouping. Expected Either GET /customers/{id} includes original_app_user_id (and optionally aliases), or
Hey, I have implemented the RevenueCat with my Expo / React Native app. Everything is working correctly except when I invoke the paywall, instead of my published one - I just see the default RevenueCat paywall. I checked logs and it looks like this: 09-27 21:38:21.900 3704 3704 E [Purchases]: Missing string localization for property with id: 'VFL_T8xgne', for locale: 'en_US'.09-27 21:38:21.900 3704 3704 E [Purchases]: Missing string localization for property with id: 'VFL_T8xgne', for locale: 'en_US'.09-27 21:38:21.900 3704 3704 E [Purchases]: Missing string localization for property with id: '0B1RuOuUwn', for locale: 'en_US'.09-27 21:38:21.900 3704 3704 E [Purchases]: Missing string localization for property with id: '0B1RuOuUwn', for locale: 'en_US'.09-27 21:38:21.900 3704 3704 E [Purchases]: Displaying default template due to validation errors.09-27 21:38:21.913 3704 3704 W [Purchases]: Could not process value for variable 'sub_offer_duration' for package '$rc_annual'.
My wife opened her installation of the app we are developing yesterday and was directed to the paywall page, even though she has an active subscription. I looked at it, very puzzled, and then decided to try the “restore” link in the paywall screen. After a couple of seconds a dialog box came up indicating the restore was successful and after dismissing it the app functioned as expected. My understanding was that the restore link is only necessary when installing the app on a new phone or other similar situation. This occurred under “normal” conditions. It was very confusing to her and I am worried about users encountering this who are not married to one of the developers. Can someone explain to me why this might occur and if there are any steps I can take to avoid it from happening under “normal” circumstances? Thank you.
I am building a Flutter app.I have a subscriptions offering which includes subscriptions.I also have a ‘credits’ offering which has one time purchase products which gives users different amount of credits.Is my understanding correct that I can create 2 paywalls for these 2 offerings? Can I add a link in these a paywalls which takes the user to the other paywall? E.g. a button saying “purchase credits w/o subscription” and “subscribe for better deals”. How can I do this?Thanks a lot for your help!
I’m facing an issue with RevenueCat integration in my app. On iOS Simulator, using StoreKit configuration, the purchase flow works correctly when I tap the purchase button. On a real iOS device (via TestFlight), tapping the purchase button does nothing — there is no response or error shown. On Android (both emulator and real device), everything works fine. So the problem only occurs on a real iOS device through TestFlight.Has anyone experienced this before? Why would the purchase button not trigger anything on TestFlight, even though it works in the simulator?Any guidance or suggestions on what I should check for iOS would be greatly appreciated.
We are implementing a gift code redemption feature for our app, integrating with Airtable for code validation and RevenueCat for entitlement management. The backend is built with Strapi (Node.js), and the app is Kotlin Multiplatform (Android & ios). We have two plans monthly and annual. **The Flow:** 1. User redeems a gift code in the app 2. App calls our backend `/api/grant-entitlement` endpoint 3. Backend validates the code in Airtable 4. Backend attempts to grant an entitlement via RevenueCat API **The Problem:** We are consistently encountering a **500 Internal Server Error** from our backend (`dev-api.myatlas-health.com/api/grant-entitlement`) when it tries to call the RevenueCat API. **Debugging Steps Taken:** 1. Initially attempted to use RevenueCat v2 grant endpoint with `expires_at` 2. Discovered that RevenueCat does not have a v2 grant endpoint (404 error) 3. Switched to RevenueCat v1 promotional endpoint: `/v1/subscribers/{userId}/entitlements/{entitlementId}/p
We are implementing a gift code redemption feature for our app, integrating with Airtable for code validation and RevenueCat for entitlement management. The backend is built with Strapi (Node.js), and the app is Kotlin Multiplatform (Android & ios). We have two plans monthly and annual.**The Flow:**1. User redeems a gift code in the app2. App calls our backend `/api/grant-entitlement` endpoint3. Backend validates the code in Airtable4. Backend attempts to grant an entitlement via RevenueCat API**The Problem:**We are consistently encountering a **500 Internal Server Error** from our backend (`dev-api.myatlas-health.com/api/grant-entitlement`) when it tries to call the RevenueCat API.**Debugging Steps Taken:**1. ✅ Initially attempted to use RevenueCat v2 grant endpoint with `expires_at`2. ❌ Discovered that RevenueCat does not have a v2 grant endpoint (404 error)3. ✅ Switched to RevenueCat v1 promotional endpoint: `/v1/subscribers/{userId}/entitlements/{entitlementId}/promotional`4. ❌
We are seeing very strange issue in our app where peopple are starting trial of $4.99 product and getting charged for $199 yearly product. We are not able to understand this issue. Is this superwall issue or apple? here is the video explaination - https://www.dropbox.com/scl/fi/9pbt5mvhg0eel46kchwx2/IssueRevenue.mov?rlkey=vlgi5ro274m9u8q0kavlkqm3y&st=yce7hqub&dl=0
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.