Discussion and help from anything related to RevenueCat.
Recently active
I have few apps and I would like possibility to share subscriptions between them. So if a user is subscribed in one app they would have possibility to use pro features in other apps as well. Is it possible now with RevenueCat?
I did every step correctly for google play store. But i have that error. Can anyone help me? In terminal it says it can’t access the my test subs
I am unable to clear the above Credentials issue. I went through all the steps in the guide - https://www.revenuecat.com/docs/creating-play-service-credentials/ - carefully to no avail. According to a number of post in this community form on the same problem, the solution is to make sandbox purchases. The problem is can’t make sandbox purchases. My supposed sandbox purchases go through as real purchases. I followed the guide - https://www.revenuecat.com/docs/sandbox - for sandbox purchases to no avail.I would very much appreciate help with this. Thank you in advance.
I want to give my subscribed users a way to restore their subscription from the underlying store without using the “user id”. the reason why I want this is that some users use another login method than the original one they used when they subscribed. This gives the user account a different id, therefore they cant find their subscription. we got a lot of customer support tickets because of this problem, So I was wondering if there is a way to restore the subscription directly from Google Play or App Store without any user id?
We use RevenueCat so that our own backend is the source of truth for user status information. We offer consumable IAPs.After we make purchases via the RevenueCat SDK, we communicate with our backend to get the updated user status.When I make a purchase on iOS and kill the app when the StoreKit transaction has completed but before RevenueCat has processed the transaction, I run into the scenario that the RevenueCat SDK will process the transaction on the next launch.I see in the logs that the transaction is successfully processed by RevenueCat. But `PurchaseController.purchases(_:receivedUpdated:)` is not called afterwards.I assume the delegate would be called in case of subscription IAPs, but how can I get notified for consumable IAPs?
I’m migrating iap other SDK to Revenuekit.i know that there is no way to check refund status of consumable purchase. but in non-cosumable case, which user can purchase only one time, func getRefundCheck() { Purchases.shared.restorePurchases { customerInfo, error in if error == nil { if self.isPremiumActive { if customerInfo?.entitlements["Premium"]?.isActive == false { self.isPremiumActive = false } } } }Is this the right function for me to find refund users?
I am currently creating my products in Google Play for my App.I want to use prepaid subscriptions without auto renew.I tested this out, created products, imported them in RC, linked them to offers and entitlements, purchased them. They expired automatically and my entitlement got removed.All fine so far.But there is an option in Google Play Console which asks if I want to Allow extension of this prepaid subscription. I am not sure if this is a supported feature by RC?So I tried to figure it out in the docs and found nothing. But I found this part of the documentation here which confuses me a bit.Prepaid base plans not yet supportedRevenueCat does not yet support base plans with the renewal type "Prepaid".Source: https://www.revenuecat.com/docs/android-productsIs this just some outdated paragraph in the docs?I mean it seems to work.And if the docs are just outdated (hopefully) could you extend those and explain how to properly configure prepaid products in google?Would love to get some
Hello Team,RevenueCat portal is showing Could not validate subscriptions API permissions. Status is the same after 48 hours. I followed all the steps mentioned here Google Play Store (revenuecat.com). Can someone help how to resolve this issue?
My subscription flow was working, and it's been a month since I received the 'Something went wrong' error. I have two published apps, and both of them are encountering this error simultaneously. I've tried many solutions, but none of them worked.purchases_flutter: ^5.6.5 error log:Activity finished with resultCode 0 and billing's responseCode: 3E/[Purchases] - ERROR(26164): BillingWrapper purchases failed to update: DebugMessage: . ErrorCode: BILLING_UNAVAILABLE.nullE/[Purchases] - ERROR(26164): PurchasesError(code=PurchaseNotAllowedError, underlyingErrorMessage=Error updating purchases. DebugMessage: . ErrorCode: BILLING_UNAVAILABLE., message='The device or user is not allowed to make the purchase.')
I am trying to add Revenue Cat to my application and I am getting an unexpected behaviour. await Purchases.getOfferings(); never finishes. It hangs. try { console.log('This logs') const offerings = await Purchases.getOfferings(); console.log('This does not log');if (offerings.current !== null) { ….}} catch (error) { new Error(`Error getting offerings from Revenue Cat ${error}`);} I am unsure why this happens. This are the logs 2023-09-12 15:06:48.379841+0200 someApp[4687:37716] [configure] INFO: ℹ️ Purchases instance already set. Did you mean to configure two Purchases objects?2023-09-12 15:06:48.380048+0200 someApp[4687:37716] [configure] DEBUG: ℹ️ Configuring SDK using RevenueCat's UserDefaults suite.2023-09-12 15:06:48.380078+0200 someApp[4687:53865] Opened database at /Users/john/Library/Developer/CoreSimulator/Devices/3B433335-5FEA-4324-BCD4-4CBB677C5A4E/data/Containers/Data/Application/F8725A65-E28B-4E6B-BAE0-E0058C257495/Documents/foo.db2023-09-12 15:06:48.
Is there a way of showing the amount of customers whose subscriptions are auto-renewing per day? Basically what the ‘Revenue’ tab offers, but in the form of numbers of subscribers as opposed to a $ amount.So what I’d be looking for would be something likeSep 1: 210 subscribers’ subscriptions auto-renewed on this daySep 2: 179 subscribers’ subscriptions auto-renewed on this daySep 3: 203 subscribers’ subscriptions auto-renewed on this dayetc.? It feels like there must be a way because it’s pulling the same data from the Revenue tab but I can’t find it. Any help would be greatly appreciated!
Hi. I’ve been playing with the different charts trying to figure this out. Here’s an example of what I am trying to see:For June’s new user Cohort, every paid/converted subscription (whether there is a trial or not), broken down by Product. Basically, right now, I can see how many new subscriptions of every type started in a given month which is great, but I have no idea which cohort they came from.It does seem like I can get this info if I do Conversion to Paying and then one by one filter for each Product and export the data, but this is a time consuming way to do it.Lastly, when filtering, it would be amazing that if after selecting to filter for a specific app you’d only seeing related products for that app when selecting the product filter. In my case I have to sift through 50+ products in a small window that doesn’t show the full name. Even just changing the css to show the full name of each product would help. Thanks for the help!
I'm developing a multiplatform app, that will run on mobile and desktop. And it will be subscription based.What I don't get, is how does it work across the 2 stores? If someone signs up for a subscription on the Mac app store, how will the iOS app store, know the person has already subscribed in the other version? And vice versa?Would the user just download whatever version, fire it up and then I could just offer for the person to sign in, if they already have an account and then I'll know if they are subscribed or not?
Hi everyoneI would like to know whether is it possible to make 2 different paywall with one template? If yes, could you share the steps on it?For the context: We would like to offer to 2 different product subscriptions in our app so we think we need 2 different paywall each different products, content and design also.However we want to manage it in our single product dashboard.
I have an issue with getting RC to work on the iOS Simulator on an M1 Mac Mini, it’s saying that the framework doesn’t have the required architecture to run on the iOS Simulator, I only need this to run some automated tests on other parts of my app, I’ve been able to test on a physical device all through the development of my app but always had this issue with the simulator, now I have been able to get it to work through rosetta but that’s only the iOS simulator and not through Appium which is the testing framework I’m trying to work with.I hope someone will be able to help me, Thanks!
We have an AppsFlyer Integration that occasionally uses the customer_user_id as the appsflyer_id. Does anyone know why this would happen?Here’s an (anonymized) example.{ "af_events_api": "true", “appsflyer_id": "aaaaBBBBCCC", "bundleIdentifier": "com.bundle.app, “customer_user_id": "aaaBBBBCCC", "eventCurrency": "USD", "eventName": "renewal_event", "eventTime": "2021-10-08 21:27:43.000", "eventValue": "{\"af_revenue\": \"5.99\", \"renewal\": \"true\", \"af_content_id\": \"monthly_plan\", \"af_currency\": \"USD\"}"}A correct appsflyer_id looks like a Unix Epoch timestamp with a random number appended like this. "appsflyer_id": "1617274484000-5786735",Does anyone know why it occasionally doesn’t have the correct Appsflyer ID?
I looked at the list of transactions:"AppStore environment" there is probably a problem with the following:Free Trial subscription automatically changes to status:(⚠️ “Disabled the auto-renew status for an active subscription.” webhook type: “CANCELLATION” ⚠️)Because of this, after the Free Trial period expires, no funds are debited.😓 Help me to understand. “Also rate the screenshots” I did not find more detailed information about the "Opted out of renewal" status.(Testing use case, Auto renewable, works in the TestFlight environment ✅)Use case: User subscribed to "Free trial - 7 day"____________________________Expectation:INITIAL_PURCHASE⬇️ (⏱ 7 days)RENEWAL⬇️CANCELLATION⬇️EXPIRATION____________________________Reality:INITIAL_PURCHASE⬇️ (⏱ 2-3 days)CANCELLATION⬇️ (⏱ 7 days)EXPIRATIONI think in some of the screenshots the funds should have been debited. but it didn't happen.
Is it possible to grant a promotional subscription in the sandbox environment, as opposed to the production environment? When using the dashboard to grant an entitlement to a user, it always says "environment": "PRODUCTION".I’ve read that users don’t relate to a particular environment, but transactions do. Isn’t granting an entitlement a transaction, and therefore wouldn’t it make sense to grant an entitlement in the sandbox environment?
A few hours ago, the data when getting the returned package list was missing title and description{"identifier":"$rc_weekly", "offeringIdentifier":"Default", "packageType":"WEEKLY", "product":{ "currencyCode":"USD", "description":"", "discounts":{ }, "identifier":"dsports.weekly", "introPrice":null, "price":6.99, "priceString":"$6.99", "productCategory":"SUBSCRIPTION", "productType":"NON_CONSUMABLE", "subscriptionPeriod":"P1W", "title":"" }}
On Android, the APIs `.getOfferings().current.product.title` property is returning Android Store value, with appended App name. <Base Subscription Title> (<AppName>) ex. “Pro (My app)”Shouldnt this display the Display Name / Title from the “Product” section of RC? iOS seems to display the name from the Products section of RC. I did notice this post from 9 months ago. But i dont know if thats an official statement “works as expected” or if its just another user confirming that thats the way it is.
Hi,When I set the availability of my Subscription to 1 country, can I assume that this:try await Purchases.shared.offerings().current?.availablePackageswill return an empty array/error with other storefronts?Cannot really test it via TestFlight, as it seems to discard the region completely.
I am building an app in Flutter with a Google in-app subscription and an Apple in-app subscription.I am using purchases_flutter in Flutter for payment. It only returns the payment details when I check the user subscription which is the following.If I log the user out of my app and log in again with a different email ID, I still receive the same information and can't repurchase the same subscription.Is there a way I can buy two same subscriptions for different in-app users who are using the same phone?
I am working on a macOS desktop application using SwiftUI and am looking for a way to implement a trial version that expires after a specific period (e.g., 7 days). Additionally, I want to include the functionality to activate and deactivate a software license.Requirements:When the user first installs the app, they should be able to use it for a 7-day trial period. After the trial period, the user should be prompted to enter a software license key to continue using the app. The user should have the option to deactivate the license on their machine, so it can be used on a different machine. I understand that this will likely involve both client-side and server-side logic. However, I am particularly interested in how to achieve this in SwiftUI for the client-side aspect.I look for a basic example that implements this preferrable integration. The payment can be on a website doesent have to be in app purchase but would be positive of this is possible optional lateron.Im looking for advice
Dear RevenueCat,First of all, thank you for developing and maintaining this solution. I have been users of your service in production for a few years now. It has been working great. However, recently I start seeing this error message in Google Play Console for my app. “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 new features including multiple base plans and offers, as well as prepaid plans.”I have some questions related to that. (For the background, I have been following the discussion about the Google Play Subscription Changes as well as went through the documentation in Google Play Product Setup) However, it is still not clear to me on whether or what kind of migration steps are required from my side. Thank you a lot for your support.I do not have a need for multiple base plans and prepaid. In other words, a sin
Hello, I’m trying to import the enum PERIOD_UNIT from the package in a Ionic App but it’s always undefined. import Purchases, { PACKAGE_TYPE, PERIOD_UNIT, Period, PurchasesOfferings } from 'cordova-plugin-purchases/www/plugin';Yet, no problem with PACKAGE_TYPE or some other. An idea why ?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.