Discussion and help from anything related to RevenueCat.
Recently active
Hi! I created a custom paywall, published it, but the correct version is displayed only if the English localization is installed, in other languages the default paywall is displayed There is localization in the application, I also added localization in the paywall constructor The problem appeared today, before that everything worked correctly
So it has been a couple of days since I launched an app and today I got a chance to get my friend to try it out. He even purchased it as it was solving his problem. Then I checked both AppStore Connect Analytics as well as Sales Reports, even the Revenuecat Dashboard - none of these show the actual purchase. Is this info realtime or does it take time to reflect? And just to be sure, I checked with him he mentioned the pro features are unlocked as well which means the purchase has gone through.
I am using the following code in RN to determine if a user is subscribed: const customerInfo = await Purchases.getCustomerInfo(); const isActive = Object.entries(customerInfo.entitlements.active).length > 0; I have received multiple emails recently about people saying they are subscribed but being prompted to subscribe again. No code has changed in this regard. I’ve received emails from iOS and Android users. Is there a better check or a bug in the SDK? The above code is run when the app boots and sets a global session state. It seems to have worked well for a year+.
We have RevenueCat working in our app, but unfortunately we are unable to properly use the Branch integration. Although we can get RC to send data successfully to Branch, Branch will now allow us to forward applicable data downstream to necessary ad platforms, due to a missing parameter. We are unable to determine what this missing paratmeter is. Has anyone else had this issue? Have you been able to resolve it? Or this a known bug at the moment within RC (a rumor I have heard)? Thanks in advance for any thoughts and assistance :)
Hello everyone,I hope you're all doing well. I'm currently working on a Flutter application that integrates Firebase for authentication and utilizes Riverpod and GoRouter for state management and navigation. While I've successfully implemented RevenueCat in previous projects, I'm encountering challenges with this particular setup.Current Setup: Flutter Firebase Authentication Riverpod GoRouter RevenueCat with Firebase integration Issues Faced: Paywall v2 Not Detected: In my previous applications, Paywall v1 functioned without issues. However, after transitioning to Paywall v2, the paywall isn't being detected or displayed as expected. I've reviewed the documentation but haven't found a solution. User Management and Exception Handling: I'm uncertain about the best practices for managing users and handling exceptions post-purchase. Specifically, I'm looking for guidance on: Ensuring that once a user completes a purchase, their entitlements are correctly recognized and mainta
Hey,I want to A/B test two paywalls with different prices, but the Experiment only lets me change the Offering, not the paywall — it always uses the default one.I tried duplicating the paywall, but I can't assign a different one in the Experiment.Any way to A/B test both paywall and pricing properly?Thanks!
Hello! I have a setup of Stripe => Webhook RevenueCat => Firebase integration.In some cases Stripe subscription is created out of the scope of RevenueCat integrations resulting in customers with an anonymous app_user_id which need to be connected to the Firebase UID manually. Adding firebaseUID manually to Stripe’s customer and subscription metadata does not update RevenueCat app_user_id even tho subscription update event is successfully delivered to RevenueCat Posting the receit via RevenueCat API does indeed add a correct alias to the customer, however that is not reflected in the Firestore database via the Firebase integration. Furthermore, I would need to get the firebaseUID as the main app_user_id, not an alias to be able to access it in Firestore. Please help me out, how should I go about this?
I’ve see this asked before both in terms of subscription price and in-app purchase price. It seems the only way to the current subscription price in the local currency is to get that information from the webhook. This seems completely against the core value proposition of Revenuecat as a source of record for in-app payments. Why don’t you guys actually fix your apis? Is this product still under active development? It seems the client sdks rely on the v1 REST api and the v2 REST api has been abandoned. Please clarify what’s going on and give a firm roadmap of when you expect to fill out the v2 api.
I have a Standard and Premium plan. If a user is sub’d to the Standard plan, how can I show the Standard plan as active and current without the purchase button? I want the user to see all plans, including their current plan. I’m trying to avoid hard-coding a current plan screen in the app.
First time submitting an app to the app store.. so i got it rejected to due RevenueCat paywall not working properly only displaying a white loading screen. Ive tested it on testflight and i get the same results, a white loading screen.my question is, did i mess up on the code, or is a white loading screen normal till they approve my “subscription” products? ORIs the paywall suppose to load without products till they approve them? im only pushing it to IOS store for now, so i havnt tested anything on GOOGLE. Ive attached an image of what i see when i reach the “paywall”
I’m sometimes seeing that the initial view of the RC Paywall or calling `Purchases.shared.customerInfo()` can be super slow - sometimes over 90 seconds. This even happens after I’ve loaded the offerings successfully.For Paywalls, this results in the view showing the ‘loading’ screen (where it has the skeleton of a paywall, with the ‘shine’ reflecting over the top) for an extended period of time. For calling `customerInfo()`, it means my app takes a significant amount of time before the function returns a value, or it means I don’t get any values from the `customerInfoStream` for that same duration after app launch.As mentioned, this happens even if I call `Purchases.shared.offerings()`, which always seems to return quickly.This seems to only be a problem on the first launch of the app, and it mainly seems to be an issue when running in the simulator - running from Xcode onto a real device seems to be ok, although this has me nervous. Primarily, I want to know if this behavior is exp
Hello, I am new to revenuecat, so I'm sorry in advance if this is a very basic question.The issue I am facing is this:1) when I am in the create paywall view and have selected a design, after selecting an offering.2) I do not understand how to get the prices that are defined in the AppStoreConnect to show up in the corresponding offering in the Paywall.I have successfully created Products with the Status being Ready to submit. The offerings and Entitlements are also created without any issue.The big issue is when I am in the paywall editor and use Variables to show the price, the price being shown in the design is NOT my Store Price. Is this expected? Will I see the dummy RC values for prices and NOT the real prices from AppStore in the Paywall editor?
Hi team, This issue has been there for over week and I tried all possible solutions based on my search and asking around, the in-app one-time purchase flow seems to work absolutely fine if the app is installed on my device through XCode Build process or even in simulator but when installed through Testflight, it shows “No Packages Available”. This is my first app so it is getting even tricker, and just a few hours ago Apple rejected for the same reason saying in-app purchase is not loading. Because it shows “No Packages Available”, in “Upgrade Now” button is not visible. I checked the Revenuecat details as well as Apple Store Connect details and I see it seems to be correct. Any help please?
Hi team,I’d like to know how I can control which offers are shown on the paywall, depending on my own logic.Specifically:• On Google Play, if I create an offer with the eligibility set to “Developer Determined” and tag it with something like offerX, how can I make sure that the paywall only shows that specific offer if I choose to, based on logic in my code?• On iOS, if I create a promotional offer, is it possible to display the paywall with that promo shown as “redeemed” (active) or not, also based on code logic?In other words, I’d like to programmatically control which prices and offers are shown on the paywall: either the standard prices or the prices from a specific promotional or introductory offer I’ve created and selected.Is this currently supported using your Paywall API / SDK, or do I need to build a custom paywall to have that level of control?Thanks in advance! Best regards,David
Hello, I need help. My paywallscreen does not generate the Apple Store Connect purchase receipt in the Testflight environment and it is hindering the approval of my application on Apple. I thought it would be because the signature was in review status, but Apple support informed that the status is only approved when the application has the approved binary following the guidelines. However, our binary will never be approved because it does not generate the Revenue Cat receipt. What can we do? I need urgent support because I am thinking of removing the Revenue Cat implementation to resolve this error as soon as possible. And the following error appears: 'Unable to complete the purchase. Product ID not mapped'
Environment: iOS app using the latest RevenueCat SDK Subscriptions set up in a single Subscription Group in App Store Connect Monthly subscription (Level 2) and Annual subscription (Level 1) In Sandbox Steps to Reproduce: User purchases the Monthly subscription. Before the Monthly period expires, the user purchases the Annual subscription. RevenueCat webhooks are received in this order: PRODUCT_CHANGE RENEWAL CANCELLATION (with product_id corresponding to the Annual subscription) Observed Behavior: After upgrading, the CANCELLATION webhook references the Annual subscription, causing our backend logic to treat it as if the new subscription itself was canceled. When the Annual subscription naturally reaches its expiration date, it does not auto-renew, confirming that the annual plan’s renewal has indeed been disabled. Expected Behavior:CANCELLATION should reference the Monthly product (old plan). Annual subscription should continue auto-renewing at each billing
Hi community,I’m stuck with the subscription product change before expiration. How to implement it in my android app (preferably in java)? All other operations are well executed through the paywall, except the product change. Unfortunately, it charges the new chosen plan at full price (instead a calculated pro rata up to the expiration date) and does not cancel the prior one. I asked to chatGPT, but there were a lot of issues with their suggested codes. I gave up with AI after more than 6 hours trying their codes. Each of their corrections generate new issues.Is there someone here who can help me?Ben
I have two views in my app: HomeView and ResultsView.Both of them have a navigation bar button which opens Paywall using fullscreencover. Paywall uses RevenueCat PaywallFooter. Now when purchasing from HomeView onPurchaseCompleted is called, however when we purchase via ResultsView onPurchaseCompleted is never called even though purchase goes through.Im guessing it has something to do with the fact that ResultsView is further down the Navigation Stack. But its super odd.
Followed the instructions on setting up for google play store, Created a closed release, with one active subscription, and added a testerIAM, service accounts, got all three validations(Note, when I tried to redo the steps with a different json, I couldn't get a single validation). But from Google Play Store “Test notification couldn't be sentMake sure that you've entered the topic name in the correct format, Google Cloud is set up correctly and that you have the required permissions”
I recently realized I can use paywalls for consumables, the token packs in my game, which is great. But I can’t get the ideal config I’d like. My current home grown store has a buy button for each pack which I find more intuitive in this case than selecting a pack and one buy button for the whole group. I think that works great for subscriptions/lifetime where you just want one option, they all do the same thing, it’s just the terms that are different. In my paywall you can hit the buy button next to each pack or tap on the packs image (which would also be nice but would be fine if I couldn’t do that). As far as I can tell this isn’t possible but just making sure. If not would be great to have this. Attached is a screen of what my home grown paywall looks like. Additionally I have a badge showing % off compared to the base pack, I haven’t tried to generate that with the current tools, I’m not sure if it’s possible.. of course I can bake it into the images but ideally it’s dynamic a
Similar post https://stackoverflow.com/questions/72245004/add-an-offer-to-an-already-existing-user-subscription-in-my-android-app-google We offer a monthly subscription and want to incentivize users who attempt to cancel by presenting them with a discounted renewal of the same plan. We use a developer-determined offer for the same monthly subscription, applying it to replace their existing subscription.And trying to apply offer like this. /// switch subscription Future<CustomerInfo> switchToOffer(SubscriptionOption option, String oldProductIdentifier) async { return Purchases.purchaseSubscriptionOption( option, googleProductChangeInfo: GoogleProductChangeInfo( oldProductIdentifier, prorationMode: GoogleProrationMode.deferred, ), ); }While attempting this switch, the store returns an error: “Something went wrong on our end. Please try again”I am trying to figure out whether this approach is even possible, and—if it is—what we might be doing i
I'm getting rejected from the App Store for my kids app that's using the latest revenue cat API version 5.21.2 due to the inclusion of the AppTrackingTransparency framework. my app 100% does not import this framework, the only place that does is the RevenueCat package. here is the comments from apple: - Your app implements the App Tracking Transparency framework, which is used when apps collect data about users and share it with third-parties for tracking purposes. Since Kids Category apps are not allowed to collect, transmit or share identifiable information with third-parties, you should not implement App Tracking Transparency in your app. Next Steps To resolve this issue, please remove this functionality or revise your app so that no personally identifiable information or device information is sent to third parties.
Hello community,I hope that everyone is doing really great.So, I am reaching out for a very severe blocker, having for last couple of days about the Apple (iOS) Redeem Code functionality. My app has the following flow:User signup with either Google / Apple or Email. At this point, we have the user email and I have used Purchases.configure({ app_user_id: ‘’ }). I have also verified through Purchases.getUserAppId() and seems like I have the correct userId. Next screen after signup is a paywall and user can Redeem Code from here as well. I am using the RC’s suggested way (to redirect the User to App Store via URL instead of displaying Apple Sheet). User gets redirected and when user Redeems the offer there, App store asks the user to `Open App` and when user do so, I have the watcher for that and I call `Purchases.logIn(userId)` and `Purchases.syncPurchase()` the problem is that my Webhook is always getting `Anonymmous Id` despite of me having set the correct app_user_id. My backend is he
Hi there!Is there a way to cancel subscriptions from the RevenueCat Dashboard?I tried navigating to Customers → Tap on a customer and under Entitlements, the three dots have only the “Refund” option.We removed a certain feature from our mobile app and we need to cancel the subscription for those who opted in for that feature. Regards, Florian Nistor
I'm using RevenueCat in a Flutter app to manage in-app subscriptions. On iOS, the subscription products load and display correctly when running in debug mode on a real device. However, when I upload the app to TestFlight, the products fail to load — I get an empty list or no products shown at all.
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.