Get help with anything related to RevenueCat.
Recently active
I am seeing some purchases and trial that are not being reported to Revenuecat. For example, someone purchased the monthly option, and I can see it in Google Play, but not in RC, did not receive a webhook and I can’t see it in my customers by using the purchase ID. This also happened with a trial. Do this users have the entitlement? What is happening?Attached the images.
The same sandbox transaction is sent to RevenueCat every time I close and open the app in the iOS simulator. Therefore I’m seeing it multiple times in the Overview:Is this normal when testing with the simulator?
Here’s my scenario:I would like for our users to be able to purchase a course (one-time, non-consumable purchase), and with their purchase they get a certain number of free months of a premium subscription for free. I’m sure that we can achieve the free months with a promo code. Ideally, the subscription would become auto-renewing after the free period has expired, but if that’s not possible, it would be okay to just have it expire, and then we could prompt users to renew it inside the app.The question is: how can we enable the user to essentially purchase both of these products with only one transaction?TIA!P.S. The app is being built in React Native for both iOS and Android, so solutions should ideally work with both the Apple and Google Play stores.
I’m working on integrating rc to my WebRTC signaling server and it’s hard. Last evening, I deleted all the users from revenuecat and flushed the server’s db. This morning I subscribed and got an event with the userId from yesterday 🪦 I’m using 💯capacitor-purchases 💯 but I don’t believe it has a cache.Are all caches disabled for sandbox users?
Hey RC community could someone please tell me the very Best way to check for an active subscription ?My Current implementation is customerInfo.entitlements.active.isNotEmptyat One Point my implementation was listening to the expiration datecustomerInfo.latestExpirationDate.then added 3 Days to it , which would give the user at least 3 days to have premium service, should in case there’s subscription verification delay from RC database, I implemented this because I have noticed that sometimes when I Hot Restart my App, 1 out of 50 times it loses Subscription and then it regain after another hot restart , this mostly happened when its time for the Sandbox to renew the subscription, by adding a Day or more to the current subscription latestExpirationDate. it give a lot of room for the server to correct itself and not make customer lose premium service.I don't know if this behavior only exist in debug mode. could someone please tell me, if I should be be worried about this in production
I previously added and enabled the Google Play Android Developer API to a Google project I created. I also created a service account and correctly set the permissions for app and financial access. However, I'm experiencing errors related to the Purchase API, and I'm unable to proceed with my next steps.Has anybody else had issue like this and managed to resolve them?Thanks :)
How to get current app version in Webhook Event and GET /subscriber REST API?
I am new and am testing this Framwork using weekly, monthly, yearly subscriptions.I have followed the whole document which in great detail indicates how to set up the Apple Store and Google Play.As code I am using the one from the example provided for Flutter developers.With Apple Store everything works, while (with the same code) with Google Play I get the error message: "The requested item is not available for purchase".But in the Google Play store are all "active" subscriptions.In RevenueCat the Entitlements, Offerings, Products are regularly configured.I just can't figure out where I may have gone wrong as I have followed all the steps and am using the code provided as an example. Debug Console:V/AudioManager( 3198): playSoundEffect effectType: 0 V/AudioManager( 3198): querySoundEffectsEnabled... I/flutter ( 3198): &&&&&&&&&&&&& purchase info are: Package{identifier: $rc_weekly, packageType: PackageType.weekly, product: Produc
I have two products with prices in Rs. 359 and Rs. 1079 in my Google Play Console but whenever I am using the SDK in my Flutter app, I am getting the prices as Rs. 360 and Rs. 1100. Why is this?
Some context I am creating an application that already has an existing web app. The web apps payments are done via Stripe. The mobile app I am building will have payments done via Revenuecat. I am setting a property on my user object to let me know which platform the user has used in order to pay for a subscription. Why am I doing this?If they have payed using stripe on web then I need to let them have access to all premium features on the mobile app. They should not have to pay for a subscription on the mobile app as well. Stripe makes this very easy with their Webhooks. When a user subscribes, a Webhook event gets sent to the backend that tells the user object to update the subscriptionPlatform to “web”. This way I know that the user has subscribed on web, should get access to all premium features on mobile too without duplicate subscribing, and should be directed to the web app to handle anything to do with their subscription. Stripe also allows all of this to be tested in developme
Hi,I’m currently trying to let users purchase an IAP on watchOS, but with the exact same code as on iOS (which works), I’m getting some errors (SDK version 4.2.1): 2022-04-21 14:05:00.526782+0200 Anime Manga Tracker Watch App WatchKit Extension[338:26944] [Purchases] - DEBUG: Make purchase called: purchase(sk1Product:payment:package:completion:)2022-04-21 14:05:00.532433+0200 Anime Manga Tracker Watch App WatchKit Extension[338:26944] [Purchases] - DEBUG: Purchasing product from package - com.xxxxx.xxxxx.xxxx in Offering XXXXX2022-04-21 14:05:00.534097+0200 Anime Manga Tracker Watch App WatchKit Extension[338:27113] [Purchases] - DEBUG: PaymentQueue updatedTransaction: com.xxxxx.xxxxx.xxxx 2000000012345678 () 2000000012345678 - 12022-04-21 14:05:00.553831+0200 Anime Manga Tracker Watch App WatchKit Extension[338:27113] [Purchases] - DEBUG: Unable to load receipt, ensure you are logged in to a valid Apple account.2022-04-21 14:05:00.554048+0200 Anime Manga Tracker Watch App WatchKi
Hi all,I have noticed a number of apps in the iOS store that are able to show me how many active subscribers, by simply logging in. They can even display them on widgets! How are they able to get this number with me just logging in? Are they using some call in the REST API? I can’t seem to figure it out!Any information would be greatly appreciated as I am trying to make a small app to track my active count on my LaMetric clock.Many thanks,Dan
A Play store subscription with a 7 day free trial offer (active only for one region), is returning introductory price for other regions as well. Both the base plan and the offer are Backwards Compatible.
Hi all,When testing monthly subscriptions for an IOS app in Testflight, I have created 30+ test users via gmail accounts. Each time I have a new user create an account on my app and subscribe, the Sandbox data in Revenuecat switches all the Customer info to that new ID (uid in Firebase), including backdating activity. Is that expected behavior, or should each new account (aka new firebase UID) have it’s own identity in the Revenuecat Sandbox, so I can accurately test? Here is some example history for the current user. Does this look normal? I did have the user logout of their app for less than 24 hours but they did not “opt out” of renewal.Also see the transfer of the subscription. Is that how the testing works?
We have multiple developers on the team that are working on our mobile IAP implementation, which means they all have to receive webhooks on their local dev machines to test things. So far we have been managing this by just changing the webhook URL as different people test, as well as having multiple RC apps to test with. This can be pretty cumbersome because we can’t duplicate apps, we have to create new ones fresh and go through the process of copying the existing configuration from the old app.It would be so much easier if we could just configure multiple endpoints that all webhooks get sent to. Is this possible, or something that we could get added to your backlog?Thanks.
Hello, I’ve managed to invoke presentCodeRedemptionSheet() inside the react native app, and did successfully setup the subscription offer codes in the app store. However when we try to redeem the code, native modal says that the offer has already expired even though expiration date is in the future. Is it possible to test the subscription offer codes in the sandbox? thanks
We implemented iOS offer codes, but not with revenueCat properly. So now subscriptions are being read, but the total paid / revenue is $0, when in reality it’s not.Is there a way to custom edit individual entries?
I’m trying to apply a developer-determined offer in the app.Using react-native-purchases 6.0.0.I’m able to fetch the Offerings using `Purchases.getOfferings()` and I can see the discount as an option in what is returned. packageType: 'MONTHLY', product: { discounts: [ { cycles: 12, periodNumberOfUnits: 1, priceString: '$2.99', period: 'P1M', price: 2.9899999999999998, periodUnit: 'MONTH', identifier: '12_month_25_percent' } ],However, I am unsure on how to then apply this offer.purchasePackage and purchaseSubscriptionOption each don’t seem to offer an option to apply the discount.purchaseDiscountedProduct and purchaseDiscountedPackage say they only apply only to iOS.So how should I apply a developer determined offer in android when making a purchase?https://www.revenuecat.com/docs/google-play-offers#eligibility-criteria
Hello my subscription id is lotto_world_pro and base id is lotto-world-pro-monthly. in revenuecat my id for this product is lotto_world_pro:lotto-world-pro-monthly. When i use the code below in flutter if i use revenuecat id i receive a product not found error but if i use just lotto_world_pro(sub id) it works well and revenuecat sees my transactions. Am i doing it right? Shouldn’t the revenuecat id sholud work?Future<void> _getAndroidProductsSubs() async { try { androidSubs = await Purchases.getProducts( [ 'lotto_world_pro', ], type: PurchaseType.subs, ); } on PlatformException catch (e) { debugPrint(e.toString()); } }
My iOS app has recently passed Apple's review process and is currently in the status of "Pending Developer Release." Prior to the official release, I wanted to test the in-app purchasing feature, so I issued a promo code shortly after the app was approved. Through this promo code, I downloaded my app, but unfortunately ran into an issue. When I attempted an in-app purchase, the screen remained in a "loading" state. This issue was not present in my TestFlight version, where the iOS payment sheet typically displayed promptly.I'm uncertain whether this could be an issue with my code, or if there is a certain waiting period required after approval before the in-app purchase functionality can be tested, even with the app downloaded via a promotion code.With these concerns, I'm feeling quite apprehensive about making my app public. I would greatly appreciate if someone could provide some insight or guidance on testing in-app purchases in the actual production environment before public releas
If I'm using the 'Transfer to new App User ID' Restore Purchase Behaviour, is just calling syncPurchases() after I call Purchases.configure() a reasonable course of action?I could put a button there and do a proper restore, but if I’m presuming that the user is just going to hit the button anyway, doesn’t syncPurchases() save them the trouble?Many thanks.
I regularly find that a billing error is triggered within minutes after a user converts to a subscription from a trial. This is problematic because we send emails based on billing error events, and in many cases this is one of the first communications our users receive from us. Any idea why the billing error could be happening so soon after the subscription payment is successfully charged?
Hi there,I’m just starting out trying to implement and test an App Store auto-renewable subscription. I followed the setup guide and am using the iOS simulator to test. I was able to make a test purchase of a monthly product I have configured and I can see it in the sandbox with my anonymous user. I can see also subsequent purchases for the same user. The question I have is, all of the purchases are INITIAL_PURCHASE and none of them are RENEWAL. I was wondering if this was normal? From what I understand, the app store should do up to 6 renewals per day before you have to wait 8 hours to test again on the same sandbox user account? I can see currently 20 INITIAL_PURCHASE transactions in the Overview Dashbaord. In my code I just added this one:Purchases.shared.purchase(package: package) { (transaction, customerInfo, error, userCancelled) in if let customerInfo = customerInfo { if customerInfo.entitlements[name]?.isActive == true { // code for unlocking goodies
Hello,I’m running an experiment where one of the items is an in-app purchase, but I can't find how to account for that revenue in the results.Thanks
I am reading RevenueCat's documentation to implement subscriptions using RevenueCat.But, I encountered a problem while setting things up as I was reading the documentation.When create new service account in Google Cloud Console, I cannot find Monitoring Viewer.Should I choice Monitoring Snooze Viewer?
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.