Get help with anything related to RevenueCat.
Recently active
Any chance to get offering metadata as JSON String? It’s fine when it’s only JSON object but not with JSON array. It’d be nice to map JSON to models if we can get it as String instead of map.
Hello. As above really. We’ve been selling a product for a few months and have 50-60 customers who have bought it. We’ve realised we need a new entitlement for this product, which I've created, and I now need to update everyone who has bought this product to give them this new entitlement. Is this possible? Thank you, George
Hello, is there an API to get all the subscription infos of our our customers? Our goal is to connect it to a google sheet where we would display all the neccesary data to run some analytics. One issue that we currently have is that we cannot filter the people that cancelled due to a billing reason and the once that opted out. Getting all the subscriptions with their related info would be a good way to solve this. Thank you very much
My iOS/Android app was hacked by some users and now they can bypass the payment process and access all the pro content of my app.Does Revenuecat help to prevent that by double authenticate before unlocking the pro content?
One of my customers is getting this error: “Failed to connect to api.revenuecat.com/54.92.158.15:443” When I try to ping the IP address from my local machine, the request times out. Any ideas what might be causing this issue? Is the revenuecat API down? Or perhaps API IP changed but DNS issue?
Hi, I have a xamarin app and am testing on a physical device.I can make a purchase in the sandbox environment, and would like to test if the unsubscribedetected flag get’s correctly set.unfortunately after having made a succesfull purchase, and navigating to the subscriptions screen, I see no subscriptions are shown (and thus can’t be cancelled) is this scenario available for testing?Since I use xamarin I can’t test on the simulator (as far as i know)
I use RevenueCat in my app, I wanted to know how I can proceed to connect with Stripe through payment links, in the Stripe form I have a custom field where the user enters his code, the one necessary for RevenueCat to pick up the user (USER ID). Any idea how I can do that?
In my app, I am trying to use Purchases.setAttibutes() to capture user settings and store them in Firestore. I had hoped that the attributes would appear in a document generated by the Firebase RevenueCat extension, but the attributes do not appear. Is this possible? If not, where are these attributes actually stored?
During testing, when the subscription expires, the user still appears to have premium status in the iOS app, even though the RevenueCat server has already updated its status. The app seems to remain in premium status until I close and reopen it multiple times.I understand this might be an issue with my app. I've implemented a ViewModel and set it to refresh when the subscription status changes. However, it doesn't recognize when the subscription has expired.How can I address this problem? Does anyone have any suggestions?
Hello! I wanted to transfer my application to another developer account. what actions should I take in RevenueCat?
I'm currently working on an application project with FlutterFlow and would like to ask for your advice and expertise. The aim of my application is to enable users to create online training courses, while other users will be able to subscribe and pay monthly for access to these courses.However, I'm facing a major challenge. I'm looking to see if it's possible to implement a feature that allows users to dynamically create products on the RevenueCat platform. RevenueCat is mainly used to manage subscriptions and revenues in mobile applications, but it doesn't seem to offer any functionality to allow users to dynamically create products or training courses.So, I'd like to gather your knowledge and experience in this area. Have you already worked on a similar project, or do you have any ideas on how to handle this functionality? Are there alternatives to RevenueCat that could meet this need? I'm open to any suggestions, ideas or advice you may have.Thank you for your help. Your knowledge wi
When I do a build as followseas build -p android --local;the .aab file that is generated when uploaded does not have the billing permissions.I”m using the latest expo for react native. How do I get billing permissions to show up?I”ve also added this is in my packages.json"react-native-purchases": "^7.0.0",my partial app.json"android": {"versionCode": 316,"adaptiveIcon": {"foregroundImage": "./assets/adaptive-icon.png","backgroundColor": "#ffffff"},"permissions": ["android.permission.RECORD_AUDIO","com.android.vending.BILLING"]
From webhook docs: With webhooks integrated, you can:Remind subscribers of the benefits of your app when they decide to unsubscribe, or let them know when there are billing issues And… that’s it. No more bullet points. Is that really all RC webhooks are for? Feels like someone accidentally trimmed the list of use cases. I’m looking to change my users documents in my database after certain events: subscription, cancellation, etc. Am I looking in the right place? PS: Now, I’m pretty sure I’m looking in the right place, but hopefully the team can take this feedback to improve that particular section of the docs.
The Google Play Services credentials documentation from Revenue Cat walks through a step (1) in the API Access page of the Google Play Console. However, that page no longer exists: Can step 1 be ignored now? PS: Google Play docs definitely need to be updated.
Good afternoonWe would like to understand better what you consider “Unsubscribe Detected At” in the documentation here: https://www.revenuecat.com/docs/customer-info If a user turn-off auto-renew, does that property gets enable with the date when the user turned it off? Thank you
After I implement RevenueCat with Swift Package Manager, everything works fine till user verification process. I create a checkStatus function: class SettingsController: UIViewController {static var subscriptionStatus = false Purchases.shared.getCustomerInfo {(customerInfo, error) in if let error = error { print("Get Customer Status Error: \(error.localizedDescription)") } else { if customerInfo?.entitlements[RevenueCatAPI.entitlementID]?.isActive == true { DispatchQueue.main.async { SettingsController.subscriptionStatus = true print(SettingsController.subscriptionStatus) } } else { DispatchQueue.main.async { SettingsController.subscriptionStatus = false print(SettingsController.subscriptionStatus) } } } }I need to reach t
I am getting the following warning in my application. I don't want to have any surprises when these dates arrive.https://android-developers.googleblog.com/2023/06/changes-to-google-play-developer-api-june-2023.html Start your migration to the monetization.subscriptions APIsIf you use the Google Play Developer API client libraries - available for Java, Python, and other popular languages - we recommend upgrading to the latest versions, which already include the monetization.subscriptions APIs. Base plans can be managed with the monetization.subscription.basePlans API, and introductory pricing and free trials can be managed as offers with the monetization.subscriptions.basePlans.offers API.I'm using purchases_flutter version: ^5.2.3.Should I be concerned?I await guidance.You're using the InAppProduct API to manage subscriptions, which is now deprecated and will stop being supported for new apps in January 2024, and for all apps in May 2024. Start using the new Subscriptions API to get ne
Hello! New RC user here. 👋Regarding the practice of offering a default “standard” price on a paywall during onboarding only, and then offering a discount price when the paywall is triggered elsewhere within the app: 1st question: Obviously I can use the “current” offering for the onboarding process. However, after that I will need to hard-code the “discount offering” title into the app, correct? 2nd question: If I want to remotely remove the “discount offering” at a later time (and show default only), is it safe to delete the offering in the RC dashboard and just code my app to show the “current” offering on default?I would appreciate any thoughts or suggestions on this strategy. Thanks! Note: on iOS, using separate Subscription Groups for each product.
When creating multiple offerings (ie. for sales or A/B testing), I understand it’s recommended that iOS devs use separate subscription groups so that users only see one offering in iOS subscription management page. HOWEVER...Question: What happens when a current user reinstalls on a new device and hits “Purchase” instead of “Restore Purchases”? With the separate subscription groups approach, there is the chance they will be double-charged if get the “B offering” when they originally purchased the “A offering”, correct? 😬Comments? Suggestions? Thx.
Hi,I’m wondering about MTR for Stripe purchases.We have some products in Stripe that we do not want to be recognised in RevenueCat as revenue. From my understanding the RevenueCat server notifications are not required:RevenueCat does not require server notifications from Stripe, however doing so can speed up webhook and integration delivery times and reduce lag time for Charts. And therefore is MTR for Stripe purchases based on the receipts created via the POST /receipts API operation?Thanks.
Adding RevenueCat to a new project that built okay without RevenueCat. I’ve tried the project IOS 17 & 16 with RevenueCat. Now get this type of error during linking:duplicate symbol '_OBJC_METACLASS_$_RCSubscriptionPeriod' in: /Users/username/Library/Developer/Xcode/DerivedData/project-gqirresgntulppesvshjgagnzupy/Build/Products/Debug-iphoneos/RevenueCat.o /Users/username/Library/Developer/Xcode/DerivedData/project-gqirresgntulppesvshjgagnzupy/Build/Products/Debug-iphoneos/RevenueCat_CustomEntitlementComputation.oduplicate symbol '_OBJC_CLASS_$_RCCustomerInfo' in: /Users/username/Library/Developer/Xcode/DerivedData/project-gqirresgntulppesvshjgagnzupy/Build/Products/Debug-iphoneos/RevenueCat.o /Users/username/Library/Developer/Xcode/DerivedData/project-gqirresgntulppesvshjgagnzupy/Build/Products/Debug-iphoneos/RevenueCat_CustomEntitlementComputation.oduplicate symbol '_OBJC_CLASS_$_RCPromotionalOfferEligibility' in: /Users/username/Library/Developer/Xcode/DerivedData
Im using app subscriptions for long time but it is my first time I’m trying to test the IAP on a virtual device. Testing the android version on a virtual Pixel 7 pro (api 33) and Pixel 7 (api 34), the flow is working normally as expected until I get “ Something went wrong”, “Error code 3” however using the same testing account, the same code is working fine on a physical device. Im using flutter on a macbook device. I’m sure the Play store is updated on virtual devices.
hi, i was trying to set up a consumable products based on Non-Subscription Purchases doc recommendations from revenue cat https://docs.revenuecat.com/docs/non-subscriptions.but after calling purchaseProduct for a consumable product i can't seem to purchase this product again because it was bought as a non-consumable the flutter in_app_purchase package has two methods to buy product (buyConsumables or buyNonConsumables) does revenue cat have similar way or other to make sure a product can be bought again
We wish to integrate our sales data with ChartMogul. We need to send payloads to ChartMogul with data about every purchase. In section 3 of this link from ChartMogul, it is described: purchase_token - Mandatory - The purchaseToken returned by Google Play as soon as a purchase is completed. This is usually returned within the INAPP_PURCHASE_DATA object in the getBuyIntent() method. How can we access this purchase_token? We are using the webhooks sent from RevenueCat to our backend, to align our userbase with the purchasing events from RevenueCat. However there is no purchase_token field on any of these events. I assume it has been renamed..?
I’m using Cordova, in app purchases work perfectly on iOS, however on Android i keep getting the following error when i try to make a purchase:Cannot read properties of undefined (reading 'INAPP')Obviously this is referring to Purchases.PURCHASE_TYPE.INAPP in the code below, but i cannot figure out a solution to this after a ton of googling and whatnot, can someone give me some suggestions/pointers please?async function triggerPurchase(productId) {if (device == "ios") {const { customerInfo, productIdentifier } =await Purchases.purchaseProduct(productId);else if (device == "android") {await Purchases.purchaseProduct(productId,({ productIdentifier, customerInfo }) => {},({ error, userCancelled }) => {},null,Purchases.PURCHASE_TYPE.INAPP);}
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.