Discussion and help from anything related to RevenueCat.
Recently active
I have a two phase website that I am building… Say I launch my website and I start charging $3.99 a month - 6 months later I roll out the second phase of my website and want to start charging $6.99 only to those who want to access the Phase two section of my site. Could this work?
Hello!For users who are elligible for a subscription introductory offer, we want to display some sort of promotion. The docs show how we can use the subscriptionOptions property to check for free trial or intro offer phases. However, as stated in the SDK reference, subscriptionOptions is null for Amazon builds. How can we check elligibility on Amazon builds? Is there an alternative way? We have customers on FireTV and it would be a shame if we can’t promote our new subscriptions to them.
I’m trying to implment RevenueCat for the first time, but I have this error on npx expo or npx expo run ios.
I keep getting this error in my react native[TypeError: Cannot read property 'setupPurchases' of null]I am running react-native with expo bare workflow and running development build but i keep getting that error. This is my code below in App.tsx useEffect(() => { Purchases.setLogLevel(LOG_LEVEL.VERBOSE); let apiKey = ""; if (isIOS) { apiKey = REVENUECAT_APPLE_API_KEY; } else if (isAndroid) { apiKey = REVENUECAT_ANDROID_API_KEY; } if (!apiKey) { console.error("RevenueCat API key is not set"); return; } Purchases.configure({ apiKey:apiKey }); }, []); I am sure that the api key is being referenced properly and I have also tried upgrading and downgrading the versions of react-native-purchases but i still keep getting this error. Please let me know how to resolve this issue. I have also checked other forums for this issue but still couldn’t find a solution for this. I am currently using "react-native-purchases": "^8.1.0",
I have issue with buying different subscriptions for different users(different user ID’s) with same apple Id.Getting error: 😿‼️ There is already another active subscriber using the same receipt. On dashboard I can see second purchase with first user id.Subscriptions are in different subscription groups.
I have added a `paywallFooter` to my SwiftUI screen and it seems to be working fine.However, I have noticed that the `restoreCompleted` and `restoreFailure` callbacks are not getting triggered. I have observed that the `restoreStarted` callback is getting triggered when the user clicks on the "Restore Purchase" button, but the other callbacks do not seem to be working..paywallFooter( fonts: CustomPaywallFontProvider(fontName: FontFamily.ZenMaruGothic.medium.name), purchaseCompleted: { customerInfo in // Triggers as expected }, restoreStarted: { // Triggers as expected }, restoreCompleted: { _ in // Doesn't work }, restoreFailure: { _ in // Doesn't work } ) I can see that the restore logic is successful based on the console log, but nothing appears on the screen upon completion, resulting in a poor experience for customers.Could you please help me?
I want to implement offer codes in my app. This requires using In-App Purchase Key for ios app. I added that key during app setup some time ago and everything was fine, no warnings. 2 months ago I received email regarding that api key should be updated. I generated new key and added to ios app, but had Credentials need attention warning. I tried to do this one more time today and have the same issue. I followed the same steps as previously (during initial setup that was successful). I added P8 key file from App Store Connect, Key ID and Issuer ID and the only issue I have is that warning.
Hello,Currently we are trying to obtain purchase receipts (or any required data to do receipt validation) in order to forward the event and keep track of IAPs on Game Analytics (it’s not an anlaytics tool you are seamlessly supporting atm).Is there any way we can obtain this receipts so we can send the IAP events to GA? We are using RevenueCat Unity SDK.Thanks!
It would be great if we were able to choose user properties - including our own, custom added ones - for segmenting the charts. For example, we have an onboarding question that asks “where did you hear about us” to allow us to understand our funnels. We store it in the `heard_about_us` user property. It would be great if we could segment charts by that.
hi, i use flutter with the latest packages versions. I get the following message: but i have configured a paywall: what could be wrong? i already run flutter clean and reinstalled the app.
Hello,I am trying to add Revenue cat to my IOS flutter app using this package: https://pub.dev/packages/purchases_flutterAfter i make a purchase with sandbox and the screens show done(in picture 2), I got stuck in the payment screen, even i re-enter my credentials and pay again the app keeps showing me tha payment screen over and over (i got stuck in this function: Purchases.purchaseStoreProduct it does not return any CustomerInfo even though I paid and the ios screen shows done.).I checked snadbox in revenue cat dashboard but all of my payment did not get persisted.Can someone help me, and thanks in advace.Here is my code(Picture 1):
In apps that sell consumables items (e.g. gems), from what I understand, it’s necessary to provide a server to track the gem balance for a particular user. I’m not clear on what the requirements are for the origin of that user. Is there a way to avoid creating auth flows in the mobile app and rely upon RevenueCat to coordinate the various anonymous IDs associated with the Apple ID? Can this work between app deletes and re-installs? In summary: Is there a way to track consumables (and the their balances) between app re-installs without needing to implement auth in the client. Thanks!
We get a fair number customer support messages that state something along the lines of “The app forgot that I have premium access and I had to click restore purchases.” We store subscription status to a persistent state in redux so it is confusing to us where they may be losing access to their subscriber benefits. Have other apps dealt with this? Are there common race conditions on startup that can lead to this. Anecdotally it seems to happen a lot with family sharing. Sometimes it’s user error (user signs in once, and then accidentally creates a new anonymous account). Looking for common patterns we may be handling incorrectly.Is it common for apps to get customer support requests like these?
I’m developing a subscription-based app where users only need to pay on one device (including Android, iOS, and web) to use it on all devices.From previous attempts, I’ve learned that using only Stripe webhooks, when I create a subscription in Stripe (in ), if there is no subscription data for that customer in RevenueCat, it will not send the customer data and the billing record to RevenueCat (I hope I’m understanding this correctly). Therefore, I decided to additionally use the API (not sure if this is the best approach, if there are other suggestions please let me know, thank you).After creating a subscription in Stripe (real mode not test mode), I sent the information to RevenueCat using the API v1 /receipts/, and the transaction with that ID does appear in Recent Transactions. However, when I receive customer information via the API or in Unity, this subscription information does not appear in the customerinfo. Also, on the web, this transaction has not been assigned an entitlement
Hello everyone!Everything works perfectly in Development build, but nothing related to Purchases SDK works during Production build. Here’s a snippet of code which I’ll use as an exampleasync function checkPremium() { try { if (Platform.OS == "android") { Purchases.configure({ apiKey: revenuecat.google }); } else { Purchases.configure({ apiKey: revenuecat.apple }); } const customerInfo = await Purchases.getCustomerInfo(); alert("customerInfo: ", customerInfo); return typeof customerInfo.entitlements.active["premium"] !== "undefined"; } catch (err) { alert(JSON.stringify(err)) return undefined; } }After putting alerts in different places, it turned out I got an error at Purchases.configure part.Note that the apiKey works and is correctly passed as an argument.I tried to alert the error normally without JSON.stringify and it’s empty, same with JSON.stringify. I’m currently testing the production build through the following co
Hi,I’m currently using PaywallActivityLauncher to display the paywall in my Android application. I need to manage both the purchase state and the restoration of previous purchases. While I’ve come across methods to handle the purchase state, I haven’t found any options for managing the restoration of state.Could you provide guidance on how to handle restoring the state of purchases with PaywallActivityLauncherwhen user click the restore button.override fun onActivityResult(result: PaywallResult) { when(result){ PaywallResult.Cancelled -> Log.d("revenuecat ","Cancelled") is PaywallResult.Error -> Log.d("revenuecat ","Error") is PaywallResult.Purchased -> Log.d("revenuecat ","Purchased") }} Thank you!
I am supporting a client Flutter project that uses RevenueCat for subscription processing. Earlier this summer, planning ahead for the Google billing library deprecations, we upgraded the RC dependencies. Google itself had been warning that the app needed an update. The current in-store version uses purchases_flutter v6.29.4, and Google Play Store is content that we accomplished the upgrade as required.However, the client keeps getting emails like the below from RevenueCat suggesting that there is a problem. I do not know how RevenueCat is determining what version of the library is being used. Google’s dashboard itself says that the only active users in the last 60 days have been on the latest version of the app, although there ARE supposedly 20 devices out there somewhere that still have an old version installed. (They don’t seem to be active, if the DAU metrics are accurate.) Is there some way, within RevenueCat itself, to see why it’s sending these warnings?Google is deprecating
I'm encountering a crash on Android when trying to display the RevenueCat paywall component in my React Native app. The same component works fine on iOS, but on Android, the app crashes with the following error:java.lang.NoSuchMethodError: No static method AnimatedContent(Ljava/lang/Object;Landroidx/compose/ui/Modifier;Lkotlin/jvm/functions/Function1;Landroidx/compose/ui/Alignment;Ljava/lang/String;Lkotlin/jvm/functions/Function4;Landroidx/compose/runtime/Composer;II)V in class Landroidx/compose/animation/AnimatedContentKt; or its super classes Steps to Reproduce:Implement the RevenueCat paywall component in the app. import React, { useEffect, useState } from 'react';import { View, ActivityIndicator, Text } from 'react-native';import Purchases from 'react-native-purchases';import RevenueCatUI from 'react-native-purchases-ui';const PayWallScreen = ({ navigation, route, setLoading }) => { const [offerings, setOfferings] = useState(null); const [loading, setLoadingState] = useState(
Hi everyone,I’m currently experiencing a significant issue with subscription update events (customer.subscription.updated) from Stripe being delayed in syncing with RevenueCat. In some cases, it’s taken over a day for these updates to appear on the RevenueCat dashboard after the customer has been charged.This delay is causing major problems, as our users are paying for subscriptions but are not being granted access promptly due to the delayed data sync. Since we rely on RevenueCat as the source of truth for managing subscriptions, this issue is affecting a lot of our customers.Has anyone else encountered this problem? If so, were you able to find a solution or workaround? I’d appreciate any advice or insight on how to resolve this issue quickly.Thanks in advance for your help!
I would like to know that, is there any case I could not get the subscription details through api even if I have an active entitlement.It was working fine this morning. Since 2pm IST, I am not receiving their entitlements in the revenuecat subscribers response
I'm working on an app that offers different one-time payment products.I’ve got a product (remove_ads) tied to an "entitlement" that removes ads from the app forever. I tested it, and it’s working great with the code:try { final premiumProduct = _products?.firstWhere((element) => element.identifier == 'remove_ads'); if (premiumProduct == null) return false; final customerInfo = await Purchases.purchaseStoreProduct(premiumProduct); if (customerInfo.entitlements.all["remove_ads"]?.isActive ?? false) { _isPremium = true; return true; } else { return false; } } catch (e) { return false; }Now, I need to add new products (coins_100, coins_500, and coins_1000) that aren’t linked to any "entitlement." I just want them to be consumed immediately after purchase using Purchases.purchaseStoreProduct.Future<bool> buyProduct(StoreProduct product) async { try { final customerInfo = await Purchases.purchaseStoreProduct(produ
Hi,I want to change the text based on Product. Atleast some part.To be more clearWeekly users have 100 credits.Monthly users have 400 credits.Yearly users have 10,000 credits Is that possible with built-in paywalls or Do I need to create my custom Paywall?
Hello! My app is made using flutter and purchases_flutter. About a month ago I upgraded purchases_flutter from 5.6.5 to 6.30.2. The software update has been accepted, but a few days ago I received the following message:We found an issue in the following area(s):Version code 26: Policy Declaration - Data Safety Section: Device Or Other IDs Data Type - Device Or Other IDs (some common examples may include Advertising ID, Android ID, IMEI, BSSID, MAC address)I checked my merged manifest file and there is no <uses-permission android:name="com.google.android.gms.permission.AD_ID"/>code inside manifest. I’ve seen this article: Google Play's Data Safety and it talks only about purchase history (financial data). In my existing data security form, I declared that the application does not process any data (I have not seen the above mentioned article before).What to do? Submit a declaration on processing only financial data (Google clearly writes about Device Or Other IDs). Is it possible t
Hey guys I facing this issue trying to use the react-native-purchases-ui, when I tri to build running npx expo run:android I receiving this error. My packages:"expo": "~51.0.28","@expo/config": "~9.0.0","@babel/core": "^7.20.0","react-native": "0.74.5","react-native-purchases": "^8.0.1","react-native-purchases-ui": "^8.0.1",My build config: [ "expo-build-properties", { "ios": { "useFrameworks": "static" }, "android": { "compileSdkVersion": 34, "targetSdkVersion": 34, "buildToolsVersion": "34.0.0", "minSdkVersion": 24, "enableProguardInReleaseBuilds": true, "enableShrinkResourcesInReleaseBuilds": true, "enablePngCrunchInReleaseBuilds": true } } ]FAILURE: Build failed with an exception.* What went wrong:Could not determine the dependencies of task ':app:processDebugResources'.> Could not resolve all dependencies for configuration ':
After the new 'default language' feature was introduced, I couldn't save any changes to the paywall because it requires me to add a default language. However, when I try to select a default language, it doesn't work, it just stays there and does nothing.
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.