Get help with anything related to RevenueCat.
Recently active
Hi team 👋,I’m currently building an onboarding-style subscription flow and wanted to confirm official support for multi-page paywalls in RevenueCat Paywalls v2.My use caseI want to create a 4-step paywall flow inside a single paywall, similar to onboarding screens: Value Intro (benefits, no products) Free vs Pro comparison Trial reminder selection Plan selection & purchase (products attached only on final step) The goal is: One continuous paywall experience Navigation between steps using buttons (e.g., “Next”) Products shown only on the last page Analytics tracked per step My questions Does RevenueCat currently support true multi-page paywalls (multiple pages within a single paywall)? If yes: Which template or layout should be used? Is there a Pages panel or page selector that must be enabled at creation time? Can pages be added after paywall creation, or must it be chosen initially? If not: What is the recommended best practice to implement a m
RevenueCat Support Inquiry: Detecting Active Subscriptions on Shared Store account Before PurchaseContextWe have multiple users with separate accounts in our app using the same device and Store account. We're encountering an issue with subscription management when users share the same Store account.Current Setup- Platform: React Native- SDK: react-native-purchases- RevenueCat Setting: "Keep with original App User ID"- Use Case: Scenario where: - Device has one Store account configured - Multiple users have separate accounts in our app - Each user needs their own subscription, but they share the device (and Store account)The ProblemScenario:1. User A logs into our app with credentials: userA@example.com2. We call Purchases.logIn('userA_12345')3. User A purchases Product X (e.g., Monthly Plan) using Store account: M4. User A logs out5. User B logs into our app with different credentials: userB@example.com6. We call Purchases.logIn('userB_67890')7. User B's customerInfo shows no active
I use product.offer_period_in_days Day Free TrialThis works perfectly on iOSon Android it shows up as**** Day Free Trial How do i fix it? On the play store I have a properly configured subscription base plan with a free trial offer attached to itI would hardcode it, but I have a yearly and monthly option and I can’t see a way to do that in the web paywall UI
I want to remove a subscription from sale on apple. What would be the consequences of removing the subscription for users that are already subscribed on IOS on revenuecat ?WIll they lose their subscriptions ? Will users be immediately refunded? If a users subscription ends, will they need to resubscribe to a package or they would be automatically upgraded to a new subscription?Also is there an instance where once we remove the subscription from sale, Users will still maintain their subscription till it ends?
Hi,I’m trying to add Revenuecat web billing on my website gpx.tours, but the “Google Pay” button is not showing in the Express checkout of my paywall. Here’s what my paywall looks like in Revenuecat dashboard: The Express Checkout in the setup of my paywall in Revenuecat dashboardIt is working in dev: This is what the paywall looks like in devHowever, in Vercel preview, the Google Play button is replaced with a “Pay now” button. Redemption links are disabled The Vercel preview domain is added in StripeBottom line: is it even possible to add a Google Pay button in the paywall on web?Would appreciate your feedback.Thx!
Hello,I am on the RC UI, and I try to extend the free trial period of a user (customer satisfaction thing). The user is currently in a free trial period. When I click “Extend subscription”, I get a small toast message saying ”Could not extend the subscription” The web console gave me the reason for this:code: 7970message: "Received an error from Apple. Environment: PRODUCTION Code: 4030004 Message: Forbidden - subscription state ineligible for extension."So, it seems that one cannot extend the free trial on App Store (sorry if it’s obvious, I am learning a lot these days). Apple documentation. Therefore, my question is: what would you suggest me to do with this user? He couldn’t properly use his free trial for 3 days, and I would like to let him properly able to test the app before deciding he should purchase or not.
Hoping someone can offer some insight! I am using WebToNative to wrap my web app (built on Base44) into a native iOS app. I added code to expose RevenueCat functions through the WebToNative bridge but when testing the build in TestFlight, the paywall (my own custom paywall) does not appear at all. The logs show that “WTN RevenueCat not available”. Does anyone have similar experience with the path I’ve chosen to take?
Everything should be good to go and yet it isn’t. The app has subscriptions set up both in app store connect and revenue cat and it seems everything matches. The app is also our default app in revenue cat so it is not hitting the wrong app. The screenshot is from testflight so no its not a storekit issue or sandbox issue (both of which are presumably fixed just by being on test flight. In the past for a different app I’m pretty sure I had this working on a regular dev client on my phone no test flight no storekit config no nothing. What is causing the issue? We had done very little set up we hadn’t set up a bank acc then so why would that be the issue now and why would that matter for fake money.
Which most of the apps are showing app icons correctly, but my https://verified.revenuecat.com/vahanpro, doesn’t show app icon at all. I have configured App store and Play Store creds correctly, like other apps, but still it wont come up.Even my verified link(above) doesn’t show App Store link, when App store app is live and working correctly.Please Help!Thanks in advance.
Is it possible to force the orientation of a paywall/offering using the metadata JSON object? I want to force portrait mode for the paywall if possible. Cheers!
Hello, I’m developing locally using only the RevenueCat Test Store (test_ API key with Test Store products in my Offerings). After I make a test purchase, I might have to quickly re-run the flow from scratch, as I am developing and changing things and trying to make sure that everything still works. However:- Deleting the customer in RevenueCat does not make the active Test Store subscription go away for re-testing.- There doesn’t appear to be any way to cancel or expedite cancellation for a Test Store subscription (no user-facing cancel, no management URL), so I end up waiting for renewals/expiration instead of immediately testing again.Questions for the community/RC team Is there any supported way in the Test Store to immediately cancel/expire a subscription so I can re-purchase right away? If instant cancel/expire isn’t supported in the Test Store, what’s the recommended best practice to achieve a fast dev/test loop while developing locally? (e.g., any official workflow to simulate
I setted credential correctly Connected to Googlesent test notification to rc topic But when i save changes receive this error All configuration seems correct.Can someone help me?
Hey, I once found this handy llm.txt file in your docs, but I don’t find it anymore and the google link is broken:https://www.revenuecat.com/docs/assets/files/llms-4bbc6a7400826a5789ff0a888c6c90c4.txtWhere can I find it? Thanks
I’m having an issue where my RevenueCat paywall works perfectly in the iOS Simulator, but fails to load on real devices via TestFlight. This is my first app and first time setting up in-app subscriptions.What works In the iOS Simulator, the paywall loads correctly. All products appear and I can simulate purchases. Product IDs match exactly between App Store Connect and RevenueCat. The RevenueCat offering is active and includes the correct products. What fails On a real device using TestFlight, the paywall does not load. RevenueCat returns a configuration error (Error 23 / products not found). No products are returned from Apple in TestFlight. App Store Connect setup Subscriptions are created in App Store Connect and currently in “Ready to Submit” / “Waiting for Review” state. I have accepted all agreements in App Store Connect (Paid Applications, Tax, Banking are active). The subscription is attached to the current app version under In-App Purchases and Subscriptions. T
Hello - wanted to clarify something I saw discussed in documentation and other questions. It seems that there shouldn’t be a big concern exposing a customer’s user ID to the customer themselves. Is there an issue with other people being able to discover a customer’s ID? For example, we have IDs for our application users. These users may (in the future) interact with each other, for example user A might send a message to user B. Would it be a problem if the IDs that we use to enable identifying the target of the message are the same IDs we use to identify a user to RC? In other words, what would user A be able to do if they knew the customer ID for user B? Or: given our public API key (which is compiled into the app) and a customer’s ID, what information and operations are exposed? It would be great if there was a RC security whitepaper or something like that which went over all the security considerations for implementation somewhere in the doc hub...maybe i’m missing it?
Hello,Is it possible to have a button on the paywall that triggers a custom action in my app similar to the Customer Center functionality?I would like to put a button which (closes the paywall and) resolves an action in my app afterwards.Thanks,Stan
When I export my Figma file to RevenueCat the line spacing is much larger than it is in Figma. I’ve also tried building this natively in RevenueCat, but I don’t see any controls for linespacing. And if I just use two blocks next to each other with no space, the line spacing is still too large. Is there anyway to address this so the linespacing for the paywall in RevenueCat matches the design as created in Figma?
Hi there. I have a carousel contained within a stack and want to set the Size/Height of the stack to “Fill”, but it’s just showing a “Fill disabled: parents height is set to fit” message. However the parent is the main Paywall component which has no option to change its size?
How do I add a Footer to my Paywall. When not using a template I don’t see the option as it’s not included by default and it’s none of the components.
The Paywall doesn’t show the price (although all other UI are shown correctly) and pressing the purchase button doesn’t have any effect. It shows the price and the button works in Test Store.I have added myself to Google Play Internal Testing and have the correct product ID and base plan Id from Play Console. I have also linked the offer and entitlement correctly. The Google Play API key is also correct in the client code.
Per https://www.revenuecat.com/docs/tools/experiments-v1/creating-offerings-to-test, we created different subscription groups: https://i.imgur.com/9eIRy0Y.jpegWe’re only using “Asr All Acces” pricing, but we want to experiment with the “Asr All Access ($3/mo $30/yr)” and “Asr All Access ($4/mo $40/yr)” subscription group pricing. Apple rejected this 😐 Any suggestions on working around this? Is different subscription groups still the best way to experiment with pricing?See below for Apple’s reason: Guideline 2.1 - Performance - App CompletenessIssue DescriptionIn-app purchase products associated with the app version submitted for review, such as All Access (1 month) ($3), All Access (1 month) ($4), All Access (1 year) ($30), All Access (lifetime) ($50), All Access (1 year) ($40), and All access lifetime ($49.99), could not be found in the submitted binary.Next StepsIf you do not want to make these in-app purchase products available at this time, remove the unused in-app purchase produc
One of the paywall templates has a toggle to enable a free trial (and is set to off on default). I want to use this but it is not clear how to set it up.My question is do I need to duplicate my products in App Store Connect and have one set with, and one set without a trial period? Or is there an easier way and can RC somehow handle the trial?
I am testing a "No-Login" app (Anonymous IDs only) using RevenueCat in the Apple Sandbox environment. My project also uses Firebase and AppsFlyer. I am trying to simulate two completely different users, but RevenueCat is automatically aliasing them into a single Customer Profile.The Workflow I Followed:User A: Installed the app → Generated $RCAnonymousID_1 → Purchased Weekly Plan using Sandbox Account A.Cleanup: Uninstalled the app from the device.Switch: Signed out of Sandbox Account A in developer Settings and signed into Sandbox Account B.User B: Freshly installed the app → Generated $RCAnonymousID_2 → Purchased Monthly Plan using Sandbox Account B. The Issue: Instead of creating a second Customer Profile for $RCAnonymousID_2, RevenueCat added $RCAnonymousID_2 as an alias to the first profile.Integrations in Use: Firebase: I use the Firebase integration. (Are Firebase Instance IDs or UIDs being used by RevenueCat to link these sessions?) AppsFlyer: I have the AppsFlyer integration
I’m having an issue with fetching the one-time products I created. They are already set up in Google Play and have been imported into RevenueCat. The products show a Published status, but when I try to purchase them, it doesn’t work.The app is unable to find the products or offerings for one-time purchases. However, subscriptions are working correctly and all subscription information is fetched as expected. The issue seems to be specific to one-time products.Does anyone encountered this issue? How do you solve this? My configurations are done. App Store / iOS is fine. Only the Android causing the issue.
Hello RC community,I need help understand how Apple vs Google handle signed purchase data. I ran into something that I can't figure out and may be getting wrong. The query:With Apple's StoreKit 2, when you grab `transaction.jwsRepresentation`, you get `signedDate` field that's generated fresh every time you request it(I assume). So if someone intercepts a JWS token, it goes stale in minutes. Good for security.But for Google Play Billing, the signature is created once when the purchase happens. `purchaseTime` is static, there's no equivalent to `signedDate`. The same signature comes back every single time you query it(I assume). What I'm wondering:1. Am I understanding this correctly? Google really doesn't have a freshness mechanism?2. How does RC deal with this for things like: - Detecting stolen/leaked purchase tokens - Account transfers - Replay attacks3. Is this just a known limitation everyone accepts, or is there some workaround I'm missing? Stuff I've already looked at:-
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.