Discussion and help from anything related to RevenueCat.
Recently active
I have a Flutter app, using the Firebase extension and it works for Android, but on iOS, nothing happens (nothing gets updated in Firebase) after the purchase has been made. Tested on real devices, with testing card credits.
Hi there,We have an initial_purchase_event webhook where the event_timestamp is roughly 25th May but the purchased_at timestamp is roughly 2nd May. Do you have any insight as to how this can happen and whether it is a common thing? For some extra context they didn’t open the app between 2nd May and 25th May so it looks like them opening the app on 25th somehow triggered the webhook that for some reason failed to fire when they made the purchase on the 2nd. Thanks,Lydia { "api_version": "1.0", "event": { "aliases": [ "XXX" ], "app_id": "XXX", "app_user_id": "XXX", "country_code": "US", "currency": "USD", "entitlement_id": null, "entitlement_ids": [ "premium" ], "environment": "PRODUCTION", "event_timestamp_ms": 1653492042121, "expiration_at_ms": 1683048830000, "id": "XXX", "is_family_share": false, "offer_code": null, "original_app_user_id": "XXX", "original_transaction_id": "XXX", "period_type": "INTRO", "presented_of
In our application we have a logic of a 3 days free use period, that we provide to the user by granting them Promotional Entitlements through RevenueCat API. During that period user can manually click the upgrade button to start a play store/app store subscription. We would expect that once the store subscription is purchased, promotional entitlements would be replaced with the ones from subscription. However this doesn’t happen, which causes some problems. For example, we can’t tell if user is currently using play store/app store 7 days subscription-trial (available once, after which they got billed automatically), because `entitlement.storeType` is always equal to `promotional` and `entitlement.periodType` is always equal to `normal`. Also all the entitlements have product indentifiers starting with `rc_promo`. Only after the promotional entitlement is expired, they get replaced with correct data from app store/play store. Currently as a workaround we manually revoke promotional ent
Hello - does anyone know how to actually edit this? The app was previously created, and I can’t see on this page how to actually edit this. I have the JSON file ready to put in.Thanks in advanceEDIT: I have now figured it out. Just needed to click ‘view’. Sometimes the simpliest!
I am hoping we can get some guidance on how to test billing errors in the sandbox. Specifically, we are never seeing billingIssueDetectedAt populated.As an example, we subscribe using a license tester on Android in our React Native app. The subscription goes through successfully, and afterwards, we set our payment source to “always decline” through Google Play. Because it’s a monthly subscription, we wait 5 min, and when the renewal charge is made, we get an email from Google saying the subscription was suspended because of a billing issue. However, there is no change on the customerInfo object when I call getPurchaserInfo().Fast forward another 5 min, and the subscription is cancelled. This time, if I call getPurchaserInfo(), I immediately see the purchase is no longer active. However, there is still no value for billingIssueDetectedAt, and the expirationDate has not changed either.I guess my questions are:should the above have generated a billingIssueDetected at value? I know the doc
Hey RevenueCat team,I’m reaching out to you because we currently have an issue with an amplitude events on our android project.We have set up an event that should be sent when a user starts a trial; unfortunately, it is not sent anymore on amplitude for a couple of weeks, where we have the correct data in our revenue cat dashboard. Could you help us figuring what’s wrong?Thanks a lot 🙏
Hello community,I am new to RevenueCat and to swift programming. I am trying to get my first app up and running on the store but am having trouble with making a test purchase. Wondering if someone can help by looking at the debug log.CN_235_Monthly2992022-05-29 18:24:59.214531+0300 CASAFlightData[56957:3007853] [Purchases] - DEBUG: ℹ️ No existing requests and products not cached, starting SKProducts request for: ["CN_235_Monthly299"]2022-05-29 18:24:59.253793+0300 CASAFlightData[56957:3007853] [Purchases] - DEBUG: 😻 SKProductsRequest did finish2022-05-29 18:24:59.253996+0300 CASAFlightData[56957:3008278] [Purchases] - DEBUG: 😻 SKProductsRequest request received responseThe code I’m running is here:class PurchaseService { static func purchase(productId: String?, successfulPurchase: @escaping () -> Void) { guard productId != nil else { return } print(productId!) //Perform purchase //Get the SKProduct Purchases.shar
What happens to an anonymous user’s ID if he buys a subscription on device A, then restores on device B.Will device A still be logged in?I found it in the documentation:Transfer - If a user buys a subscription with an anonymous ID ( account A) and then restores with an identified user (account B) as long as they are logged in with the same underlying store account the store receipt will transfer to account B and only account B will have access to the subscription. how to understand it for different devices?Will the subscription be available for deviceA and deviceB or only for deviceB?
We are going to publish our app with in-app purchases in Russia. Now we have a problem — Google Play is pausing it’s billing system for users in Russia. Can we publish our app with you SDK and solve the problem? Can users from Russia buy subscriptions this way?
Some of our iOS users have reported that nothing happens when when restoring purchases on iOS and I’ve been able to reproduce. From debugging my own account, I have an active subscription in App Store but when I restore purchase, I noticed my `PurchaserInfo` does not include active subscriptions when restoring. In case it’s relevant, the `appUserId` we pass in during initialization with `Purchases.setup()` can be a different id across installs (e.g., a fresh install creates a new user id).Any known issues or advice on how to debug this further? VersionsTested with the following and both had empty active subscription:Flutter v2.10.3 and purchases_flutter v3.8.0 Flutter v3.0.1 and purchases_flutter v3.10.0 Code: final PurchaserInfo restoredInfo = await Purchases.restoreTransactions(); The data in PurchaserInfo: My phone’s subscription on App Store:
My purchasing code seems to work fine for the majority of users, but I have a small portion of them who for whatever reason either have entitlements for a period of time and then lose them, or for whom the entitlements are seemingly never granted, even though the purchase was successful.When checking their customer info in the RC dashboard, it shows no entitlements.Any ideas for how to troubleshoot this? Here’s my code for completing a purchase:if let package = self.offering?.availablePackages[1] { Purchases.shared.purchase(package: package) { [self] (transaction, purchaserInfo, error, userCancelled) in if let error = error { self.present(errorAlert(message: error.localizedDescription), animated: true, completion: nil) } else { if purchaserInfo?.entitlements["Lifetime Access"]?.isActive == true { entitlementsGranted = true saveUserData
We have noticed that Android subscribers in certain states are being charged sales tax on their subscription. For example, our monthly set price is $6.99, but the subscriber is being charged $7.48 ($.49 in tax). Does anyone know if this is related to us setting up business/tax documents wrong, or if Android users need to pay sales tax based on their state laws? We are providing a basic subscription app service and not selling digital goods. I have tried editing the tax settings in Google Play, but some states are uneditable so Google’s preset is taking priority. Thanks for any assistance here!
I would like to run the Revenue Cat demo project on a 2013 Mac running Catalina but receive the error that the nimble package requires Swift tools 5.4.0 and the installed version for Xcode 12.3 (which is the highest version supportable on my hardware) is 5.3.0. XCode 12.5 includes Swift tools 5.4.0 but will not run on Catalina. Is there a workaround for my current hardware?
I have a requirement that I want to set a temporary entitlement for the user, (not through in-app purchase), like this cutomerInfo.entitlements[@"temp_access"].isActive = YES
Hi all, I want to find all purchases made by the user on IAP, in my app’s code. Actually due to some UX issues, some customers have bought both the lifetime and monthly subscription of the app. Now I want to identify such users while they run the app, and instruct them on how to claim refund for one of the purchase. What is the best way to do this, since I don’t have any email id identifier for the users, I was thinking of adding code to identify such users in the app itself, any pointers on what functions can I call from RevenueCat’s SDK for me to solve this issue. I am looking for iOS based solution 14.0+.
Have user A logged in Purchase a subscription Log out, log in as user B Purchase a consumable in-app purchaseExpected: no subscription for user B, subscription for user AActual: subscription for B, no subscription for AThis is extremely wrong, since user B is expecting to get a consumable in-app purchase effect, while they get an effect as if they bought a subscription. Subscriptions should only be transferred when explicitly asked by a user.
I have a use case at the moment where a user who is subscribed to an autorenewable subscription can invite a friend and receive a free month. On Google this is pretty straight forward to implement. The problem is on IOS. I saw we can use the promotional offers in order to implement this. The problem is that I offer that free plan on the server side and the promotional offers can be purchased only on the mobile app side. Is there any way to purchase a promotional offer on our server side?
I am developing an app that gives access to a certain database for information lookup.The idea is to charge $2.99 for the app in the app store which gives access to the current version of the database for life.Then, whenever a new version of the database is available (happens annually), offer a non-consumable in-app purchase to get lifetime access to the new version.My problemIf a user buys the app in 2022 and uninstalls it when the in-app offer to upgrade to 2023 comes up (not purchasing the upgrade) and then reinstalls it, How can I figure out what version of the database they are entitled to? How can I determine when they first bought the app?
I am writing an app with the choice to subscribe to premium features on a monthly or yearly basis. I’ve been wondering if I need to store webhook data that comes from revenuecat into my database. What would be the benefit of this? I thought that the revenuecat API (i.e. javascript API) lets us see if a user (i.e. alex@mywebsite.com) is subscribed to our iOS/Android/Stripe app. Maybe I’m missing the point somewhere here. If I did store the data in a SQL db, how would the schema be best designed? I see @ryan from RevenueCat replied to a similar post but I’m not 100% sure how to implement this best. I see the /subscriber endpoint docs mention a subscriber object, entitlement object, subscription object, non-subscription object, subscriber attribute object - would I want SQL tables for each of these?
I have an existing Objective-C project that is already using CocoaPods.After adding the pod 'Purchases' to my podfile my project no longer runs.It quits with the error messages:__abort_with_payloaddyld[15384]: Library not loaded: @rpath/libswiftCore.dyliblibswiftCore.dylib' (no such file)I am on Xcode 13.0I checked the solutions on this page https://stackoverflow.com/questions/26024100/dyld-library-not-loaded-rpath-libswiftcore-dylib, and based on that, have confirmed the following:For both my project and target:Build Settings > Build Options > Always Embed Swift Standard Libraries is set to YesFor my target:Build Settings > Linking > Runpath Search Paths is set to @executable_path/FrameworksI also Cleaned the project and deleted all Derived Data.What else do I need to do to resolve this error?
Hi, I received BILLING_ISSUE and CANCELLATION webhook event when I changed our subscription plan in the Manage Subscription page on iOS. (I changed my plan from monthly to yearly)‘cancel_reason’ in CANCELLATION webhook is ‘UNKNOWN’.I received a PRODUCT_CHANGE webhook 1 minute after CANCELLATION Why are these webhooks being sent? I'm testing in a sandbox environment.
We are migrating from application created in Account A to application created in Account B. So need to export data from application created in Account A and import it in Account B. Exporting customers data does not have all required fields as below:app_user_id receipt (the raw receipt file) product_id price introductory_price (if not a free trial) currencyWe need to do export data from Account A and need to import in Account B for one specific reason.In 2019, Apple introduced Mac catalyst but at that time no way to unlock app by purchasing in app purchase from iOS. So we integrated RevenueCat and it done really nice job. Both iOS and Mac app has different bundle id and both have different in app purchases. Purchasing on one platform will unlock features on another. As we migrating from one account to another account, it might be like if user don’t update on other platform it might lock user’s unlocked feature as it will not get chance to sync receipts to new account. So better is to im
Hi,We have received a GDPR request from a user for insight into their data, and as such we also need to provide them with the data sent to RevenueCat about them.What tool in RevenueCat will allow me to export all data about a user?GreetingsHans
In the overview panel I see a number of customer ( 398) that does not correspond to the one reported in panel customers (9) . Why there is such a difference? Thanks in advance to anyone that could provide support
I was build an appplication by Flutter, when I release it to Android it is run well, when I put it to TestFlight it also run well,but when I release it to appstore(iOS) it will load subscriptions list fail.what am I missed? help me! my Application name 「幸いな人」
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.