Discussion and help from anything related to RevenueCat.
Recently active
I am trying to debug a complex problem with my webhook handler code that I have already integrated with RC webhook some time ago. I need to download the history of JSON webhook requests for the last year ideally. I see this history on the webhook integration page but it only lists that most recent 20 events. I need a much longer history and I need to be able to download this JSON. How can I do this?
So I recently started seeing more and more users starting to get issues fetching products and this is the error they get after calling Purchases.shared.getOfferings:There is an issue with your configuration. Check the underlying error for more details. There's a problem with your configuration. None of the products registered in the RevenueCat dashboard could be fetched from App Store Connect (or the StoreKit Configuration file if one is being used). More information: https://rev.cat/why-are-offerings-empty After investigating it, from what I've seen, it only is happening for users on iOS 17.3.1. For all other users, it seems to be okay and has been working successfully.I’m wondering if anyone knows what could be causing this / also happening to them?
when i try to purchase its throwing error .this is the log,but its printing product details. D/EGL_emulation(11680): app_time_stats: avg=273.33ms min=5.91ms max=6435.79ms count=25D/[Purchases] - DEBUG(11680): ℹ️ Vending Offerings from cacheD/[Purchases] - DEBUG(11680): ℹ️ Checking if cache is stale AppInBackground falseI/flutter (11680): 152.17968I/flutter (11680): Product{identifier: test_01, description: this is test product description, title: test product (lauramonk.app.hotdealsgemet.prod (unreviewed)), price: 152.17968, priceString: ₹152.18, currencyCode: INR, introductoryPrice: null}D/[Purchases] - DEBUG(11680): ℹ️ Vending Offerings from cacheD/[Purchases] - DEBUG(11680): 💰 Purchase started - product: com.revenuecat.purchases.models.ProductDetails@e5f3361e - offering: test_01D/[Purchases] - DEBUG(11680): 💰 Purchasing product: test_01D/[Purchases] - DEBUG(11680): ℹ️ Checking if cache is stale AppInBackground falseD/EGL_emulation(11680): app_time_stats: avg=534.12ms min=14.29ms
My app and pawwall is in landscape. I want the payflow, when I click ‘subscribe’ in my paywall to come in landscape too. However, it is coming in portrait. How do I change? Here’s my code #ifndef PAID_APP-(IBAction)premiumButtonPressed:(id)sender{ NSLog(@"premiumButtonPressed"); // Start Progress [progressIndicator startAnimating]; #ifndef PAID_APP [FIRAnalytics logEventWithName:@"ShopViewController" parameters:@{@"ShopPremiumButtonPressed": @"Monthly"}];#endif // TEST HARNESS //[self processPremiumSubscriber]; //return; // TEST END NSLog(@"RevenueCat - Purchase monthly product called"); [progressIndicator startAnimating]; [[RCPurchases sharedPurchases] purchaseProduct:rcStoreMonthlyProduct withCompletion:^(RCStoreTransaction *transaction, RCCustomerInfo *customerInfo, NSError *error, BOOL cancelled) { //if (customerInfo.entitlements.all[@"your_entitlement_id"].isActive) { // U
I’m finding RevenueCat Experiments limited because stopping the experiment is all or nothing. If I stop the experiment, RC changes all those users back to the default offering right away and stops collecting conversion data from the users. (Except it can keep gathering some subscription renewals in some cases???).This is limiting for apps that a strong long tail conversion (ie convert a lot subsequent to first use) and even for apps with subscription trials. Consider an experiment I just did… after 4 days it's very clear that the new paywall I’m testing performs much better. So I wan’t to stop adding users to the experiment and give all new and old users who are not in the experiment the new paywall so I can see more real $ coming in. But I don’t want to _stop_ the experiment. I want to keep the experiment running but stop adding new users to the experiment. I want to leave the experiment running for another 10 days or so to catch conversions that happen on day 2,3,4,5,6,7,8… and I wan
In my test track Android app, Every time I try for initiate the process of purchase I have a grey screen with no text or indication of what is happening. I cant execute a test purchase at all. Can someone help me?The image shows the status of my project.
As a business it’s critical for us to receive this event data in CleverTap from RevCat."price" (we do not need "price_in_purchase_currency" - we'd like to have it all show in RevCat as US dollars) "product_id"We want to adjust and add PROPERTIES to the existing events. We are not adding new events.How can we do this? Is there another way to send the data?
Hi there, I just wanted to check if I’m missing something obvious here… I am adding support for Google prepaid subscriptions to my app. I am trying to find a way of knowing if the entitlement the user has is a prepaid (non-renewing) subscription. The docs suggest that we should be using Entitlements and not ActiveSubscriptions of CustomerInfo. However the only clue I can find is that checking the active subscription product identifier will contain whether the active entitlement is prepaid or not, it doesn’t seem to be included in Entitlements anywhere. I would have expected that willRenew would be false, as the subscription will indeed not renew, but it seems to return true. Am I missing something or is this a mistake? Many thanks!
I went backand forth inside documentation about how my backend with in shole flow.Please add explanation on how my backend register user id and check payment/subscription statusAs far as I understand frontend app need to get RevenueCat customer id via SDK Send that ID to backend to save. Assuming RevenueCat customer ID does not change, Our backend should keep track of it. When user does action All kind of Webhook will send request to my backend. Somehow we have to figure out RevenueCat customer ID from webhook request params. ( which I could not do ) Then we have to call REST API /subscriptions. https://www.revenuecat.com/docs/customers/customer-info#web-apps But it is not documented About step 1, here answer says webhook is suggestion. Is there any other ways?About step 2, link mention send customer id everytime to backend. But no documentation about why. Does it change everytime?. Can’t we just save it first time?. What about my backend cronjobs? they can’t take this id from fronten
Hello RevenueCat, I am using React Native version 0.73.1. I have installed react-native-purchases: 7.21.0. It works fine on the emulator, but when I deploy it to TestFlight, the app crashes immediately upon opening.
This app was really helpful to checkout my revenue cat earning quickly and on the go. It just stopped working and I cant see it on google play any more.Any info?
I'm currently using RevenueCat for my native Android app. I'd like to add an iOS version and I'm considering Kotlin/Compose Multiplatform Mobile in order to reuse much of my Kotlin code. It's still early days for KMM, but I was wondering if there were plans to add a KMM SDK. And if not, how would you recommend I manage subscriptions in this case? Thanks!Sam
Hi, i have a flutter app and want to include the new paywall feature, but i get error messages, i cant make it work. (Currently i can only test for android, if thats important) If i leave my MainActivity.kt (the main activity for android is in kotlin, not java!) at:class MainActivity : FlutterActivity() { }I get the error: Unhandled Exception: PlatformException(0, Make sure your MainActivity inherits from FlutterFragmentActivity, null, null)when i click the button that has this onTap:onTap: () async { await RevenueCatUI.presentPaywall();}, But if i change it to:package com.mypackageimport io.flutter.embedding.android.FlutterActivityimport com.revenuecat.purchases_flutter.FlutterFragmentActivityclass MainActivity : FlutterFragmentActivity() {} like the documents and community suggests, it gets Unresolved reference: FlutterFragmentActivityand the app doesnt even start. What should i do to solve this problem? Kotlin seems to be the standard way for Android in Flutter, and i dont think i
Hi there,Our app has options for subscriptions:monthly renewing subscriptions annual renewing subscriptions lifetime month_upgrade_lifetimeThe lifetime option is implemented as a non-consumable purchase in the App Store.The issue we’re having is that once a user has purchased a lifetime subscription in the sandbox, there seems to be no way to ignore that purchase (even to Deleting Account, user can still restore after deleting the account).So we have to treat sandbox lifetime purchases as invalid. But if I ignore sandbox purchases, this would also ignore non-sandbox purchases for the same entitlement. As lifetime purchase may have high priorityin Revenuecat SDK.If one user made a monthly subscription via AppStore and also made a lifetime purchase via TestFlight or made a lifetime purchase via TestFlight first and then made a month_upgrade_lifetime purchase via AppStore. restore or getPurchaseInfo methods will return the lifetime purchase recipient (Sandbox) first on TestFlight en
Hey, Just got the following warning while debugging restore purchase method: allowSharingPlayStoreAccount is set to false and restorePurchases has been called. This will 'alias' any app user id's sharing the same receipt. Are you sure you want to do this? Just wondering what the allowSharingPlayStoreAccount is and if we need to do anything with it? Doesn’t seem to be any mention on the restore purchases docs page. cheers James
Do both `rc_trial_converted_event` and `rc_initial_purchase_event` fire at the same time when a user completes their free trial and pays for the first time?The definitions are:Initial purchase: A new subscription has been purchased.Trial converted: When an auto-renewing subscription product converts from a free trial to normal paid period.In another post you replied:Are both rc_trial_started_event and rc_initial_purchase_event sent, when Trial is started? Or is it only the trial one?You’re probably sensing a theme here, but just the rc_trial_started_event will fire here. Not clear from your Flow charts as rc_trial_converted_event is not there, you’re showing initial_purchase and renewal.
App Subscription Launch Checklist said “Include disclosure of auto-renewing subscription details in your app description.", but Paywall does not have a field entering disclosure of auto-renewing subscription details. Should I implement a screen including disclosure of auto-renewing subscription details in addition to Paywall?
Hi, I am currently using RevenueCat in my Flutter app, which has been successfully released on both the Apple Store and Google Play. In-app purchases are functioning correctly on both platforms, and there are no issues with the latest releases.However, I am facing a challenge exclusively with the Android version: specifically, the configuration of the "Google Real-Time Developer Notifications". Although all other setup steps have been completed successfully and validated, I encounter an error when attempting to complete this final step.Attached are the necessary screenshots from the RevenueCat dashboard, confirming that all steps preceding this one have been completed without issue, and from the Google Play Console, highlighting the error encountered during the test notification process.Your assistance in resolving this specific issue would be greatly appreciated. I have been blocked on this issue for a few days now.thanks
Hello! I am integrating RevenueCat with Flutter, and so far everything was working good. I added subscriptions in the last version and they seemed to work good. However, when I added a new version and submitted it to review to Apple, the review team can’t seem to fetch offers in the app and hence the new version is getting rejected. It works fine in TestFlight, and in Android, and I can't reproduce the error on my side. But the app review team keeps getting the same error. Any ideas why that might be?
Hi,Our app is a subscription streaming with Monthly and Yearly package.The current flow we want to use with RC are:1) . Subscription Purchase but the user not login yet to the app. So still as a guestGuest > Purchase > Successful Is it correct if we use this const { customerInfo, created } = await Purchases.logIn(guest_id); ?Then we will force them to login before can use the full features of the app.Login > successfulBecause its already logged in, then we can get the actual subscriber_id for that user,Is it correct if we use this const { customerInfo, created } = await Purchases.logIn(subscriber_id); ?So in RC, the app_user_id will be updated with the latest one which is subscriber_id, whilst the original_app_user_id is still the original Anonyomous ID.Then later, this user can login to any device / platform and still can get the same status of the subscription.Is it my understanding on how to implement is correct?Thank you
Hi.Is it possible to create a custom trial plan that dont require any card submission and wont try to automatically switch to payed plan once trial is ended? The point is to offer a confident free of charge usage of all premiem features without subsribing to Apple InApp which auto switch to payed plan and charges after trial.
Hi there, Sorry i looked already on the community but i couldn’t find the exact answer. From my understanding RevenueCat is free if my monthly intake are lower than 2500$, when i reach more than 2500$ i’ll be charged the 1% of the whole.My question is, when do i need to switch to the Scale Plan? Is there a limit for the free plan, for example: it automatically switches to Scale Plan when I reach 3500£ MRR ? From my understanding, i can choose PRO plan forever, doesn’t matter how much MRR i make, or it will automatically switches to SCALE plan once i reach a certain limit? Thank you very much,
Hello,I seems that sometimes RC doesn’t seem to send the data for events to Adjust, even if the AdjustId is set.We discovered some discrepancies between our analytics and some of our users don’t have the AdjustId set (might be on our side), but then we have this case where it is set and still RC didn’t send it.Could somebody from the team help and have a deeper look at it? Thank you.
Hi,We wanted to use Google’s cancel subscription API and need the token (linkedPurchaseToken) for the same.Our Android app makes purchases as per this documentation.Checked the payload that of the request that is made when a purchase event happens but don’t see it there. Is there any way we can get linkedPurchaseToken when a purchase is made? Thanks
We are currently facing an issue with our mobile application, on payment rejections for subscriptions paid in Brazilian Real (BRL). This problem has persisted for approximately four months and exclusively affects payments made in BRL, as payments in USD and other currencies process without issue. To aid in your investigation, here are some details from our recent analysis: Technical Details1. Error Code: PurchaseNotAllowedError(3, "The device or user is not allowed to make the purchase.")2. Error details: debugMessage: '', code: 'E_SERVICE_ERROR',responseCode: 3 }3. Details: This was tested in app, on emulators. Also using test and real credit cards. Have you seen this error before? I dug through forums but wasn't able to locate a solution.
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.