Get help with anything related to RevenueCat.
Recently active
Hi RevenueCat team,We've been testing the new Paywall v2 and have encountered rendering issues on several devices.The paywall displays correctly on some devices (for example, an iPhone 14 Pro), but on several Android phones the layout breaks in different ways.We've observed the following issues:The pricing selection card becomes too tall and pushes the Continue button and footer links off-screen. On some devices, the Restore Purchases link is rendered vertically, one character per line. On others, the pricing card overlaps the feature list above it. The behavior appears to vary by device and screen size rather than by our implementation.We've attached screenshots from several devices demonstrating the issue:Samsung A51 Samsung S24 (English) Samsung S24 (French) Samsung Z Fold3 iPhone 14 Pro (working as expected)We are using the standard Paywall v2 template without significant layout customization, so this appears to be a rendering issue in the paywall itself.Could you let us know:Wheth
Hi RevenueCat team,I'm setting up in-app purchases for one of my apps and running into a persistent issue with the In-App Purchase Key validation. I'd appreciate your help investigating.App details:App: Step Tourist (App Store) Bundle ID: com.example.step-tourist Key ID: 9ZZTZCSGS7 Issuer ID: fefc0472-3433-4064-8745-2e1006a85731 Apple Developer Team ID: J4BSW8LU89 The app record in App Store Connect was created about 17 hours ago, so this doesn't appear to be a short propagation delay.The issue:The In-App Purchase Key configuration shows "Credentials need attention" ("The key is not valid or is not compatible with the Bundle ID of your app"), even though everything appears correctly configured.What I've already verified:The uploaded file is from Users and Access → Integrations → In-App Purchase (not the App Store Connect API tab) — filename SubscriptionKey_9ZZTZCSGS7.p8. The Bundle ID matches exactly (case-sensitive) across Xcode's PRODUCT_BUNDLE_IDENTIFIER, App Store Connect's app r
Hi everyone,I was planning to launch my iOS app yesterday. My acquisition funnel is currently directing users to the app, but I'm unable to launch due to this error, which means I'm losing potential revenue every day.Is there a workaround for this, or can I launch the app using RevenueCat's billing and paywalls while this issue is ongoing?Thanks!
I have a user with an active subscription originally purchased via mobile app; they already opted-out of renewal, but they're prepaid for another ~9.5 monthsAs part of a in-person event, I created a new web product & paywall for a promotional price (same offering & entitlements).If this user sign up for this, under the same account, does it extend the expiration date, or something else? Basically, how can I get them to “get both” sequentially?
I'm testing iOS App Store promo codes. After redeeming a code and coming back into the app, I try to restore the purchase via our RevenueCat Paywall - nothing happens when I tap Restore. I also don't see any event fired to my webhook afterward.Any ideas on what to check here?
Curious how others have handled branded promotional codes for subscription activation e.g. a brand partnership where users redeem a code (on a web page or in-app) that activates their subscription. Something that requires well over 100k codes. Did you build this yourselves on top of RevenueCat's webhooks, or is there a cleaner pattern I'm missing? Thanks
I'm using react-native-purchases 10.4.0 with Expo SDK 54 in an Expo managed workflow. The app freezes indefinitely on the splash screen on iPad (tested on iPad Air M3, iPadOS 26). iPhone works fine. The freeze happens even when Purchases.configure() is wrapped in setTimeout(0), try/catch, Platform.isPad checks, and dynamic imports. The library appears to block the main thread on iPad during native module initialization. How do I fix this?
Can you please add INR into the supported display currency option?
I’m trying to set up web purchase links in my application, which uses RevenueCat for billing. I want to make sure I abide by the App and Play Store requirements.In the External Content Links documentation that RevenueCat links to in its App-to-web explainer, Google states that Developers participating in the program must:Integrate with the external content links APIs, which surface an information screen, enable parental controls, and facilitate transaction reporting once required. So it seems like the link that opens the web purchase flow must use a special API on Android. Does RevenueCat offer a ReactNative library to handle that requirement? For example, does the Web Purchase Button handle that for me?Thanks
The Atom feed available from https://www.revenuecat.com/changelog has broken links. For example, the latest Changelog entry shows up in the feed like so:<entry> <title>Better lifecycle emails for web billing failures</title> <link href="https://www.revenuecat.com/changelog/better-lifecycle-emails-for-web-billing-failures-2026-07-02" /> <id>https://www.revenuecat.com/changelog/better-lifecycle-emails-for-web-billing-failures-2026-07-02</id> <updated>2026-07-02T00:00:00.000Z</updated> <published>2026-07-02T00:00:00.000Z</published> <summary type="html">RevenueCat Billing now sends three distinct lifecycle emails to handle payment failures. This replaces the single generic billing issue email that went out regardless of the subscriber's actual access...</summary> <content type="html"> <![CDATA[ RevenueCat Billing now sends three distinct lifecycle emails to handle payment failures. This replace
I’m testing subscriptions with RevenueCat. I want to simulate a user canceling their subscription and verify that RevenueCat updates the entitlement correctly. I’m using TestFlight. I can’t find the subscription under Settings → Subscriptions or the Sandbox account settings to cancel it manually.Is there currently a supported way to cancel a sandbox subscription, or is waiting for it to expire the only option
Inconsistencies in Webhooks documentationThere appear to be several discrepancies between the descriptions in the following two documentation pages:Webhooks > Event Types and Fields Webhooks > Sample EventsThe following JSON fields listed in the "Sample Event" example are missing from the "Event Types and Fields" documentation:Refund Reversed: `event.metadata` Not defined in Subscription Lifecycle Events Fields. Invoice Issued: `event.metadata` Not defined in Subscription Lifecycle Events Fields. Virtual Currency: `event.country_code` Not defined in Virtual Currency Transaction Fields. Experiment Enrollment: `event.experiment_enrolled_at_ms` Not defined in Experiment Enrollment Event Fields. Purchase Redeemed: `event.store`, `event.environment` Not defined in Purchase Redemption Event Fields. Could you please clarify which documentation—whether the Sample Page or the Event Types and Fields section—contains the correct information?
Hi team, is it possible to localize the Change Plans screen inside Customer Center on iOS?The main Customer Center screen is localized automatically, but after tapping Change Plans, all of the text and plan details on that page still appear in English. I couldn’t find anywhere to add translations for that screen.Is this currently supported?Thanks!
Hello!We’ve setup a Web Purchase Link for an offering using RC Billing. One of the packages supports a free trial period. The link support promo codes. We notice there’s some conflicting information on the page about how much the user will pay after the trial ends when using a promo code. In the example below, we’re using a 100% off promo code. On the left side it’s clear that after the trial ends, the user will pay $0; however, on the right side there’s disclaimer text explaining that after the trial ends, the user will pay the full price of $129. This has led to some questions and confusion. Is there a way to ensure the disclaimer text updates to handle the promo code? Thank you for your help!
Trying to test purchase flows using my iPhone and test flight and I can’t seem to get rid of the item burned into the keychain that makes the purchase stick. I need a way to clear everything and start over.Please advise.
Hi, currently the Web Customer Portal accessed via the management URL is always displayed in English. Is there any way to support additional languages, such as Spanish?For our use case, this is a critical requirement. Thank you.
Hi team,I’m using RevenueCat experiments to test pricing and offerings, and I’d love the ability for an assistant/automation tool to create experiments for me, not just read the results.Right now, an assistant can help analyze my data, compare offerings, and even help prepare the right test setup. But when it’s time to actually create the experiment, I still need to do it manually in the dashboard.It would be very helpful if the RevenueCat MCP/API could support creating and starting experiments, including choosing the control and test offerings, setting the audience, enrollment percentage, metrics, and notes.The ideal flow would be:Assistant analyzes the account and recommends an experiment. Assistant creates the experiment as a draft. I review it in RevenueCat. I approve/start it.This would reduce setup mistakes and make it much easier to run well-designed pricing and LTV experiments. Thanks!
I believe I have followed the documentation correctly, but I must have missed something since restore is not working. Purchase works fine in my testing, thus far all on simulator, iOS and Android.On my first page I do the following: @override void initState() { super.initState(); SettingsRepository().addLaunchCount(); WidgetsBinding.instance.addObserver(this); handlePaywall(); } void handlePaywall() async { presentPaywallIfNeeded().then((result) { print('Paywall result: $result'); if (mounted) { if (result == PaywallResult.notPresented && kDebugMode) { Purchases.getCustomerInfo().then((customerInfo) { if (mounted) { setState(() { _debugCustomerInfo = customerInfo; _paywallResult = result; }); } }); } else { setState(() { _paywallResult = result; }); } } }); } Then in the page I handle the result.
I'm using a Flutter project and RevenueCat for payment processing, but both of my projects are experiencing subscription failures. The SDK is showing the following error message: E/[Purchases] - ERROR(): 🤖‼️ Error when fetching products - DebugMessage: Billing Unavailable. ErrorCode: BILLING_UNAVAILABLE.E/[Purchases] - ERROR(): 🤖‼️ PurchasesError(code=PurchaseNotAllowedError, underlyingErrorMessage=Error when fetching products - DebugMessage: Billing Unavailable. ErrorCode: BILLING_UNAVAILABLE., message='The device or user is not allowed to make the purchase.')E/[Purchases] - ERROR(): 🤖‼️ Error fetching offerings - PurchasesError(code=PurchaseNotAllowedError, underlyingErrorMessage=Error when fetching products I used a real machine to run it, and my APK was also released on Google Play's internal testing platform. I tried it on different machines and logged into different Google accounts. I've checked the forums and seen similar issues before, but there weren't any correct solutio
Could you please provide an update on support for monthly subscriptions with a 12-month commitment in the Apple App Store?The iOS SDK 5.76.0 appears to include some initial support. However, it does not yet seem possible to create or configure subscriptions with a monthly billing plan in the admin interface.Do you have an estimated timeline for when full support will be available?
Hi guys, this is maybe a little weird request but I just came to think about this cute button you guys had on your website. I think it was the “Book a demo” or something like that. When hovered, a cats paw appeared from right behind it and tried to hit your cursor. Is this still in place somewhere or did you remove it? BestMoritz
Hi,I have a published v2 Components-based paywall that is not serving correctly. Both my app and the RevenueCat Preview in App (official RevenueCat iOS app) are showing the default fallback template instead of my custom design.Setup details:Project ID: projfb81dd09 Offering ID: promo_lifetime Paywall status: Active & Published Built entirely with built-in v2 components onlyWhat I've already tried:Confirmed paywall is Active and Published Confirmed Offering is correctly assigned Used RevenueCat AI editor to clean up legacy fallback header structure and normalize carousel config Published changes after each fix Duplicated the paywall, attached the duplicate to the offering, and republished Tested all of the above via Preview in App every timeNone of the above worked. The fact that Preview in App also shows the fallback confirms this is not an app-side or SDK issue — it is a RevenueCat backend serving issue.Has anyone experienced this? Any suggestions would be appreciated.
I havé the same problem can you help me this is my email : bilalneufcink@gmail.com
Hi! We’re looking into moving a multitiered model and I’m currently designing some paywalls for this.I’d like to use the Footer component to be able to have the purchase button always visible at the bottom with the plan length choice on top of it, but I’m unable to get the selected tab to effect the contents of the footer.Is there any way to make this work currently?
Hey everyone,I came across this previous discussion about Apple’s new “monthly subscriptions with a 12-month commitment” feature:https://community.revenuecat.com/sdks-51/monthly-subscriptions-with-a-12-month-commitment-7629?tid=7629&fid=51Since that topic is now closed, I wanted to ask about the current state of support on the RevenueCat side.If we enable this billing option in App Store Connect for an existing yearly subscription product, should everything continue working normally in RevenueCat without any additional changes?Main things I’m wondering about:- Will entitlements continue behaving normally?- Will RevenueCat webhooks continue firing the same way?- Any differences in renewals / expiration handling?- Is there any way to detect this billing model via SDK or webhooks?- Any known issues or edge cases before enabling it in production?We rely pretty heavily on RevenueCat webhooks + entitlement logic, so I just want to make sure enabling this on Apple’s side won’t unexpectedl
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.