Get help with your SDK implementation.
Recently active
I keep getting this error on first purchase. The purchase goes through but revenue cat gives error. When I click on purchase subsequently, revenue cat then returns fine. How do I resolve this? The following exception was thrown Unable to purchase offers: PlatformException(0, Unknown error., {message: Unknown error., userCancelled: false, readableErrorCode: UNKNOWN, code: 0, underlyingErrorMessage: Couldn’t communicate with a helper application., readable_error_code: UNKNOWN}, null):flutter: PlatformException(0, Unknown error., {message: Unknown error., userCancelled: false, readableErrorCode: UNKNOWN, code: 0, underlyingErrorMessage: Couldn’t communicate with a helper application., readable_error_code: UNKNOWN}, null)
I the app developer and i purchased the premium version of my app in production. ideally i should be getting something in entitlement active object: [Kotlin code] customerInfo.entitlements.active.isNotEmpty() The above code should return true, but only in case of my account its returning as false. and when trying to call the restore method:Purchases.sharedInstance.restorePurchases(object : ReceiveCustomerInfoCallback{ override fun onError(error: PurchasesError) { showToast(this@AccountManagerActivity,error.message) } override fun onReceived(customerInfo: CustomerInfo) { val value = customerInfo.activeSubscriptions.toString() showToast(this@AccountManagerActivity,value) } })} Its throwing some server error. Please help as currently its reported in my account and could happen with a premium user as well. Thanks in advance.
First: thanks for making this great product. I’m new to RevenueCat but so far loving it!Intro: RevenueCat offers the possibility to register a webhook endpoint, that is called when an event takes place. There is the possibility to manually set an optional authorization header, that will be used by RevenueCat to authenticate when calling the webhook endpoint. Question: is it possible to set this authorization header by calling an API endpoint (instead of doing it manually in the configuration section ‘Integrations’ > ‘Webhooks’)?
I am upgrading from purchases_flutter 3.x to 5.x. The class PurchasesInfo was changed to CustomerInfo. We upload PurchasersInfo Json to our server which parses the data. Have the contents or format of the data changed along with the change of the class? When inspecting the class CustomerInfo I find it has several JSON and String arrays so it’s difficult to tell what might have changed inside those arrays. Thank you,KeithB
Hi, I want to purchase a specific subscription offer from google play.This should work as described here: https://www.revenuecat.com/docs/subscription-offers#more-control-over-offer-selection and here: https://github.com/RevenueCat/cordova-plugin-purchases/releases/tag/4.0.0 I did my setup for Ionic(Vue) + Capacitor as described here (https://www.revenuecat.com/docs/ionic)I have the following dependencies installed:@awesome-cordova-plugins/core@^6.3.0 @awesome-cordova-plugins/purchases@^6.3.0 cordova-plugin-purchases@^4.2.3 cordova-annotated-plugin-android@^1.0.4 In my App I am usingimport { Purchases } from '@awesome-cordova-plugins/purchases';and geht the typings from here:node_modules/@awesome-cordova-plugins/purchases/index.d(those seem to be incomplete! subscriptionOptions are not defined in the types I get) BUT: In the results of “Purchases.getOfferings()” I get packages with products and those products have an array called “subscriptionOptions” with all my options listed. So the
Apologies for a basic question. This is my first RevenueCat project…I’m running an Expo managed project for React Native. react-native-purchases is installed and imported. I can call setDebugLogsEnabled successfully. But I cannot see a “setup” method on the Purchases object? If I type the code to run setup() I get the following error:What am I missing?Thx!
Hey All,We’re noticed a bug appear on devices running iOS 15.4 having issues when trying to present the store code redemption sheet using the RevenueCat iOS SDK (3.14.1).Purchases.shared.presentCodeRedemptionSheet()The presentation sheet appears, however the expected redeem code page is missing. Instead we’re presented with a “Cannot Connect” with the retry button not performing any action.This is repeatable on all devices running 15.4 and only appears after the update from 15.3.1.Does migrating to the the most recent 4.1.0 release fix this issue for devices on iOS 15.4?Thanks
i have a flutter app that about daily horoscope and tarot cards and i’m trying to implement it but i’m kinda lost in the documents and tutorials i have purchase function page like this in code import 'package:flutter/services.dart';import 'package:purchases_flutter/models/offering_wrapper.dart';import 'package:purchases_flutter/purchases_flutter.dart';class PurchaseFlutterAPI {// initialize function to be called to initialize our purchase_Flutter plugin static Future init() async { await Purchases.setLogLevel(LogLevel.debug); }// gets a list of offerings from RevenueCat and stores it in a list for use in our app static Future<List<Offering>> fetchOffers() async { try { final offerings = await Purchases.getOfferings(); final activeOffering = offerings.current; return (activeOffering == null) ? [] : [activeOffering]; } on PlatformException catch (e) { return []; } }}and a subscripiton page in thisimport 'package:flutter/material.dart';impor
Could not validate subscriptions API permissions error. I think I need to publish my application in closed beta in the play store to solve this problem. Can I publish it in internal beta or does it have to be closed beta?
I see this error for our production app for iOS,we are using 4.25.6 version of RevenueCat.Error message is: “The device or user is not allowed to make purchase”Does this occur because of parental controls?Our app is +17
I’m trying to follow this documentation https://www.revenuecat.com/docs/apple-app-storeBut it’s not clear to me what I can do in the simulator. To my surprise when I run my code in the simulator, it is able to retrieve all the products from appstore connect. So is the simulator considered the sandbox? I have not install StoreKit Configuration File why does it work? What exactly does StoreKit Configuration File do for the simulator? Do I need a sandbox tester account for the simulator?
Hello fellow developers,If you're like me, you've embraced RevenueCat as a silver bullet for your in-app purchase needs. The proposition is compelling: let RevenueCat handle the complex, ever-changing landscape of app monetization so you can focus on what you do best — building an amazing app. In theory, this should make our lives easier. However, a pattern has emerged that challenges this notion: the API keeps changing, and it's forcing us to constantly revisit and update our integrations.Now, I'm all for improvements and new features. Progress is essential. But let's not lose sight of why we signed up for RevenueCat in the first place. The whole appeal of a wrapper like this is to abstract away complexity, not to introduce a new layer of maintenance.What's the Point of a Wrapper If It Unwraps Itself?The idea behind using a wrapper around Google Play Billing Library (or Apple's equivalent) is that we should be shielded from direct changes to these libraries. If Google or Apple changes
Hello, I use Flutter.I get that there is a CustomerInfo to get the purchase dates of the user.My question is that, How can i retrieved list of all automatic subscription renewal dates of the user ? Thank you.
Hello World! I’m a developer on a React Native mobile app that uses Revenue Cat (v. 5.14.0) to paywall our upgraded features behind a subscription. We have received a report of a user being unable to purchase our subscription from Apple. This user has submitted a video recording of the issue and the purchase process begins as expected and then ends un-expectedly. The app does not crash but premium was not purchased.Our onPurchase implementation looks like this: (sorry for formatting)```const onPurchase = useCallback(async (subscription: PurchasesPackage | null) => {try {setLoading(true);if (subscription) {const { customerInfo } = await Purchases.purchasePackage(subscription);if (typeof customerInfo.entitlements.active[REV_CAT_ENTITELEMENTS.PREMIUM_PRO] !== "undefined") {Sentry.Native.captureMessage("Premium Pro Purchased");setLoading(false);checkPremiumProStatus();if (isLoggedIn) {setPreProModalVisible(false);} else {setSignUpModalVisible(true);}}}} catch (e: any) {setLoading(false
Is there a method to refund the saved money on each subscription as a percentage? (without having to use metadata, which would entail recalculating everything, for instance, when changing the subscription price from the Play Console).As in the following image from the doc
We have an app in production using RevenueCat for iOS and Android using the Cordova SDK"cordova-plugin-purchases": "^3.12.0" One of our users is reporting that they’re not able to subscribe. Looking in Sentry, they’re the only one receiving this error. The error is below: Uncaught (in promise): Object: {"code":3,"message":"The device or user is not allowed to make the purchase.","readableErrorCode":"PurchaseNotAllowedError","readable_error_code":"PurchaseNotAllowedError","underlyingErrorMessage":"Billing is not available in this device. DebugMessage: Google Play In-app Billing API version is less than 3. ErrorCode: BILLING_UNAVAILABLE."} The problem is, they’re saying that they’re able to subscribe to other apps with that same device, and have tried another subscription since they’ve received this error from our app. Device: SM-G998U (S21 Ultra 5G)Android Version: 13Installed from: Play StoreSideloaded: No Shouldn’t the fact that they’re on Android 13 and installed from the Pla
Our team is currently integrating the option to cross-grade between monthly ↔ yearly subsctiptions.Most of our Android users are on old Google legacy subcription plans. A few months ago, we updated to RevenueCat Purchases v6 and also created a new “unified” subscription with 2 base plans, one for monthly and one for yearly.So the subcriptions we have look like this:Legacy Subscriptions:app_regular_subscription (for monthly) app_regular_subscription_yearlyNew Subscription (used since we upgraded to RevenueCat v6 a month ago)app_subscription_unified (with 2 base plans: app-subscription-monthly and app-subscription-yearly) While testing different scenarios in Sandbox mode, I found out that there are some unexpected behaviors when crossgrading from app_regular_subscription (legacy - monthly) to app_subscription_unified:subscription-yearlyThe PRODUCT_CHANGE webhook event doesn’t come when the user effectively changes the current plan, instead, the webhook event comes roughly one second afte
Howdy!My iOS app previously had a single “Unlock Pro” non-consumable iap (not using RevenueCat), and now I’ve setup and implemented subscription plans using RevenueCat.It works great, except migrating the old legacy non-consumable purchase is not working. On the latest version of the iOS SDK, I hit this line when I call syncPurchases.Is it a bug that that code ignores non-consumable purchases? It was introduced by this PR, in December. I downgraded to iOS SDK 4.15.5 (before the release with that code) and syncing the legacy non-consumable purchase seems to have worked as expected.Would love some advice on this. Would you recommend releasing with the 4.15.5 version of the sdk?(also, THANK YOU for making the iOS sdk open source ❤️)
IGNORE: Was issue with simulator needing to be restarted.Im using flutter and just upgrade from flutter_purchase 4.11.1 → 5.5.0 and I’m getting aPlatformException(2, There was a problem with the store., {code: 2, message: There was a problem with the store., readableErrorCode: StoreProblemError, readable_error_code: StoreProblemError, underlyingErrorMessage: Error when fetching products. DebugMessage: An internal error occurred.. ErrorCode: SERVICE_UNAVAILABLE.}, null)When I call:await Purchases.getOfferings()Was working perfectly fine until I upgraded. I only have 1 time purchases configured no subscriptions so as I understand it the google migration stuff doesn’t apply to me. Do I need to add some new config setting in in androidmanifest.xml or build.gradle need something new to support billiing 5.0?Currently in my AndroidManifest.xml I have this:<uses-permission android:name="com.android.vending.BILLING" />
I'm testing in a sandbox environment using Flutter (Android).I purchased a non-subscription and then refunded it.Then, when I perform a restore, an error handling with the following content is returned:CodePurchases.restoreTransactions();LogI/flutter (12532): PlatformException(16, There was an unknown backend error., {code: 16, message: There was an unknown backend error., readableErrorCode: UnknownBackendError, readable_error_code: UnknownBackendError, underlyingErrorMessage: Backend Code: 7651 - The payment for this non-subscription product is not complete.}, null)W/BillingClient(12532): Error consuming purchase with token. Response code: 8E/[Purchases] - ERROR(12532): 🤖‼️ Error consuming purchase. Will retry next queryPurchases. DebugMessage: Item is not owned by the user.. ErrorCode: ITEM_NOT_OWNED.I know this error is on Google's side, but is there anything I can do on RevenueCat's side or my code implementation? Is there a way to resolve the error?
Hi!I’m trying to test restoring Purchases in sandbox mode. My app does not identify users, and, by not having a login screen, every one of them has an anonymous App User ID.I purchased a consumable item inside the app, and, as this grants a “benefactor” entitlement, tried to restore the entitlement after uninstalling the app. This did not work.How can I ensure that an anonymous user can restore entitlements that are granted via consumable products? Thanks !Renato
Hello all, I am struggling with the edge cases related to user identification. I am using unique ID created for every user of our app as an identifier. This works for most use cases but there is situations where this is not enough: User deletes his/her-account and creates new account later:→ The original unique identifier connected to revenuecat is lost since the account creation always creates a new item into the Database.→ We can not login to revenuecat since the original ID is lost Why this is problematic→ We offer introductory offer to our users, and we need to determine if user has previously had subscription (so is still eligible for introductory offer or no). This way we can determine if we should show the discounted price UI or normal price UI. On Android only way to determine this is to see if user had subscriptions before and that can be done querying the purchaserInfo.entitlements.all from revenuecat-SDK and that is not working if we can not identify first. Email would pro
Hello,I came back to a Flutter project that was working fine few months ago. I’ve updated the purchases_flutter package and now I can’t fetch the offerings on iOS but works fine on Android.After reading the Why are offerings or products empty? post I’ve noticed that I had a new Paid Applications Agreement so I’ve accepted but after 2 I still getting the error.I’ve checked all the possibles causes mentioned in the post but I don’t understand what the solution 3 means: If you're trying to fetch products from the App Store, ensure you're not using a StoreKit Configuration file I don’t know where is the problem. Any suggestions? Thanks in advance! These are the errors I’m receiving:ERROR: 🍎‼️ Error fetching offerings - No se ha podido completar la operación. (Error de RevenueCat.OfferingsManager.Error 1.)ERROR: 😿‼️ There is an issue with your configuration. Check the underlying error for more details. There's a problem with your configuration. None of the products registered in the Rev
Using Flutter SDK in an app. SDK is operating and can pull getCustomerInfo() and getOfferings() on an IOS app.From getCustomerInfo(), the managementUrl is null. Why is this? How can I get a valid managementUrl?In yesterday’s testing, the managementUrl was valid.
I have very strange build errors when trying to build android with revenue cat + unity iAP. Please, help, it’s urgent. Exception 1: Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 - Pastebin.com Exception 2: CommandInvokationFailure: Gradle build failed. D:\Soft\Unity\Editors\2021.3.27 - Pastebin.com Unity iAP version is 4.9.4.Revenue cat version is 5.0.0-alpha01
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.