Discussion and help from anything related to RevenueCat.
Recently active
Hello, I have been exploring with the new paywalls from revenue cat , and i encounter what i assume is a bug. I am using react-native and have for both purchases and purchases-ui the latest version 9.2.2. When rendering most of the predefined package stacks , i get a warn: 'Could not determine price format because price string is incompatible.'. In the revenue cat preview everything looks great but on the actual device , the offerings are wrong, some text is missing entirely in the prices section. This is how the package looks on the preview: And in the actual app: On all of them it looks like the package selection is not working. Am i missing something in the configuration? Any help is more then welcomed.
Hi!I am trying to integrate RevenueCat into my Expo project, but I keep getting the following error: ERROR [RevenueCat] 🍎‼️ Error fetching offerings - The operation couldn’t be completed. (RevenueCat.OfferingsManager.Error error 1.)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). I double checked all configuration in both RevenueCat dashboard and App Store Connect:The product ids are matching. Paid Applications Agreement and tax forms are signed. App Store Connect subscriptions are in Ready to Submit state. In-app purchase key configuration is set up. I am testing the app in the iOS 18.6 simulator with the local dev build I run with “npx expo run:ios”.I’d appreciate any help with this because I am out of ideas what goes wrong.
Hi everyone,I’m using {{ product.price_per_month }} to display product prices in my app. Is there a way to format this so that it does not include the currency symbol? For example, if the value is $9.99, I’d like to display just 9.99 as I would like to apply different formatting to the currency symbol in comparison to the price.Any guidance or recommended approaches would be greatly appreciated!Thanks!
Hi everyone, my app is keep getting rejected. I made sure the annual price is displayed correct and monthly price on the paywall and I have 3 day free trial. Guideline 3.1.2 - Business - Payments - SubscriptionsWe noticed that one or more of your auto-renewable subscriptions is marketed in the purchase flow in a manner that may mislead or confuse users about the subscription terms or pricing. Specifically:- Your auto-renewable subscription promotes the free trial or introductory period for your subscription more clearly and conspicuously than the billed amount.Next StepsPlease revise your auto-renewable subscription purchase flow to ensure that the billed amount is the most clear and conspicuous pricing element in the layout. Any other pricing elements, including free trial and calculated pricing information, must be displayed in a subordinate position and size to the total billed amount. Factors that contribute to whether the billed amount is clear and conspicuous include, but are no
Hello, Is there any way to display text based on selected package ? I know about the introductory offer text but my case is as following and it cant be solved with introductory offer text.I have three packages.Weekly Annual LifetimeWhen weekly and annual is selected, I am displaying a text that says “No commitment , cancel anytime” which is fine. But when lifetime offer is selected this does not make any sense and I want to display “Pay once use forever” instead of that. I researched but couldn’t find a way to do it or define a custom variable for packages.Any suggestions would be great.Thanks in advance.
Hi, I triple checked and all of my iOS certs and pk8 files, secrets are all valid. its connected to my app store connect automatically I made RevenuCat an app manager. It successfully linked my products to apple. Yet in apple I have 14.99 a month, and 99.99 a year. But the app continually shows the wrong pricing (9.99 and 79.99). NO idea where it’s getting that from? I’m in sandbox mode. I tested on the demo xcode app got the same thing. Any help? I am trying to get this app released after a grueling 1.5 years of work! Thanks, Michael
I haven’t found any good resource/answers for this, if there is something please point me to it.My app keeps getting rejected (has been in the store for years and the purchase of ad removal has been in for over a year now) with my latest update. They tell me that I need to have a dedicated “restore”, which I do. I check for the entitlement being active and if it is I then check to see if I am supposed to showing ads. Basically if showAds==true and entitlement==false show “Remove”, if showAds==true and entitlement==true show “Restore” else show nothing. I’ve done some basic logging and testing but what I can’t seem to figure out how to test is the restore scenario. I have a sandbox account setup as well as the simulator with the storekit setup. I can install the app from XCode, run it, make the test purchase and all works as expected. How do I test the restore though? That requires removing and reinstalling app, which appears to also reset my purchase history to appear that I have not
Hi there!We’re eager to test A/B testing functionalities on RevenueCat, but we realized this is actually not possible because it doesn’t support custom attributes.We already use custom attributes to display specific paywalls to defined partners’ users. If we run a test, we don’t want users coming from partners to enroll in the experiments (they still need to see the usual paywall as defined per partner agreement!).Anyway, in the enrollment rules, we can’t make sure we use the same custom attribute we use in targeting. This is frustrating: it’s a blocker for us on running experiments. For the company this is getting a concerning issue, as we’re looking to validate our product proposals by defining its more appealing bundles and prices.We have cool feature there, but we can’t currently use it, and given our use case, I suppose it’s pretty common issue. When are we going to get this?
I’m build an app that handles multi account, user can add multiple accounts and switch to other account and perform tasks Each account should have their own subscriptionBut the problem here is I purchased “Plan A” in “Account 1”if i go to “Account 2” and purchase “Plan A” It says this subscription is already active.but it’s active on “Account 1” Not on “Account 2” But i can see few apps like instagram, twitter . They have this thing for blue tick. I can buy a blue tick subscription in “Account A” for 6$, and i can buy a blue tick subscription in “Account B” for same amount. both managed in same Play store account subscription. Kindly guide me, how should i procced. Thanks.
I'm running into an edge case with RevenueCat when handling purchases via a Web Purchase Link after a user's subscription has expired. ProblemWhen a user makes a first-time purchase via a web purchase link, the customer info updates correctly and addCustomerInfoUpdateListener fires as expected.However, if the user’s subscription has previously expired, and they make a new purchase via web checkout, the customer info: Does not show the new active subscription Does not trigger addCustomerInfoUpdateListener This causes the app to remain in a non-subscribed state. What I’m already doing After the user completes the web checkout and returns to the app, I: Call Purchases.invalidateCustomerInfoCache() Then call Purchases.getCustomerInfo() I’ve verified that the purchase does go through successfully, since in the RevenueCat Dashboard I can see both the expired entitlement and the new active entitlement.EnvironmentTesting in a Sandbox environment where monthly subscriptions renew eve
Hi,We are currently experiencing a bug where customers are unable to proceed after completing a purchase. The RevenueCat webhook is being triggered, and the payment is successfully processed, but nothing happens on the frontend. It seems that the event is not firing as expected, which is causing significant issues for our users.Here is our implementation: <RevenueCatUI.Paywall onPurchaseCompleted={({ storeTransaction }) => { try { track('free_trial_premium_button', { partnerGroup }); AppEventsLogger.logEvent(AppEventsLogger.AppEvents.Subscribe, { [AppEventsLogger.AppEventParams.Description]: 'Purchase completed', [AppEventsLogger.AppEventParams.Currency]: 'EUR', [AppEventsLogger.AppEventParams.ContentID]: storeTransaction.productIdentifier, [AppEventsLogger.AppEventParams.NumItems]: '1', }); router.replace(finalLoading); } catch (e
I am building this app https://testflight.apple.com/join/G1a2Gdxx but apple keep rejecting it They are replying with pretty much same thing again and again where as subscription are not approve they are not able to test. And revenuecat forum show the subcription needs to be approved first before it to work. Looks like chiken and egg problem. Tried with sanbox account but still loader is playing infinitely but now apple has rejected the susbcription itself. Can some one please help PS: everything seems work with Storekit configuartion while running from xcode I see multiple people in stackoverflow and apple forums are facing same thinghttps://developer.apple.com/forums/thread/793924https://stackoverflow.com/questions/62252571/app-using-revenuecat-got-rejected-in-review?utm_source=chatgpt.com
I have an existing legacy paywall in production for my app, Please Don't Rain.I’m building my first v2 paywall. It’s a draft that’s in inactive state.In the documentation I see the RC app showing drafts in both the “published” and “inactive” sections. In my RC app (v1.5.2) I only have a “published” section that shows my existing v1 paywall.I’ve tried duplicating the inactive v2 paywall, pulling down to refresh in the RC app, etc. but I never see my new paywall in the RC app.
Hi,How does your direct integration with Customerio handle alias creation? If an alias is created in RC, what is sent to Customerio? If RC doesn't notify Customerio in any way when an alias is created, is there at least a webhook event that we can monitor to update Customerio ourselves? Thanks, Toby
According to the docs, the only way to cancel through Web purchases is via Dashboard > User > Cancel flow. This is manual. I’d like to create a programatic way to do this. Does the `@revenuecat/purchases-js` allow for this? I don’t see anything obvious.
Hi everyone,I’m using @revenuecat/purchases-capacitor-ui with the RC Paywall Editor to show my subscription screen:const { result } = await RevenueCatUI.presentPaywall();Purchases work fine, the promise resolves.However, when the user taps Restore Purchases button inside the paywall: The restore actually happens (I see the RevenueCat webhook fire, and the user’s entitlements update in Purchases.addCustomerInfoUpdateListener). But the paywall stays open because presentPaywall() never returns, it’s “stuck” waiting. Questions: Is this expected behavior for presentPaywall() after restore in the Paywall Editor? (I also tried presentPaywallIfNeeded({ ... }), but observed the same behavior.) Is there a way to programmatically detect that restore finished so I can navigate away? (I coudn’t find a dismiss method in the Capacitor sdk) Setup:Capacitor 7.1.0 @revenuecat/purchases-capacitor 11.1.1 @revenuecat/purchases-capacitor-ui 11.1.1 iOS + AndroidThanks!
Hi team, I’ve been facing a persistentissue with the sandbox environment, for more than a week now. I was able to purchase subscriptions initially but all of a sudden they stopped working. I always get the Unable to process your request. Please try again later. Environment: Sandbox error.Now initially i though it was a me problem, thinking maybe the code changes broke something. But then I googled a lot, asked chatGPT for the solution. Tried everything but to absolutely no avail.This is the error I get in the terminal ERROR [RevenueCat] 🍎‼️ There was a problem with the App Store. ERROR [RevenueCat] 💰 Product purchase for 'unferturfer899_1w_3d0_7d299' failed with error: PurchasesError(error: There was a problem with the App Store., userInfo: ["NSUnderlyingError": StoreKit.StoreKitError.unknown, "readable_error_code": "STORE_PROBLEM", "source_function": "asPurchasesError", "NSLocalizedDescription": "There was a problem with the App Store.", "source_file": "RevenueCat/StoreKitError+Ex
If I setup my paywall (v2) for english only it works.As soon as I add another language (in my case japanese and thai), I get this errors causing the fallback paywall to be shown:2025-08-14 12:49:01.707 18237-18237 [Purchases] xxx E Missing string localization for property with id: 'Z_ph1YtWAp', for locale: 'en_US'.2025-08-14 12:49:01.707 18237-18237 [Purchases] xxx E Missing string localization for property with id: 'TM_G22_izX', for locale: 'en_US'.I tried to export the resources as csv and add those 2 ids manually and re-import, but it says they aren’t present.
Hi Community,we just implemented the meta ads integration via revenuecat and our events are received just fine by meta.Now we are trying to get the attribution to our ads and our ad campaigns to work, but I do not see revenuecat sending any data regarding the campaign or the ad in the integration events.Since it will take a couple of days/weeks as well as money on ads to figure the answer to these questions, is there anyone here who has experience doing meta ads with revenuecat integration, that can maybe already answer the following questions:Do I have to set this data manually via Purchases.setAd and setCampaign and will revenuecat send this data to meta?Or is it enough to have the ATT consent of the user and send the madid/idfa to meta and meta will figure out where this user came from? And lastly: If setting and sending the ad and campaign data to revenuecat & meta, will it be possible to see that a user came from this campaign without violating that the user has not given the
Step 3 of the Android setup requires you to ‘invite a user’ on google play corresponding to the service account created in the previous step. How does one invite a service account when the only input for inviting a user is the email?
Hi everyone,We recently started using RevenueCat with React (non-native) and are relying on the JS library.We’re not using RevenueCat Web Subscriptions, since we’d prefer not to be locked into their billing system. Instead, we’re just using the library to check customer subscriptions and retrieve entitlements.One thing we noticed is that the JS library is huge - about 671 KB.A few questions came up internally: Is there any way to reduce the bundle size? Maybe a “lite” or “compact” version of the library? Can we safely use the RC REST API directly from the frontend and skip the JS lib? Is it possible to listen to customer info changes same as in RN? From what we understand, RC Web Billing forces you into their billing system for web. Why is this restriction so aggressive? Is there really no way to fetch offerings and use Stripe directly without all the extra complexity? This has sparked a lot of discussion in our team about whether to keep using RC at all, since the lock-in feels
Hi there, I saw an older thread here about this from 2021. It’s 2025 and I am wondering when RevenueCat would support other Android stores like Huawei.
I have RevenueCat and Play Console setup for consumable products. I setup a test promo code but when redeeming successfully, the order doesn't display in Play Console (works on subscriptions) as a $0 order and the purchase action in app is not applying the steps I have setup. Anybody else having this issue? I have an app in production and am on a tight marketing deadline to get this fixed. Need help ASAP please!
I'm trying to add a .p8 file to the StoreKit Subscription Offer key section, exported from Xcode via StoreKit configuration. However, when I upload the file, nothing happens—no confirmation, no error message. The file isn't accepted and no feedback is provided. I've ensured that the file was exported properly from Xcode.Is there a specific format or requirement for this key that I'm missing?
We were running into an issue during migration to 9.2.0 where we needed to call Purchases.getProducts([product.id]) before calling Purchases.purchaseStoreProduct(storeProduct).Previously we were calling Purchases.purchaseProduct(product.identifier), so we thought it would be an easy transition. But we kept getting an empty array from getProducts().Finally, we realized that RevenueCat product.identifier is NOT the product id (at least not any more for Google Play). Instead, RevenueCat’s product.identifier is a concatenation of product.id:base_plan in Google Play.RevenueCat does display the actual Google Play product id, but it’s called both “Subscription Id” and “Product Group” in the console. And neither of those attributes are part of the StoreProduct attributes in the SDK.We could parse the existing product.identifier, but that seems like a hack. Does anyone have a suggestion for how to get the actual Google Play product id programmatically via the Flutter SDK? The thing that Revenu
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.