Get help with anything related to RevenueCat.
Recently active
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?
I have an App with a single In app purchase that I would like to see restored on reinstall or device switch. I am using anonymous id’s with the ‘Transfer to new App user ID’ setting. Upon app startup I call the ‘syncPurchases’ function immediately after ‘configure’ and wait for the response before proceeding with other revenuecat API calls.if a user reinstalls the app, then he will not have the in app purchase available. He has to restart the app in order to see it take affect. I have only tested this out on Android, so I am not sure it’s an issue with IOS.This is my react-native code:useEffect(() => { const fetchPurchaseData = async () => { // ... omitted if (Platform.OS === 'android') { await Purchases.configure({ apiKey: APIKeys.google }); } else { await Purchases.configure({ apiKey: APIKeys.apple }); } await Purchases.syncPurchases(); const offerings = await Purchases.getOfferings(); const customerInfo = await Purchases.getC
Hi ,I have the purchase code ,but where should I create the configs/env.props file?
Hi everyone, I'm trying to integrate subscriptions to the play store, and doing all the steps in the guide I get the following error: Store StatusCould not check
I’m considering using RevenueCat for my iOS app for subscriptions.However, my customers are coming from all over the world - a lot from Asia.I’ve read on the forum that api.revenuecat.com isn’t reachable from China (and eventually other countries as well). Is this still the case? - If so, what’s the solution for it?Also, is there a list of areas where RevenueCat is not working/operating?
This isn’t really revenuecat specific, but just a general question that someone here might have some good advice. How do you guys handle users that use anonymous apple emails? I’m talking about the “aoeuaoeua@privaterelay.appleid.com” emailsI don’t think apple allows you to use apple-sign-in without it, so I get lots of users that use anonymous emails which is fine.But when they contact me, they provide their real address and I can’t ever find their account in revenuecat because they didn’t use that email.Generally they don’t know how to find the email they used and its very difficult to explain how to look it up. How do you guys handle this situation?
Hi there! Why does the GET https://api.revenuecat.com/v2/projects/{project_id}/products/{product_id} endpoint return the following for any subscription product until that product is purchased at least once?{ ... "subscription": { "duration": null, "grace_period_duration": null, "trial_duration": null } ...}Right after purchasing the endpoint starts to return correct data:{ ... "subscription": { "duration": "P1M", "grace_period_duration": "P3D", "trial_duration": "P1W" } ...}Is V2 REST API production ready?
At WWDC 2020, Apple introduced the ability to do local StoreKit testing in Xcode (that is, testing without connecting to App Store servers and without using sandbox accounts). I am interested in an answer to the question of whether RevenueCat supports local StoreKit testing in Xcode for a RevenueCat-enabled Mac Catalyst app. As you’ll see below, I’ve been getting a “receipt not valid” error when I attempt that kind of testing for a RevenueCat-enabled Mac Catalyst app.Apple's documentation on StoreKit testing in Xcode indicates that local StoreKit testing does work for Mac apps (on a Mac running Xcode 12 or later, and macOS 11 or later). And in its own documentation, RevenueCat gives instructions for setting up local StoreKit testing in Xcode. What's not clear is whether StoreKit testing in Xcode works with the combination of RevenueCat and Mac Catalyst apps.I followed RevenueCat's instructions (just noted in the last paragraph) for setting up local StoreKit testing in Xcode (important
A user reached out to me this weekend saying that they purchased the app awhile ago and some legacy features that should be unlocked for them isn’t on one of their devices. My app grants legacy access based on the purchase date and original purchase version, similar to the way RevenueCats iOS example shows it being done. The user sent me info from each device and it shows that one device believes the first install was recent, and the other a few years ago. Is it really possible for receipts across devices for a universal purchase could be different? Or could there be some kind of issue like this if the user was part of a Testflight beta? If the receipts can be different, what is the best way to handle granting legacy features? Should I just come in on RevenueCat and grant lifetime for them, or is there a better way of detection on iOS?
This is strange. Apple accepted the latest version of my app, with RevenueCat support which was tested and working in Xcode following all the docs, with test users etc. However, the subscription group page on the app store shows that: “A subscription has been returned and is highlighted in the table below.”And both subscriptions (monthly and annual) show an ‘x’ with “Developer Action Needed”Finally, the English Localization section shows the app group subscription group as “rejected.”So when I download my app, and attempt to subscribe, it crashes.Anyone know what’s going on and how to correct?
We have set the Transferring purchases seen on multiple App User IDs option toKeep with original App User ID. We are testing with the sandbox user. Here is the scenario : 1. User A do the signup with device A and make the purchase so device A’s playstore account linked with User A. 2. Now At the same time if User B tries to purchase in device A it fails as expected and purchase remains with User A. 3. After 2-3 days if we try with User B, it allows and purchase get successful and device A is now linked with User B. Which in this case should not allowed. By setting the option to Keep with original App User ID. it should not allowed this. We are testing it in sandbox and we wanted to make sure this never happens in production.
Hi,I am using RevenueCat to handle google play subscriptions on my app. I use React Native. I am bit confused about sharing subscribed google play accounts. I use firebase email authentication.User A logs in with their credentials and gets subscribed. User B uses User A’s google account and logs in his account and app shows as subscribed as well. Documentation shows I can handle it with Restore Purchases but I am so confused how to do that. Could anyone please help me with this please? Thanks.Update: I changed “Transferring purchases seen on multiple App User IDs” option to “Keep with original App User ID” but still facing with same problem:User A:..D ℹ️ No subscriber attributes to synchronize...Gets subscribed:.. D ℹ️ Requesting products from the store with identifiers: ... D ℹ️ Products request finished for flexriders_weekly_sub..User B logs in User A’s Google Play account then logs in via User B’s email and activeSubscriptions below function returns true: if (customerInf
If I delete a subscriber via the api, what happens to their historical purchase data? Is it still available in reports or exports somehow, or is it just erased from our stats? I would imagine the answer is the same if deleted via the dashboard instead of the API, but please mention if it’s different.
I’ve implemented RevenueCat on iOS, following the onboarding guide, and my app has been rejected. struct MainApp: App { @AppStorage("isPaying") var isPaying = false // inject into SwiftUI life-cycle via adaptor !!! @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate init() { Purchases.logLevel = .debug Purchases.configure(withAPIKey: "***", appUserID: nil) }...}// in PaymentsViewPurchases.shared.purchase(package: package) { (transaction, customerInfo, error, userCancelled) in isLoading = false print(customerInfo) if customerInfo?.entitlements["pro_entitlement"]?.isActive == true { isPaying = true } }
If a customer has auto-renewing subscription, is there a Webhook event dispatched that we can use to notify the customer that their subscription will be renewed and their accounts charged?
Hello,I have previously implemented RevenueCat subscriptions usingPurchases.shared.getOfferings { offerings, error in if let offer = offerings?.current, error == nil { currentOffering = offer }}I am now trying to show a different set of upgraded offerings if the specific user already has our base level subscription. I have reviewed the documentation for displaying packages, but there no examples on how to go from fetching a package and getting to a product for purchase. I have tried to integrate the following code: Purchases.shared.getOfferings { (offerings, error) inif let packages = offerings?.offering(identifier: "not the current offerings")?.package(identifier: "Monthly") {// Display packages for sale}}But I don’t know how to display packages, or select them for purchasing. I’ve tried to create a selectedPackage State variable write to it in the function, but that didn't work for me either. When I use the offerings.current code I can get my products to show up, but if try to fet
Hello, I have a customer who was charged once their trial ended, even though they had cancelled their subscription before the trial came to an end. Can you please help explain this?The RevenueCat messages are:Converted from a trial (8:41PM, 2023-05-10) Opted-out of renew (5:12PM, 2023-05-10) Started a trial (8:41PM, 2023-05-03)Thank you!Kris
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.