Discussion and help from anything related to RevenueCat.
Recently active
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.
I’ve read the article Experiments: Debugging and best Practices for A/B Testing that was probably written when Experiments were still in beta. The documentation mentions an “LTV Chart” with a gauge to determine when you can conclude an experiment.. However, I can’t find that my RevenueCat dashboard. My case: I have two subscription groups that both contain a monthly and yearly subscription. The trial length for the subscriptions between the groups are identical. The only difference is price.I’ve been running the experiment for around two weeks now, and see positive results. However, it’s still unclear for me when I can finish the experiment.
testing
Hello, I’ve added `Purchases.addCustomerInfoUpdateListener` to listen for changes to `CustomerInfo`. Now, I know it works because it gets fired when I make a subscription purchase with Purchases.purchasePackage.However, I do not see it firing when a user cancels their subscription from Google Play or when it automatically expires. I have Google Developer Real-time notifications set up, tested and working. I can also see the RevenueCat Customer History Dashboard get updated with the cancellation/expiration event, but it never propagates back to the listener. If I call `getCustomerInfo()` directly though, I can see the changes.Curious if this broken, or expected behavior? By the looks of it it says it should fire when it detects any changes to CustomerInfo, so in theory it should fire, but it doesn't. Using Capacitor SDK v7.4.0 Thanks!
Hello RevenueCat team and community!I’m trying to integrate Stripe with RC and so far i’ve been following the steps of this documentationAfter receiving both checkout events in my backend server: customer.subscription.created and checkout.session.completed I send a POST request to the receipts endpoints. Every time I send a request the response I get is the following:{ "code":7103, "message":"The receipt is not valid."}Even if I try to send manual requests from the terminal using cURL i will get the same response. Here is an example:curl -X POST \ https://api.revenuecat.com/v1/receipts \ -H 'Content-Type: application/json' \ -H 'X-Platform: stripe' \ -H 'Authorization: Bearer strp_xxxxx' \ -d '{ "app_user_id": "my_app_user_id", "fetch_token": "sub_xxxxx" }'I took the Authorization token from the Stripe App Public API KEY created in the RC dashboardSome additional info:I’m not the owner of the RC project, neither the Stripe account. Yet I have admin privileges in both accou
Hello, My company works with RevenueCat for Google and Apple payments, and while I can find Google Payments inside RevenueCat with some specific info (GPA number, for example), I cannot do so with Apple Payments. Usually, customers send us the receipt for the purchase, but we always send them to Apple to locate their account, causing the users to be very frustrated about our support. Is there a way to locate those purchases, and if so, how to do it? What info is necessary? Cheers
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.