Discussion and help from anything related to RevenueCat.
Recently active
Hello everyone,We recently launched a new paywall experiment designed to display our updated v2 paywalls. However, a subset of users were shown the legacy v1 paywall—which still advertises a trial we’ve discontinued—and were subsequently billed during what should have been their free trial. In an effort to stem support ticket volume amid our active marketing campaign, we removed the v1 paywall entirely. Now, we’re seeing users presented with a paywall configuration that doesn’t even exist in our dashboard (see attached image). Has anyone encountered this behavior on React Native with RevenueCat’s new v2 paywalls? We’d greatly appreciate any insights or urgent fixes, as this issue is impacting our current marketing efforts.We’re on:expo 52.0.36react-native-purchases 8.9.1react-native-purchases-ui 8.9.1react-native 0.76.7 const handlePurchaseStarted = useCallback(({ packageBeingPurchased }: { packageBeingPurchased: PurchasesPackage }) => { posthog.capture("onboarding_paywall_purchase
ssss
Hi,When I tried to create a new App Store app, I’m getting “Account permissions are invalid for this request.” when I tap “Save Changes” button. This account is owner of the project.Anyone else encountered the same problem?
Hi, are there any plans to make the Paywalls v2 feature available with the Capacitor SDK? Would be really nice if it was :)Thanks!
My purchase events dont seem to be being sent from revenue cat. I have been monitoring when new purchases happen and never seeing any events populated in the integration view on my project dashboard…
I want to show paywall conditionally based on some app logic, how to do it? Thanks.
Hello community. I use RENEWAL webhook event to receive renewals data from iOS and Android apps. There are cases when price and price_in_purchased_currency are 0. Period type is NORMAL and this happens in production. In the docs this is the info for price field:“The USD price of the transaction. Can be NULL if the price is unknown, and 0 for free trials. Can be negative for refunds.”For INITIAL_PURCHASE event type and TRIAL period the price is always 0, but why on renewals tho?Thank you for help.
I want to offer two options: lifetime and monthly. As far as I understand, the lifetime option has to be a non-consumable in-app purchase. Is it possible to enable introductory offers to this type of product? I would like to offer a free trial for both options. Or are there any other ways to offer a lifetime unlock with a free trial? Thank you
Hi RevenueCat team,I'm running into an issue with the management_url returned by the v2 REST API for purchases made via web billing.Scenario:A user makes a purchase on the web (using RevenueCat's web billing). The management_url returned by the API points to our customer portal, as expected. Later, the same user restores their purchase on our iOS app (since we're sharing purchases across platforms). After this restore, the management_url for this purchase changes to the App Store subscription management page.Problem: This doesn't make sense for our use case, because:The purchase was made on the web, not the App Store. The App Store management page can't actually manage or cancel a web purchase. Our users can't manage their web purchase from the App Store page.Questions:Is this the intended behavior? Is there a way to ensure that the management_url always points to the correct portal based on the original purchase platform, even after restoring on another platform? Am I missing somethin
Hello everyone,I don’t understand why all status is canceled? I also subscribe to my app and I can see the my subscription is canceled also?What is reason of the issue?
Hello.I have an issue with firebase integration. the events sent from revenuecat to firebase with paramenters correctly. but I can’t see the parameters in the firebase or google analytics?So any body can help in this issue?
I've integrated RevenueCat into my visionOS app. The issue I'm encountering is that the paywall always displays prices in USD, rather than the user's localized currency.For example, I'm testing the app via TestFlight while based in Australia, with my App Store account set to Australia. In the app, the RevenueCat paywall consistently shows prices in USD. However, when I tap on a product and the Apple subscription popup appears, it correctly displays the price in Australian Dollars.This discrepancy is concerning, as users might feel misled when they see different prices. Is there a setting or configuration in RevenueCat that ensures the paywall always shows the same localised currency as Apple’s subscription popup?
When i delete a sandbox customer in the dashboard, by selecting the the customer and click on “delete customer”, the customer still appears in the dashboard customer list.Also when i call customers with the api,https://api.revenuecat.com/v2/projects/{project_id}/customersthe deleted customer is still in there. However when i want to open one of the deleted customers in the dashboard customer list, i get a little popup saying:“No customer found with that App User ID. Please note that it's an exact search” However when i delete a sandbox customer with the api,https://api.revenuecat.com/v2/projects/{project_id}/customers/{customer_id}the customer still appears in the dashboard, but it is gone when i call customers in the api. I don’t know if the problem has anything todo with the customer email.In the dashboard customer list, they are all listed by email.If have used the same email when i created those customers through the weblink, but with different appUserID’s.
Hi,For the V2 API, what is the max page limit we can pass?, I tried 100000000000000000 it works. Is there any max limit or we can pass whatever value we need?I saw this post - The response is just addresses the infinite loop bug but doesnt explain if there is a max limit or not?Thanks
Hi all,I’m integrating RevenueCat with my React Native (Expo) IOS app, but my paywall is not displaying any products/packages. Instead, I see “No available packages. Please check your RevenueCat dashboard.” Here’s what I’ve done so far:My app uses the correct bundle ID in Expo, App Store Connect, and RevenueCat. I have a default offering with packages (monthly/yearly) set up in RevenueCat. My annual and monthly package is linked to a product. My subscriptions in App Store Connect are in “Ready to Submit” (not yet approved). I’m using the latest react-native-purchases SDK and calling Purchases.getOfferings() after Purchases is configured. No errors are thrown, but offerings.current is always null or has an empty availablePackages array.Questions:Is the “Ready to Submit” state in App Store Connect the reason my products don’t appear in the paywall? Is there anything else I should check in RevenueCat or my app setup? How long does it usually take for new products to propagate after approv
I’ve been trying to configure one of the new paywalls in my app but I keep getting the message that the offering has no configured paywall. find a simulator screenshot with the error message I keep getting. I think I’ve done everything the way I’m supposed to.
Error Description:TypeError: Cannot read property 'setupPurchases' of nullEnvironment Details:- Platform: React Native (Expo)- react-native-purchases version: 8.9.4- React Native version: 0.76.9- Expo version: ~52.0.42- OS: Android- Build type: Development Error Context:- Error occurs during RevenueCat SDK initialization- Android Manifest includes the billing permission (com.android.vending.BILLING)- Using Expo managed workflow with dev client (expo-dev-client ~5.0.19)Steps to Reproduce:1. Initialize RevenueCat SDK in app startup2. Error occurs immediately during the Purchases.configure() call3. The native module appears to be null when the app tries to access itAdditional Information:- The app is using Expo Router for navigation- RevenueCat configuration is attempted in the app root component- Billing permission is correctly declared in AndroidManifest.xml- Project is using the latest stable version of react-native-purchasesAttempted Solutions:1. Verified billing permission in Android
Dear RevenueCat Support,I'm encountering an issue where RevenueCat is automatically transferring entitlements between users, and I'd like to understand how to disable this behaviour.Preventing Entitlement Transfers In my use case, each user should retain their own subscription entitlements without automatic transfers happening when a subscription is detected on another App User ID (possibly due to device sharing or restored purchases). Is there a way to completely block entitlement transfers? I looked through the dashboard and documentation but couldn’t find a setting to control this. Is this something configurable per app or only through SDK behavior?
Manually Transferring Entitlements There are scenarios where I want to manually transfer entitlements from one user to another (e.g., merging accounts or correcting mistaken user assignments). I couldn’t find any API to transfer an entitlement from user_a to user_b. Is there any API or other way using which i can intentionally transfer entitlement ??
Hi, I wanted to go through an example and understand the current state of a subscriber. The dashboard has “Subscription expired 11 days ago” and my database still has the user marked with the subscription as active and entitled.The way I manage the user database record with entitlements is only via webhooks (I listen to them and grand and remove entitlements accordingly). I think I have some logic issues since in this example the record is not in sync. Example is for user ID: eL9WN4QjQpZgB36ZCPnGhuIC2cq1Customer History in the RC dashboard has these as last few events:My database has these records (event is central USA time): as you can see, the last events are a RENEWAL and then a CANCELLAION after 3 days (which is what my configured grace period is). I did not receive any “conclusion” event for this user. No BILLING_ISSUE, no EXPIRATION nothing like that.As you can see EXPIRATION came first and that is when I removed their entitlements. But then a RENEWAL came 8 days later so I added
Hi team is there any plan for releasing a sdk for electron in future? I know flutter does it however flutter team don’t focus much on macOS and web in general.It would be great if there is an electron sdk. Lot of popular apps are electron based.
I’m busy testing my app and subscriptions are happily going to RevenueCat dashboard, no issue there. When I trigger a cancellation for the subscription from Google Pay, I see it going to the pub/sub without a problem, I see that in my setup screen, the pub/sub shows the time the cancellation went through (Google Developer Notifications Topic IDLast received 2025-04-16 at 04:30 PM UTC) - yet, it doesn’t actually cancel from the dashboard or update in the SDK. Since subscriptions end after 30 minutes, there’s no way to test the “your subscription won’t renew functionality”. I’m fairly confident it generally works, but I’m worried that Google might reject it as they will be cancelling a subscription, but my app will happily show that it will renew.Am I missing something? (I’m yet to figure this out fully for Apple as I had a whole different nightmare with them).EDIT: Immediately after writing this, I decided to just go for it and send it for approval and saw the cancellation came thr
Hi!I am using the new Paywall V2 with Flutter and on Android the image at the top of my paywall is not at the top of the screen.There is a space above the image that is as large as the notification bar, almost as if it was wrapped with a SafeArea but also had a offset of notification bar height.I use RevenueCatUI.presentPaywallIfNeeded().I have set the background color of the paywall to red for these images to be as clear as possible.How it looks from Paywall editorThe componentsHow it looks on AndroidEdit:I have now also tried with text at the top, and that works with no problems. The editor updates the view so that the text is above the image. On the Android device the text appears on the red part and the image is not moved down any further (maybe some pixels)
Hi this is a continuation of the conversation that I missed here.I wanted to find out what are the expected events to come before RENEWAL. Specifically when the webhook sends them to my API.I was thinking that only SUBSCRIPTION_PAUSED can come before RENEWAL but today I got a RENEWAL a day after a SUBSCRIPTION_EXTENDED event. Is this expected? If so, what other event types are expected to come from the webhook before a RENEWAL?Customer History view seems to correctly order these events as well.
Hi there,We tested importing a historical iOS user using the POST /receipts endpoint, passing just these two parameters: app_user_id fetch_token (base64 encoded receipt) The call was successful, and when we search for the user in the dashboard by App User ID, we can see their full subscription history and entitlement details correctly reflected in their Customer Profile.However, this user is not appearing in: Any Customer Lists (Active, Cancelled, etc.) Revenue or MRR charts (even for All Time) Trial/Active Subscriber counts Is there something else we need to include in the payload for these users to be reflected in RevenueCat's aggregate reporting? We’re planning to import all historical users, so we want to confirm the behavior before running the full script.Appreciate any guidance here — thank you!
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.