Get help with anything related to RevenueCat.
Recently active
Using purchases_ui_flutter with Paywalls V2 configured with a Google Font (e.g. Newsreader). On a fresh install, the first time RevenueCatUI.presentPaywall() opens, the paywall renders using the default system fallback font. The native UI does not recompose once the font download finishes in the background. If the user closes and reopens the paywall, the correct font displays immediately because the font file is now cached locally. How can we trigger or guarantee font preloading on the first render?
Hello,We're using a commercial font called "Campton" in our RevenueCat paywall. We're occasionally seeing characters in certain languages render incorrectly (please see the attached screenshot).One thing we found odd is that if we change the device's system language to that language and reopen the paywall, the characters that were previously broken now display correctly.For example, with the device language set to Korean, some characters were broken when viewing the Vietnamese paywall. After changing the device language to Vietnamese, those same characters rendered properly.Because of this, we'd like to understand how fonts are applied to paywalls. For instance, when the configured font doesn't support certain characters, is there any fallback logic — such as falling back to the system font?Thanks in advance for your help.
Hi, just wanted to give a heads up that I’ve started to see a read-after-write gap between webhook emission and /v1/subscribers, dating to ~Sept 1 14:30 UTC. My server responds to all webhook events by requesting and updating entitlements from /v1/subscribers (as recommended), and after every INITIAL_PURCHASE event I’ve received since then (all from Google Play purchases), the response has had unexpectedly empty entitlements. No code changes on my end and I’ve not seen similar issues previously.I’ve updated my server to be resilient to this issue, and I’ve also filed a ticket through support with more detailed info on my specific case, but wanted to post this here for a higher chance of visibility as I doubt I’m the only customer seeing this.
On android, in a .aab internal testing build, sometimes the paywall will show and sometimes it won’t. When it doesn’t show, just the loading skeletons display indefinitely. At other times the paywall will show. Restarting the app doesn’t help, and reinstalling doesn’t either. Then at other times the paywall will work perfectly. Another app (installed through the Play store) on my phone that uses revenuecat seems to be out at the same times, and working at the same times.
Hi, just recently added revenue cat in my app,The app is already live without revenue cat, I adjusted prices for one country.Now testing my revenue cat integration in TestFlight and I see the non adjusted price is displayed in my Paywall but then the native subscription sheet shows the adjusted smaller price. I am reading price from `storeProduct.localizedTitle`
Hello,I’m building an iOS app that is not live yet. I want to offer fixed-duration Premium access for 1 month and 3 months, without automatic renewal.In App Store Connect, I can create Non-Renewing Subscriptions, but in the RevenueCat Test Store product selector I only see: Auto-renewing subscription Consumable Non-consumable There is no Non-Renewing Subscription option.Am I missing something, or are iOS Non-Renewing Subscriptions not officially supported in the RevenueCat Test Store/dashboard?I’m specifically looking for the official, supported RevenueCat configuration—not some custom workaround.If they are officially supported, what is the correct way to create, import, map, test, and associate them with an entitlement and offering? If they are not supported, what is the recommended product type for fixed-duration access without automatic renewal (and what product should I make in App Store Connect)?
Hi Team,I am writing to inquire about the eligibility requirements for the "Next Gen" category in the Shipaton 2026 Hackathon.I am currently an active student in Pakistan, studying at a public government school. In our region, government schools do not provide students with official academic email addresses (such as .edu or school-specific domains). We only have our personal Gmail/Yahoo accounts for online registration.Since having a student email is a requirement for verification, is there an alternative way for me to prove my student status? I can provide my official School ID card, B-Form (Government-issued child registration certificate), or current academic enrollment documents as proof.I am highly enthusiastic about participating in the Next Gen category and built an innovative app for this hackathon. Please let me know if I can submit my alternative documents to verify my account manually.Thank you for your time and assistance.Best regards,[Mahad Ismail][Pakistan]
When I try to “Change Plans” using the Customer Center in my ios app, it shows 2 previously deleted App Store Connect subscriptions in addition to the 2 active ones. How can I prevent this from happening? This would be fine if I could configure the subset of options in the RCs “Customer Center” configuration page, but it says I only have 2 subscriptions so I can’t customize it. So there’s a disconnect between how many RC thinks there are and how many options are shown.Also, those two deleted ones were not added to RevenueCat initially when syncing for App Store Connect, but when my app (which was updated from an older version which referenced the deleted plan) connected to RevenueCat for the first time, the deleted plan also populated into RevenueCat’s list of Products.I’m using SDK 5.85.0.
Dear Revenuecat community, I’m running into an issue with Google Play not supporting my national payment method for subscriptions. This causes quite some friction with my users and I can clearly see the difference between the amount of iOS users that convert compared to the very limited Android users. I’ve been looking for a solution and came across RC’s app-to-web checkout: https://www.revenuecat.com/app-to-web I’m curious if there are people that have implemented this app-to-web checkout and could share their experience with friction (does it actually become easier?). Before quickly deciding and implementing I want to ensure that this is a concrete decision and will actually help my users and app in the long run. We could also skip app store fees, thus making the app a bit cheaper to involve a broader user base.In short; does anyone have experience with app-to-web checkouts, and if so did it help your app/does it bring any friction?
Hi,I have several apps under the same RevenueCat project, and the project icon currently mirrors the icon of one of my apps. This gets confusing when I use RevenueCat from my Android device: on the Transactions screen I can only see the project image, so I can't tell which app a transaction belongs to unless I rename each product.Would it be possible to add an option to upload a custom project image? That way I could set a neutral icon that isn't tied to any single app.Thanks!
We use a RevenueCat Web Purchase Link with Paddle Billing as the payment provider.In Paddle Sandbox, our discount is active, has a customer-facing code, and enabled_for_checkout is on. We also enabled “Display discount field on the checkout” in Paddle’s Checkout settings.However, the embedded Paddle checkout opened through our pay.rev.cat Purchase Link shows no “Add discount” / promo-code field.Paddle’s docs say customer code entry is controlled by showAddDiscounts. Inspecting the RevenueCat-hosted checkout bundle, it appears to initialize Paddle with showAddDiscounts: false by default.Is customer-entered Paddle discount-code redemption currently unsupported for RevenueCat Web Purchase Links? If it is supported, where can we enable or override showAddDiscounts for a Paddle web config or individual Purchase Link?We are specifically asking about a user manually entering a Paddle discount code—not RevenueCat Billing discounts, which do not apply to our Paddle-backed products.
Hi, I am integrating RevenueCat in my app and currently testing monthly subscriptions using the Test Store.I tried using the REST V2 api to get the customer’s active entitlements on my backend server. It gives proper response most of the time but during the process of renewal, for about a minute, I get an empty response for active entitlements.“items”: []So let’s say I made a purchase at 10:00AM, here is the series of observations:First purchase → 10:00AM to about 10:04AM - active entitlements presentAt around 10:04AM → Set for renewal → Active entitlements empty~10:05AM → Renewal → active entitlements presentThis repeats until the subscription is cancelled automatically after 5 times.I am using this endpoint:https://api.revenuecat.com/v2/projects/{project_id}/customers/{customer_id}/active_entitlementsIs this an expected behaviour? If yes, then, is the REST api a reliable source of active entitlements?Thanks,Abhi
Hi there - grateful for help!Issue: promo codes created read as ‘not valid for this purchase’ when redeeming in app. I want to create a 30 day trial code. I have a fresh account registered as a tester, in the correct region, with payment information, although I cannot get a code for a free trial to a subscription to work in app. It recognises the code, as putting in an incorrect code produces a different error. I have a monthly base plan + a 3 day trial offering. The same for a yearly.Really at a dead end here, any suggestions/advice appreciated - thank you! 😁
HiI recently started adding more language localizations to my paywall, and I ran into an issue.Is there currently any way to localize the video used in the paywall?Right now, it seems that the video is shared globally across all localizations. The problem is that my "video" is actually an animation containing different translated textx. I really don't want to replace it with a version without any texts, because it's been performing as a great hook and has significantly improved the first impression of the paywall.However, I'm not sure how to properly support multiple languages if every localization has to use the same video.Has anyone found a workaround for this, or is video localization planned for a future update?Thanks!
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
in the customer center > account details > User ID, it only shows the RC anon user ID, not my custom ID. Can we allow showing our ID/alias?
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
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.