Discussion and help from anything related to RevenueCat.
Recently active
Hello,We are in the process of developing a so-called “web2app” onboarding for our iOS app.Currently, all purchases are handled by Apple using IAP:s. Soon, some purchases will be handled by a third party, before the user has even opened our app. In this case, the user will go through a web flow to create their account and pay for our product, after which a webhook is posted to us with some information about the user and their purchase. At this point we will create a record for the user in our system.Now, to my question:The 3rd party payment processing entity will generate a user id, which they will use when posting information about the premium purchase to RevenueCat and to our system (using webhooks). After the user downloads the app, they will be able to authenticate as the user we have created in our system. However, we want to alias the user id given to RevenueCat (generated by the 3rd party), with the user id in our system.Is there a way to achieve this using the RevenueCat iOS SD
I configured my revenue cat in main.dart file ,then I called my profile api,I got my user data then set my user ID in revenue cat login function.I did my purchase logout from mobile also used revenue cat logout function.Then I logged in using different account,but I am getting old subscription data...
purchases_flutter: ^8.10.0purchases_ui_flutter: ^8.10.0 If a user is on Android is not logged into their Google account, the paywall shows “Error 2: There was a problem with the store”. This pop-up blocks interactions and the ok button does not work. Furthermore there is no way to customize this message for example to say “Please login to your Google account”.On top of this, the Paywall does not have a good cache invalidate method, its often updated in the Rev Cat UI, and no updates show up for hours on App? Additionally the Paywall edit screen is buggy, changing text inside the ReveneuCat dashboard is often not reflected in the preview, even days later.
Hey there!I want to pass some custom variables to my paywall like {{ user_first_name }}, how can I do that with RevenueCat?Thanks!
Is there a way to disable some of the emails described here? https://www.revenuecat.com/docs/web/web-billing/lifecycle-emails I would like to disable them while testing because they spam my inbox (due to the short renewal periods). I’d also like to be able to disable some of them, like the renewal emails.
The RevenueCat SDK (5.25.3) cannot be built in Xcode 16.4.The error message is as follows:```Failed to find a suitable device for the type IBSimDeviceTypeiPad3x (com.apple.dt.Xcode.IBSimDeviceType.iPad-3x) with runtime iOS 18.5 (18.5 - 22F77) - com.apple.CoreSimulator.SimRuntime.iOS-18-5```
My revenuecat id is “app99d60b4027”at the sandbox mode is working fine butI got this error when try to purchase on “live mode”3D Secure 2 is not supported for the specific transaction.I was try both of my credit card, all is same error.Step to reproduce:1. goto https://pay.rev.cat/lkdqglryuptczslh/userprodtest-0012. choose package and fill credit card form3. press “Pay Now” buttonnote: userprodtest-001 just a random mocking idResult:Thank you.
How can i delete an ongoing subscription from app store if I no longer want to have it , i want my app to be free
Scenario: a user subscribes on one platform with a free trial, it expires or is cancelled and then the same user goes to a different platform and subscribes again - is there a way to prevent the user accessing another free trial via RevenueCat?
I am participating in the bolt.new hackathon and working to integrate RevenueCat into my React Native Expo mobile app, however I am encountering issues. Primarily, if I understand correctly, the Expo Go app does not include support for `revenue-cat-purchases` library, so I would need to create a development build of the app to integrate RevenueCat into the app. Part of the hackathon terms are to primarily use Bolt.new to build the app, and I don’t believe bolt supports expo development builds (only Expo Go). Has anyone had luck building a subscription based app in Bolt.new? I greatly appreciate any guidance or suggestions.Thank you!
I have done research on the best way ti monitize my app and it seems that displaying a Paywall before onboarding or just after is a recommended approach. I think I will use this approach but have a question on how to implement. I plan on using a RevCat paywall that is displayed right after the install. The paywall will offer two plans (Yearly and Monthly) and will have a free Trial of 7 days. This would be accomplished using the Apple store and Google Play built in functionality. The paywall will also have a Cancel button. The question I have is what is the recomened approach if a user clicks the cancel button on this initial paywall? Do you still give them access to app for 7 days anyways? I’m thinking this would be the way to go and I will setup a diiferent Offering (Yearly/Monthly/Paywall) that does not have free trial (through the stores and a Revcat Paywall) and give access to the user to purchase a subscrition in the app. I would also track the install date and present th
I have tested from three different browsers (Safari, Chrome, Firefox) and two different operating systems (one macOS and one Windows), but I still encounter an error that prevents me from uploading or dragging and dropping files.I reviewed similar issue posts, and I hope your customer support won’t provide generic responses like restarting my browser or computer, or even my Wi-Fi router.I’m unsure whether your Sentry wrapper is throwing an error or if it’s related to cookie access.
I have created 4 products weekly, monthly, annual and custom. when i try fetch it only gets custom one i cant get them all. what should be problem? I have one “default” offering and add them all in.
I’m using @revenuecat/purchases-js within React Native for Web, and I’ll trigger RevenueCat’s purchase page to be displayed, which has a back button. If I press that back button, the purchase page disappears, but most of my app is covered by a black div, with the exception of my header. Weirdly, I can’t select the div with the element selector in developer tools. Is there a way to address this? Is there an option to open the purchase page in another window, by chance? I couldn’t find one in the docs. Thank you.
Hello, Im having issues with opening Paywall V2 inside Expo app (Android). On iOS it works totally fine but on Android the app crashes (the screen becomes black).Here is the code for my modal:```import { useRouter } from 'expo-router';import { View } from 'react-native';import RevenueCatUI from 'react-native-purchases-ui'; export default function Paywall() {const router = useRouter(); return (<View className='flex-1'><RevenueCatUI.Paywalloptions={{displayCloseButton: true,}}onDismiss={() => {router.back();}}/></View>);}```Deps:```"expo": "^53.0.9","react-native": "0.79.2","react-native-purchases": "8.10.1","react-native-purchases-ui": "8.10.1",```Important note: It also didn't work on Expo SDK 52 and RN 0.77
Hello, Our app allows user’s to change their subscription, so that when their current subscription expires, the new subscription will start.I was looking for some data from the RC SDK that would indicate this upcoming change but I can’t find anything at all. The dashboard will show that a users `renewal preference` has changed, but the SDK doesn’t seem to have this information.I found this issue, which addressed the same topic, but the “answer” (not from an RC employee) was to just not handle that scenario… which as you can see from the last comment, isn’t great.Is there anyway we can get details of the subscription renewal change?
Hi,I have configured Stripe + RevenueCat integration based on the documentation, but I do not see any subscriptions created in my RevenueCat test data. The IDs appear to line up (see screenshots), and server-to-server notifications are enabled with ‘Track new purchases from server-to-server notifications’ turned on. The RevenueCat app is installed and visible in Stripe. I have mapped Stripe product IDs (from the Default Sandbox) to product IDs in RevenueCat. However, even when a successful subscription is created in Stripe, nothing is received by RevenueCat.If someone could help me understand what might be going on and what steps I might take to debug, it would be much appreciated!
Hello, I am using the RevenueCat Paywall system. My application does not use compose, I use activity, fragment and xml system.I can use RevenueCat Paywall perfectly. Now I want to do A-B testing using the Experiments feature. I followed the document but I could not apply A-B testing.Let me explain what I did step by step:1. I made all the necessary installations for RevenueCat paywall and I was able to successfully display the paywall I designed by giving offerName as a parameter and purchases are working.2. I designed a new paywall and associated it with an offer.3. I made a configuration as I added in the visual from the Experiments section.4. I started Experiments.Result:A-B test was not applied. The paywall or offer I wanted is not coming. The default offer is constantly coming.I am sharing the code snippet I used and the configuration on the experiments page visually. Can you tell me where my mistake is or how I can solve it?Best wishes!Note: My app version corresponds to the vers
Hi,I am from the UK and about to launch my new mobile app.I have set my paywall up correctly and app store connect correctly. All price regions are set. My app store and device region are set to the UK. My account is logged in.In development mode, I see the correct currency on the paywall which is pounds. When I launch in testflight I see $ (on the paywall) and then on the app purchase subscriptions sheet I see pounds. This happens on multiple devices in testflight.Why is this happening?I am hesitant to actually push to app store until I can be sure this is fixed.I do not want all of my customer seeing $ on the paywall, it must show the correct currency.Of all the threads I’ve read on this, no on whether from revenucat or elsewhere can actually describe the problem.Thanks.
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 th
I know for web billing the user can access their customer portal on each email - What’s the recommended path for providing a “billing” screen in the app itself?Is the recommended path to simply use the purchases SDK and build a custom GUI or can we load in the customer center dynamically?If custom GUI, is the customer center link anywhere in an SDK response for things like getting invoices, receipts, etc.. might be good enough to simply have a “manage subscription” button that links out to you all. Thanks!
## Issue DescriptionWhen implementing RevenueCat UI (v7.x.x) in a Flutter application, I've encountered a consistent issue where `PaywallResult.cancelled` is always returned in iOS Sandbox testing, even when purchases are successfully completed. This affects both consumable purchases and subscriptions. In android works well. This issue is only with the Paywalls v2. With the v1 used to work correctly. ### Actual Behavior- Android: Works as expected, returning `PaywallResult.purchased` for successful purchases- iOS Sandbox: Always returns `PaywallResult.cancelled`, even though: - The purchase is successfully processed by RevenueCat - The entitlement/purchase is correctly reflected in RevenueCat dashboard - Customer info is properly updated I would like to know if there is any known solution for this or is related with the sandbox environment. Thanks!
same as reported here and no solution is provided in that thread:
I offer Yearly/Monthly and lifetime on my paywall. I know that for subscriptions they are in the same subscription group.. so if a user chooses to switch from monthly to yearly they aren’t subscribed to both, it automatically switches them.. but what if they are on a subscription and choose lifetime? It’s in a diff section of appstore connect and not part of the “subscription group” so would they then be both subscribed and have the lifetime unlock ? All three products are on my paywall in the same offereing and maybe rev cat handles making sure only one is active? thanks!
Message:Hi RevenueCat team,Some of our Android users are encountering a fatal error when calling Purchases.getOfferings():PlatformException: PlatformException(error, There is no singleton instance. Make sure you configure Purchases before trying to get the default instance. More info here: https://errors.rev.cat/configuring-sdk, null, lb.f0: There is no singleton instance. Make sure you configure Purchases before trying to get the default instance. More info here: https://errors.rev.cat/configuring-sdk at com.revenuecat.purchases.Purchases$Companion.getSharedInstance(SourceFile:12) at com.revenuecat.purchases.hybridcommon.CommonKt.getOfferings(SourceFile:8) at com.revenuecat.purchases_flutter.PurchasesFlutterPlugin.getOfferings(SourceFile:5) ... ) This issue is happening sporadically in production, and the error implies that Purchases.configure() was not called — however, our code ensures that configuration is completed before any calls to getOfferings() are made.This may indicate a ra
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.