Discussion and help from anything related to RevenueCat.
Recently active
After integrating RevenueCat into Unity, I conducted a test using a sandbox account. After logging into a sandbox account with VIP status in the game, when I switched the account in the iOS background, the game still showed VIP status. My game does not have its own account; it's a mini-game. Is there a solution to this? Is this normal?
Hi RevenueCat community,I’ve seen the following question here about the ETA of Paypal as payment method to a flutter app.As this question points to an In-App-Purchase and with that to a different SDK I wanted to ask the same question for RevenueCat Web Billing. In the docs I can see that the current possible payment methods are credit card, google pay and apple pay. Stripe however is providing Paypal amongst many other payment methods. As RC Web Billing is using Stripe as payment gateway, I’m curious if there is a plan / ETA of adding Paypal as payment method to Web Billing as well. Best,Moritz
I have configured “Keep with original App User ID” as transfer behaviour which leads to binding of a subscription to a single userID.Now lets say user has bought the subscription while being logged into accountA, later at some point user uninstalls the app and logins with accountB in app, now playstore being the same, when user tries to subscribe again, the error will come: Product Already Purchased ErrorUpon triggering Purchases.restore or Purchases.sync, we will get RECEIPT_ALREADY_IN_USE, I want to show the user accountA details so user can log back in with correct account, however I can’t as revenue cat doesnt surface any usable info in above errors, like appUserId / receipt / token of the purchase from the previous account which I can query in my backend to fetch accountA details.What is the correct way here ?
Hi, I’ve built several RC paywalls. They display correctly on iOS, but not Android. I think this started yesterday during the outage, but the problem persists today. Maybe a part of your system hasn’t refreshed? See attached screenshot. That’s what the paywalls look like on Android. The products are correctly configured in Google Play, the Store Status is Published. The paywall is pulling the correct price. It’s really just the paywall design that’s not rendering. This is happening for several of my paywalls, but here’s an example: New Default (offerId 3231). Name of app is Brightmind Meditation. Associated email is toby@brightmind.comPlease let me know if you have any follow up questions. Thanks! Toby
Hello,Currently, I am considering deleting old records for "customers who are not on a premium plan" using a regularly scheduled batch process.At this time, in order to filter the target customers, I would like to obtain a list of "customers who have premium plan entitlements."With the current REST API, it is only possible to check the entitlements of one customer at a time. Considering rate limits, it is not realistic to perform this for all users.(https://api.revenuecat.com/v2/projects/{project_id}/customers/{customer_id} )Is it possible to achieve the above scenario using the current REST API?Or, do you have plans to develop this in the future?
I just migrated my in-app purchases on the Play Console to the new one-time purchase system, and payments on RevenueCat seem to work fine so far. However, after changing the price of the legacy-base purchase option (automatically created by Play upon migration) has no effect on the price shown in my RevenueCat Paywall. Clicking the purchase button does bring up the correct Google Play purchase popup and it shows the correct price, but the price in the Paywall remains unchanged.Also, there doesn’t seem to be a way to add the new one-time products in the revenuecat dashboard, which I thought would be the way to solve this problem. I appreciate any help!Thanks in advance.
For our particular requirements, we need to render custom variables that are passed in at run time in the app, during the Paywall display call.Ideal Paywall Content:--------------------------------------------------------------------------------------------------RechargeBalance: 0 8 Coins short[20 coins] [★ 50 coins] [100 coins] … etc PURCHASE button --------------------------------------------------------------------------------------------------Where the user’s current balance and how many coins short are displayed, and the ★ recommended token pack is auto selected.Will RevenueCat ever support this type of use case? Or is it possible to do that now in React Native?
I am running ASA campaigns but i want them to receive a completely different offer when they open the app than a user who organically downloaded the app. I cant see a way to target them in the revenucat dashboard, is this something that can be done via code?
Hey everyone 👋We’ve recently moved to RevenueCat, and I’m trying to rebuild one of the key analytics workflows we used before- analyzing Trials, LTV, and Refunds broken down by Media Source.In our setup, the app sends attribution data using the $mediaSource field, following the RevenueCat documentation.I can see that this value (e.g. Traffic Source) is correctly displayed in each Customer Details page — so the attribution data is definitely being passed and received.However, I’m running into two issues: I don’t see a “New Chart” (+) button anywhere in the Charts section, even though I’m on the Pro plan and have the Admin role. I can’t find any way to filter or segment existing charts by $mediaSource. I’ve already tried the usual troubleshooting steps (different dashboards, cleared cache, incognito mode, no ad blockers, different browsers, etc.), but no luck.So I’m wondering: Has anyone successfully created or filtered charts by $mediaSource attribution? Any idea why the New Chart
Hey,sorry but I can not wrap my head around how people manage to not exceed their rate-limit of the API v2 if they have a lot of users on their app?Imagine this:I have 10.000 Users, a VERY low user-base in terms of possibilities in Google Play Store AND Apple App Store. I also use the Currency Function of RC, so I not only need to update the Currency via API v2 but I also need to check sometimes if the user still has enough credits on his RC-Account to either stop him from accessing token-based functions or allowing him to do so.So 1 User does 2-3 API v2 Calls to RC for accessing a Tool in my App.You see the problem? 10.000 Users but only 30 of them can use the app per Minute, since the rate-limits exceeds otherwise. How should I manage a Delay-Function in my Backend, if 1000 Users try to API-Call and Update their currency on RC? It would take 30min, till the 1000. User has done his API call.For 2000 Requests it will take 60minWhat if I have a User-Base of 100.000 or even more? is ther
I have added localization through RevenueCat which has updated the text content. I would like to change the main image for each language to help improve conversions by country. Is it possible to “localize” the image in addition to the text copy?This question was from another user, but has been closed for comments.. I need to know also?!
Hi, I know that virtual currency is in beta, but needed this for my new app and I thought I’d give it a try. I saw three issues with it so far (as you can see from this user log). This is using App Store Sandbox user on a physical device with 5 min refreshes. Issues: User gets bot the trial credit (30) and monthly credit (50) before trial credit gets deducted Sometimes user might have double the monthly credit (100) because deduction seem to be delayed. When transferring to another user using Restore Purchases, credits do not seem to transfer.I could see 1 and 2 being the case just because of the accelerated Sandbox schedule, but would like a confirmation before I go ahead and publish this if possible. Thank you! ---Deducted 50 CRD2025-10-10 at 06:34 PM UTC • Via expirationDeducted 50 CRD2025-10-10 at 06:34 PM UTC • Via expiration2025-10-10 at 06:27 PM UTCRenewed their subscription of Monthly subscription (subscription_montly_basic) for USD 9.992025-10-10 at 06:27 PM UTCGranted 50 CRD2
I am following the Meta Ads integration guide and have successfully implemented the setup. We can confirm that the Facebook Anon ID and IDFV are being recognized for each user. For ATT consent, when denied or not determined, the IDFA correctly shows as 00000000, so everything appears to be functioning as expected on that front.I am using the Conversions API in the RevenueCat → Meta integration and have enabled “Send events when ATT consent is not authorized.”1. I can see Trial Start events in Events Manager attributed to ads (but no App Installs).2. Those trials are linked to the correct ad set (in Events Manager)3. However, in the Campaigns view, neither Trial Starts nor App Installs are appearing.I'm confused why it shows in event manager and not in Campaign views.Separatley the app installs are not showing at all for adverts (in Events Manager / Campaign Results_Screenshot: https://drive.google.com/file/d/1GDrP1JP6dUewYjUOZJOKVmjTybjdLfWr/view?usp=sharingPlatform: React nativeLibrar
Hi RevenueCat team,I'm running into several webhook limitations while trying to set up proper environment separation for my project. I have 6 apps in one project:Dev iOS Dev Android Preview iOS Preview Android Production iOS Production AndroidDev, Prev, and Prod have their own backend and Webhook Url.Problems I'm facing: Can't select multiple specific apps - When creating a webhook, I can only choose "All Apps" or a single app. There's no way to select just "Dev iOS + Dev Android" for a single webhook. Why is this not possible? I don’t understand it... Each webhook URL can only be used once - If I try to create two separate webhooks (one for Dev iOS, one for Dev Android) pointing to the same backend URL (https://my-dev.supabase.co/webhook), I get an error that the URL is already in use. Maximum 5 webhooks per project - Even when I work around the above issues by adding query parameters to make URLs unique (e.g., ?env=dev&platform=ios), I can only create 5 webhooks but I need 6
Hi RevenueCat Team,I'd like to suggest an improvement to the feature request process.From what I've observed, new feature ideas are currently posted as regular forum topics. While the team is responsive in acknowledging them, the threads are often closed after the request is "forwarded to the team."This process can feel like a bit of a black box for users. We don't have a way to see if a feature is being actively considered, its priority, or an estimated timeline. I personally suggested two features about a year ago, and the lack of a clear status update makes it discouraging to contribute new ideas.I propose creating a dedicated feature request portal/page. A system like this would be a huge win-win: Prioritization: It would allow users to upvote and comment on requests, giving your team a clear signal of what the community needs most. Transparency: A status (e.g., "Planned," "In Progress," "Released," "Won't Do") would keep everyone informed and manage expectations. Centralizatio
I just purchased something in sandbox mode but the operation doesn’t appear on the customer’s history. Looking through the logs, I’ve seen this error. Haven't seen any posts about it - any additional information?Note that I'm using Superwall as the main paywall provider and RC is just observing.
Hello,We are currently utilizing the API to track purchased products and the total balance of virtual currencies.We have noticed that detailed virtual currency transaction history is not available through the API, only via the UI.Are there any plans on the roadmap to expose the full transaction log? Additionally, it would be extremely valuable to include a reference ID field for each virtual currency transaction made through the API, allowing us to connect the transaction directly to a specific action or event, rather than relying solely on timestamps for correlation.We look forward to hearing about your API development plans.Thank you.
This is driving me crazy because there is a corrupted user in my sandbox environment and I can’t continue working without deleting it. But deleting it doesn’t work because it’s cached for a few hours. We REALLY need a way to be able to completely delete a user in sandbox environment along with clearing the cache.
Recently Google introduced one time products. Do we need to update any libraries? Asking for react-native purchases specifically.
I have a new-ish app that launched about 2 months ago. I launched the app without RevenueCat, but added it about a week later. I had done a few thousand installs and trial starts during that period. As a result of adding the RevenueCat SDK late, my early data on the platform is totally messed up (missing data, incorrect subscription retention metrics, etc).Can I simply import all of my purchases (server-side, using app store server notifications which I have stored) and expect RC to handle it seamlessly? This means creating the previously unseen customers, merging the seen customers with their newly received ASSNs, etc. Else, how can I fix the bad data I have for the first week of my app?
a
We are using RevenueCat only for non-subscription in-app purchases (e.g. consumables). We currently handle reward distribution exclusively via webhook events on our backend. However, we’ve encountered some cases where a purchase fails (e.g. credit card limit exceeded or other payment method failures), but the frontend has no way to detect this and may incorrectly treat the purchase as successful. We’d like to ask: For non-subscription products, is there any way on the client side (React Native SDK) to detect if a purchase has failed right after calling Purchases.purchasePackage()? What specific webhook events does RevenueCat send to indicate: a successful non-subscription purchase? a failed non-subscription purchase (e.g. payment declined, card limit, etc)? Based on your answers, we plan to distribute in-app rewards only after receiving the successful purchase webhook. Additionally, we would like to clarify the behavior for “Billing Issues” or “Pending” states.If a purc
Hi everyone,I’ve seen older posts about RevenueCat working on Paywalls UI support for Unity, but nothing concrete has been released yet. Our app is built in Unity, and right now managing paywalls requires developer work every time we want to test or update something.Does anyone know if there’s an official timeline for Unity Paywalls UI (similar to what’s available on iOS/Android/Flutter)? Has there been any word from the team recently, or are there recommended workarounds in the meantime?Thanks in advance!
We recently upgraded `react-native-purchases` from `^7.4.0` to `^9.1.0` in order to comply with the **latest Android billing policy changes**. Since then, on **iOS 18 (EAS build, Expo Managed Workflow)**:- In-app purchases succeed- App Store receipts are received correctly- BUT transactions **do not show up on the RevenueCat dashboard**- Entitlements are **not unlocked** ⚠️ Android is working fine — purchases are tracked correctly and entitlements are unlocked as expected. No changes were made to our RevenueCat dashboard configuration. --- ### Environment:- "expo": "^51.0.0"- "react-native": "0.74.5"- "react-native-purchases": "^9.1.0"- Build: EAS Build - Expo Managed Workflow - Platform: iOS 18 The issue started **immediately after upgrading the SDK** and deploying via EAS build on iOS 18. We’d appreciate guidance on whether additional configuration is required for SDK v9 on iOS 18.
Copied Hi, I am facing an issue with the iOS version of my react native app. As the title suggests, when I perform an action in the app which causes the paywall to open (subscription paywall), it closes itself after a second or two of being visible with PAYWALL_RESULT of CANCELLED. Versions:"react-native-purchases": "^9.6.0","react-native-purchases-ui": "9.6.0",I cannot seem to find any other people who have documented experiencing this issue, and there are no warnings or errors thrown in xcode or the metro terminal which can give me any further clues.If you require any more information from me in order to help, do not hesitate to ask for it!Updated: also same issue on physical device as well Ipad, simulator and emulatorVideo recording link: Thanks very much.
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.