Discussion and help from anything related to RevenueCat.
Recently active
Users can purchase gold coins through IAP in my app. How can I synchronize the gold coin balance across the user's devices (logged in with the same Google ID or Apple ID)? I don’t want to force users log in. In-app subscriptions are bound to the Google or Apple account and don’t require login. How can I achieve a similar functionality for gold coins? Can I obtain a unique ID representing the Google ID or Apple ID when the user makes a purchase? Then, when the user recharges or spends gold coins, the unique ID can be sent to my server to update the gold coin balance? (Essentially, using this unique ID as a credential for an invisible user system.)
Hi RevenueCat team,I’m experiencing an issue with the Paddle integration when using Web Purchase Links.I’m trying to set up RevenueCat payments through Paddle for my Flutter Web and Flutter Windows apps.When I use the option “Use autogenerated user IDs”, the purchase completes successfully (checkout opens, payment is processed, user is redirected back to the Web Purchase Link page, and it says “You can close this window”).However, in RevenueCat, the purchase is assigned to a new anonymous user, not to the correct App User ID.The Web Purchase Link includes my user ID in the URL, for example:https://pay.rev.cat/XXXX/{app_user_id} When I switch to “Use a custom field”, the problem is that it’s unclear how to properly pass my App User ID through the Web Purchase Link.If I try using the field name rc_user_id (which seems to be RevenueCat adds automatically), the user mapping works correctly — but then the “transaction complete” event never fires, and the Web Purchase Link page gets stuck on
Hi, I’m looking for a way to grant users of my app entitlements, such as one week of free premium access.The problem is that if a user has never interacted with Purchases, they don’t appear in the RevenueCat dashboard.I can get the user ID from Supabase, but I can’t find a way to manually add this user to the RevenueCat dashboard so I can grant them entitlements.I know there’s a way to do this through the API, but is there really no way to add a new user directly in the dashboard when I already have the user ID?
I try add links to “Terms” and “Privacy” Footer buttons on the paywall builder but they disappear immediately when I click on a different element and not being saved. The following screenshots are sequential in that actions that I take. Hence, Apple is rejecting builds since there are no original Terms and Privacy links but just default RevenueCat url “https://example.com”.
Hi RevenueCat team,In Sandbox I’m seeing this every time I try to purchase our monthly subscription (product_id: intimigo_monthly): ”””ERROR [RevenueCat] 🍎‼️ There was a problem with the App Store.ERROR [RevenueCat] 💰 Product purchase for 'intimigo_monthly' failed with error:PurchasesError( error: There was a problem with the App Store., userInfo: [ "readable_error_code": "STORE_PROBLEM", "NSUnderlyingError": StoreKit.StoreKitError.unknown, "source_file": "RevenueCat/StoreKitError+Extensions.swift:49", "source_function": "asPurchasesError", "NSLocalizedDescription": "There was a problem with the App Store." ])””” The only recent change on my side was increasing the price of intimigo_monthly in App Store Connect (status: Ready for Sale). I fetch offerings before calling Purchases.shared.purchase(package:), and I’ve tried:Waiting 24+ hours for price propagation Restarting the app and device (testing on a real device since I am developing using WSL) Uninstalling the ap
Hi team,I'm seeing inconsistent behavior in the RevenueCat dashboard regarding customer attributes. For some users, attributes like email, userId, and others appear correctly, but for certain customers, these attributes don’t show up at all — even though they should have been set from the app.In the screenshots attached, one customer profile shows all attributes (email, userId, etc.) while another only shows the default metadata and does not display the attributes we expect. Both users went through similar app flows, and we’re using the same code path for setting attributes in the SDK.Questions: Why would some customer records show complete attributes and others show none? Are there any known reasons (e.g., aliasing, anonymous IDs, timing issues, sandbox behavior, or overwrites) that would prevent attributes from appearing in the dashboard? Is there anything specific we should check in our implementation to ensure attributes are always saved? Any guidance on what might cause attrib
I have a targeting at the first place (at the top in the rules order) and I’m running a few experiments rn and I need to exclude my sandbox user from the experiment so I can test with different offerings, but I couldn’t find a way to do this. Is there a way to unenroll a user from an experiment?
I'm currently in the process of migrating from Stripe to Paddle for my web purchases. For the previous web checkout that was processed through Stripe, I would use redemption links so new customers (without an account) could purchase the product directly off our website. Now I have Paddle set up as a web payment option but the Web purchase links section does not include the option to enable redemption links. It does show up in the Stripe-powered web checkout settings. How can I enable redemption links for my new panel configuration? No place to activate Redemption Links on my Paddle settingsThe old web checkout has redemption links as an option.
private void Start() {#if UNITY_ANDROID && !UNITY_EDITOR _wrapper = new PurchasesWrapperAndroid();#elif (UNITY_IOS || UNITY_VISIONOS) && !UNITY_EDITOR _wrapper = new PurchasesWrapperiOS();#else _wrapper = new PurchasesWrapperNoop();#endif if (!string.IsNullOrEmpty(proxyURL)) { _wrapper.SetProxyURL(proxyURL); } if (useRuntimeSetup) return; Configure(string.IsNullOrEmpty(appUserID) ? null : appUserID); GetProducts(productIdentifiers, null); }
The iOS sandbox is all messed up on my user/device - constantly hanging while getting offerings resulting in paywalls not being shown 99% of the time & if it does, should I try to subscribe it just hangs… So i try to work around this by granting entitlements from the RC dashboard. I choose SANDBOX environment, grant a subscription, and after the success message, I reload the page. Nothing there...if I toggle OFF the sandbox, the entitlement I granted is there!? Is that expected?
I’m in the process of implementing RevenueCat. (Flutter-IOS)I followed the steps on the documents. My product appeared on the revenueCat UI I’ve created an offering and a base entitlement + created a paywall Attached entitlement a product (I have only one.) Made a subscription succesfully and that appears on the RevenueCat side. ***But no attached entitlement*** So I can’t use themAny help appreciated. Even if this is a known issue, I couldn’t find any source to solve it.thank you
Hi friends, i am working on project using swift revenuecat as the purchasing library,now i want to detect from my code if the paywall was not set for the offering, but i cant find any way to do that, the problem is the return value from offerings.current.paywall is always nil, ofcourse i already setup in the dashboard, event the paywall can be shown in appif there is some one who have any experience with this, please help?here is my code to make more clean, Purchases.shared.getOfferings { offerings, error in guard let offering = offerings?.current, error == nil else { print("❌ Failed to fetch offerings:", error?.localizedDescription ?? "") // fallback to custom popup if failed presentCustomSubscription(on: visibleController) return } print("Current offering:", offerings?.current?.identifier ?? "none") print(offering.paywall?.templateName ?? "none"); // Check if paywall is set if let paywall = offerin
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
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.