Discussion and help from anything related to RevenueCat.
Recently active
Hi RevenueCat team and community!How about paywalls that come alive? Animations could breathe life into paywalls and encourage users to buy. I’ve even whipped up a quick Android prototype – just take a look!SDK tech solution - use Lottie animations. This seems to be possible since all platforms (?) are covered:Android: lottie-android (https://github.com/airbnb/lottie-android, Apache 2.0) iOS: lottie-ios (https://github.com/airbnb/lottie-ios, Apache 2.0) Web: lottie-web (https://github.com/airbnb/lottie-web, MIT) React Native: lottie-react-native (https://github.com/lottie-react-native/lottie-react-native, Apache 2.0) Flutter: lottie-flutter (https://github.com/xvrh/lottie-flutter, MIT) Kotlin Multiplatform: compottie or similar (https://github.com/alexzhirkevich/compottie, MIT) Capacitor: Web?Component payload example:{ "fit_mode": "fit", "id": "someid", "margin": { "bottom": 0, "leading": 0, "top": 0, "trailing": 0 }, "name": "", "padding": { "bottom": 0, "leading": 0, "top": 0,
Dear RevenueCat team and community,I’m currently exploring the most robust and scalable approach to integrate RevenueCat into my app’s architecture, and I would greatly appreciate your insight.Specifically, I’m looking for a way to use RevenueCat as the payment processor, while managing subscription logic and access control entirely within my own backend.I’ve reviewed the documentation and several community examples, but I haven’t come across a setup that fully aligns with this approach. Below, I’ve outlined the different options I’ve considered — along with the challenges and trade-offs associated with each — in the hopes of receiving your feedback on what might be the most appropriate and future-proof solution.ObjectiveManage all access control and feature restrictions (e.g., premium functionality, group boosts) internally, while using RevenueCat for purchase handling and subscription lifecycle management.Option 1: RevenueCat as the Source of Truth (via API)This follows the conventio
Hi,I am implementing a paywall for our iOS app. The problem is that we are two devs, so our Developer team is not an organization - which means that I need to use different bundle id and team than him. This does not effect other functions of the app, such as api calls to firebase and other, but it seems to affect Revenue Cat. When testing the paywall, do I need to have same bundle id as is set in App Store? Thanks for help! Edit: Also, I should add that the paywall simply crashes (does not retrieve offerings), but on the revenue cat dashboard a new “customer” appears.
Is there a way to filter out specific product from the revenue chart? Basically I want to see the revenue from all my projects and products excluding only product x.
Hi,How i can change the bottom color (gray bar) under "restaurar compras" using Flutter?Im using the demo flutter code from docs, but don't have option to change that part.Thanks.
Tbh im super super paywall editor won't support centering vertically and surprised example paywalls are basically hardcoded heights and won't look good when switched to tablet screen preview. The paywall editor is lacking option to centre element in available screen height. Take any example of the paywall, switch to tablet screen preview and you'll see everything anchored to top of the screen instead centred vertically to take full available screen height...Reproduce easily: create empty paywall → add features element and try to center it vertically in available space - theres no way to do it as element spacing cannot be set to fill height because “can't fill width - parent element set to Fit”. But parent element is simply paywall element without option to adjust this setting. Setting height to pixels. Without feature of entering element in available space its not possible to build properly reactive UI adapting to different screen heights
I would love to get access to a create project api. This will take out a manual step within our internal process. Any plan on releasing it soon? Thanks!
I would really prefer to test and build as much as I can before having to deploy to the app stores and do the whole build process. Is there really no way to test in editor in sandbox mode?
We are currently using RevenueCat in Observer mode on Android. We would like to create a Paywall and show it. Is that possible in observer mode though? I couldn’t find anything in the documentation.It seems that the Paywall handles the purchase itself and only provides callbacks for a finished purchase. But we would need to process the purchase ourselves.
I’m using purchases_ui_flutter 9.0.0-beta.3 with Flutter web support, and trying to get a rough idea of how much effort I should be putting into building a custom paywall, or whether I can wait for support in the SDK.Is there a rough timeline for this that can be shared, or is this not being actively developed? Thanks!
I’m using RevenueCat latest paywall. Right now the “Cancel” button scroll through the content. If the content is long enough, the cancel button is hidden when the user scroll down. Some user would miss the cancel button and thought that the paywall is not dismiss able. I had complaint either the paywall is broken because they can’t dismiss it or it’s a hard paywall when it isn’t.I know I can add a cancel button inside the footer component but I don’t want to put it so close to the subscribe button.Is there a way to make cancel button sticky to the top like other paywall?
Hi there,I’m trying to get custom fonts working on a Paywall V2 within an Expo project. After following the RC instructions, things work fine on iOS - however I’m not sure what I’m supposed to do to get Android to use the custom fonts. On Android, my Paywall just defaults to a system font rather than the custom fonts (and all variants end up looking the same).My Expo config is as follows:Expo config This creates the following structure my `android` folder when I build the project - which appears right (as in, the fonts are being copied and an xml file is being generated by expo-font):Generated android folder structure from ExpoThe generated XML file looks like this:Generated xml_hind.xml file I’ve also uploaded the fonts to the Paywall of course. However what I’m unsure about is what am I meant to set as my Android resource names in RC? I’ve tried a combo of various things, but none seem to work. In addition the “Learn more” text doesn’t actually link to anything in this dialogue - so
I recently started using multiple app variants workflow as described here https://docs.expo.dev/tutorial/eas/multiple-app-variants/ So basically for development and production it will have have different bundle identifier.For exampleDevelopment Build: com.yourname.stickersmash.devProduction Build: com.yourname.stickersmashI had configured everything and it worked great for com.yourname.stickersmash . So the question is to support both dev/production build with same codebase, how should I configure revenuecat? What’s the good practice?Do i need to create another app in revenuecat dashboard , everything exactly same except the “Google Play package” and “App Bundle ID” ??Note: after building with com.yourname.stickersmash.dev I’m having error, ofcourse it should have error as in revenuecat dashboard is configured as com.yourname.stickersmashThe error : [RevenueCat] 😿‼️ Error fetching offerings - PurchasesError(code=ConfigurationError, underlyingErrorMessage=There's a problem with your co
Does the web SDK does not support in-app purchases, user management, or most of the methods ?
In my app I sell subscription and consumable in-app purchase packages. In the app my default offer includes subscription packages. I’m fetching my in-app purchase packages with hardcoded offer id like “default_credit_offer” and I want to make experiments for default_credit_offer but I haven’t found the solution for that issue can you help me for that. Is revenue cat support this situation?
Hi there, I have an iOS app with auto-renewable subscription. Previously, we used to store the purchases in our server database and open features inside the app based on it. Now, we are trying to move to RevenueCat and opening the features using the below code instead of relying on our server side subscription status.CustomerInfo.entitlements["Pro Access"].isActive After user update the new version with RevenueCat, will you get the active subscription automatically from Apple Receipt and enable entitlements or should we call syncPurchases programmaticaly so that you will enable entitlements based on it? Please advise, Thank you.
Hi everyone! I'm just getting started with programming, and I'm currently trying to integrate RevenueCat with Supabase to control user access based on subscription status.I created an Edge Function in Supabase that receives the webhook from RevenueCat and tries to extract the app_user_id from the payload to identify the user and update their data.The issue is: even though I can see the app_user_id correctly in the request body, I still get a 400 error saying "user_id not found". 🥲Since I'm new to all this, there's a good chance I'm missing something simple — I'd really appreciate any help or guidance! serve(async (req) => { try { const body = await req.json(); const entitlement = body.entitlements?.premium_access; const event = body.event; const userId = body.app_user_id || body.subscriber_attributes?.user_id?.value || body.customer || body.aliases?.[0]; if (!userId) { console.error("user_id not found"); return new Response("user_id not
I read Upgrades, Downgrades, & Management where it says:There are no code changes required to support upgrades, downgrades, and crossgrades for iOS subscriptions in your app. A customer can choose to upgrade, downgrade, or crossgrade between subscriptions as often as they like. I know this is possible externally from the the iPhone Settings “Manage Subscriptions” page.I want to know if it’s possible internally from the app.For example, the app presents an annual subscription paywall to a monthly subscriber. If the user tries to subscribe to the annual plan, will it seamlessly switch subscriptions?In the past, attempting to purchase the same subscription within the same group returns an error. I’m cautiously shipping both approaches: internal paywall and redirect to external settings.
Hi! Is there an endpoint available that allows me to only get my active subscribers?I was only able to find this endpoint, which just returns all customers:https://api.revenuecat.com/v2/projects/{projectId}/customersI saw this old thread where this wasn't possible, but it would be great if it's been added since then.Furthermore, I looked through the docs here, but wasn’t able to find an endpoint that just returns my active subscribers / free trials.https://www.revenuecat.com/docs/api-v2#tag/Entitlement/operation/detach-products-from-entitlement
I’m using RevenueCat Experiments and would like to clarify how targeting rules interact with experiment variants. I’ve reviewed the documentation here: RevenueCat Targeting FAQ, which states that experiments are evaluated before custom targeting. However, based on my testing, it appears that RevenueCat respects targeting rules first before applying any experiments.My setup: I’ve defined a custom subscriber attribute called subscription_type, which can be either "Free" or "Premium". For the appLaunch placement, I’ve added the following RevenueCat targeting logic: If subscription_type == "Free" → show a paywall. If subscription_type == "Premium" → no paywall/offering should be shown. I’ve also created an experiment on the same appLaunch placement that tests two different paywall variants. What I’m observing: Users with subscription_type == "Free" are correctly entered into the experiment and see one of the A/B tested paywalls. Users with subscription_type == "Premium" do n
It’s kinda of a joke to me that I can’t put the charts in my timezone. Image that I want to compare my Ad Spend in Google Ads, to acquired users in RevenueCat for a particular day. Since Google Ads has the engineering talent to put charts in my timezone, it becomes rather difficult to compare it to RevenueCat charts that can only handle UTC.
Hi all In my app I am able to make purchases. That is working fineHowever the users who have not yet purchased but interacted with the app including going to the paywall are not showing up under customs in RevenueCat.I am using Flutter flow.What could I be doing wrong?
Hi, stepped away from this particular app I’m working on and just got back to it again. I’m still having difficulties getting the new paywall to show in the app. I had posted a question sometime ago but didn't get to try the proffered suggestions earlier as I stepped away from the app. when I try to duplicate or create a new offering, and attach the newly created paywall to it, it still displays with errors.how do I detach the current V1 paywall from the offerings?@guilherme
The new Customer Center doesn’t seem to be showing the userID. In the previous version, the userID was visible in the Purchase History. However with the new version it’s nowhere to be found. I can confirm this on both debug and production builds (not sure if these are supposed to be different?).I’m looking at iOS platform and on latest SDK 5.28.1 version.I assumed this was removed on purpose in the new Customer Center so I was just about to add it to my app manually. But after seeing it existed in the demo from the June 2025 launch party, I am not sure if there’s something I have to do on my side to show the userID in the Customer Center? My user’s all have anonymous ids.This is how it looks like:
I need to display the subscriptionPeriod and the price of the currently active subscription directly within the app.My app uses anonymous user IDs (no login or authentication), and I don’t have a backend server involved.What is the best way to retrieve and display this information using the RevenueCat React Native SDK?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.