Get help with your SDK implementation.
Recently active
Hi, not sure why, but in my flutter app even in --release mode, when i click to open the PaywallView it kind of freezing a little bit…Demo with --release:https://drive.google.com/file/d/1RAyQG2awd1Q1bKXJYh3G9GLryo0pcYU8/view?usp=sharingP.s. with `await RevenueCatUI.presentPaywallIfNeeded` is working awesome and there is no freeze. The single issue there is that i want to not have it in a `showCupertinoSheet`…Here’s my code:import 'package:flutter/material.dart';import 'package:purchases_ui_flutter/purchases_ui_flutter.dart';class PremiumButtonLime extends StatelessWidget { const PremiumButtonLime({super.key}); @override Widget build(BuildContext context) { return ElevatedButton( style: ElevatedButton.styleFrom( backgroundColor: const Color(0xFFBFE737), foregroundColor: Colors.black, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(12), side: const BorderSide(color: Colors.black, width: 1.5), ), ), onPr
Hello, I have a concern which I hope you can address.Our current situation is:We currently handle web based subscriptions using Stripe We want to add the option to purchase subscriptions via the Web Purchase Button on mobile We would like to provide the Stripe Customer Id to the Web Purchase Button checkout flowOur signup flow creates Stripe customers and saves the Stripe customer id to our database, which we then use when creating the checkout link (current web flow). This is something we did after noticing problems with duplicate customers created after passing the user email to the Stripe checkout API and allowing Stripe to create them automatically. (multiple stripe customers for same email)Is there some way to avoid automatic Stripe customers with your checkout flow and have them be assigned manually?This is also important for our existing Stripe customers, which will duplicate if the Web Purchase Button uses the email to create the checkout.Thanks.
I continue to get these warning along with my paywall purchase button not showing. I even have the storekit enabled in my xcode scheme with the correct subscriptions in them and I made sure everything matched along with my sandbox developer account signed in. It seems like revenue cat is still trying to use production env even though I have everything setup to use storekit file. Can someone help me?Warnings: • Your products are configured in RevenueCat but aren't approved in App Store Connect yet. This prevents users from making purchases in production. Please ensure all products are approved and available for sale in App Store Connect. • The offerings 'default' have configuration issues that may prevent users from seeing product options or making purchases.Product Issues: ⚠️ premium_sub (Premium Sub): This product's status (READY_TO_SUBMIT) requires you to take action in App Store Connect before using it in production purchases.Offering Issues: ⚠️ default ⚠️ $rc_monthly (premiu
Paywall Editor on the left / iOS Simulator on the right Hi!I’m seeing a visual/state bug with the Offered Package component in the new Paywall Editor testing on iOS.What I’m doing • Using the Paywall Editor with the Offered Package component. • I configured the icon states like this: • Default: Circle, color #3D3C41, 24×24 • Selected: Filled Circle Check, color #FBEB00, 24×24 • In the editor preview everything looks fine.Issue:On the iOS simulator, when I open the paywall and tap on a different package than the one selected by default: • The newly tapped product becomes selected • But the icon on the left does not switch to the “Selected” icon for the newly chosen package. • Instead, the originally selected package keeps the “Selected” icon, and only its color changes when I tap on other products.So effectively, icon state and actual selection go out of sync: the default product keeps the filled check icon, while another product is actual
I am designing my Paywall using the new Paywall Editor.I am using a Carousel where each Page hasa Title an Image which is a screenshot of the appThis is how such a page looks in an ideal scenario: However, the problem is that on smaller screens,the Carousel height does not adjust thus, the Page height does not adjust thus, the Image is not scaled to fit into the viewport.This is how it looks on a smaller device: I would in that case like the Image to scale to be smaller, fit into the Viewport, and not make the Carousel scrollable. I think what is needed to achieve that is the option to allow the Carousel to only fill the available height like using a weight of 1 only on the Carousel.How can I achieve this?Thanks in advance for any thoughts or hints!
Hello everyone,I'm facing a frustrating issue where RevenueCat fails to fetch my newly added Consumable products, giving the error Could not find products with identifiers. However, my existing auto-renewable subscriptions (Weekly, Monthly, Yearly) are fetching and working perfectly in the same app.My Environment: Device: iPhone 8 (iOS 16.7.12) - Real Device Xcode: 16.0.1 (Build 17A400) App Status: Live in App Store (Version 1.0) RevenueCat Configuration: Products created, Entitlements linked, Offerings configured. The Issue: I added 3 new Consumable products (Credits system) in App Store Connect. They match the IDs in RevenueCat. When I run the app on a real device (Sandbox), Purchases.shared.offerings() returns empty for these specific packages, and the logs show that Apple is returning an invalid product identifier error. Logs: [store_kit] DEBUG: 😻 Store products request received response[offering] WARN: 🍎‼️ Could not find products with identifiers: ["rc_purplai_30cr", "rc_p
I am getting Package Resolution Failed on Xcode 26.6.1. with package manager. Using CocoaPods or Carthage is not option for us. Is anyone else having this issue?https://github.com/RevenueCat/purchases-ios-spm.git
Hello, I am trying to fetch the daily revenue for a project through API Call in python. I have the API key and the project ID. However, I am unable to locate the endpoint to get the daily revenue for a specified date range. All I can get is a snapshot of their dashboard (containing the last 28 day revenue) with the following code: url = f"https://api.revenuecat.com/v2/projects/{project_id}/metrics/overview"headers = { "Authorization": f"Bearer {API_KEY}", "Accept": "application/json"} response = requests.get(url, headers=headers)response.raise_for_status()metrics = response.json().get('metrics', [])df = pd.DataFrame(metrics).rename(columns={'id': 'metric', 'value': 'value'})print(df) Can someone please help me with the code, that will take date range as input in parameters and give me a breakdown of daily revenue for the date range?
Hi, I'm integrating the RevenueCat Web Paywall into my Flutter app.Everything works perfectly on iOS, but on Android the Paywall screen becomes completely black, and the app stops responding.Flutter gives me these errors:
Hello RevenueCat Support Team,We are experiencing an issue with the getOfferings() function in our expo app.Details: In our RevenueCat dashboard, we have created two packages within the same Offering: 3-month package (subscription) Lifetime package (non-consumable) Both products are properly registered and published in the App Store and Google Play, and we have confirmed their status in RevenueCat. Both packages are included in the Offering in RevenueCat. However, when we call getOfferings() in the app on both iOS and Android, only the 3-month package is returned. The Lifetime package is missing from the returned Offerings data. We have ensured that: Store product IDs match exactly with RevenueCat product IDs Entitlements are correctly linked to the products The Offering includes both packages SDK is v8.10.1 Could you please advise why the Lifetime (non-consumable) package is not appearing in getOfferings() and how we can resolve this?Thank you for your support.
I’m currently implementing the RevenueCat Web SDK in a React application, and I’m encountering an issue during the configuration step. When I initialize Purchases.configure(), I receive the following error:Error configuring RevenueCat: _me: Invalid API key. Use your Web Billing API key.I have confirmed that I am using what should be the correct Web Billing API Key, but the SDK continues to throw this error. I’m unable to pinpoint what might be causing it.Below is the relevant code snippet from my implementation: import { Purchases } from '@revenuecat/purchases-js'; useEffect(() => { if (hasConfiguredPurchases.current) return; if (!userInfo && !userDetails) return; try { let appUserId = userInfo?.user_uuid || userDetails?.user_id; if (!appUserId) { appUserId = typeof Purchases.generateRevenueCatAnonymousAppUserId === 'function' ? Purchases.generateRevenueCatAnonymousAppUserId() : `anon_${Date.now()}_${Math.random().toString(36).slice(2, 9)}`; } const purchases = Purchases.con
I noticed that Paywall Web is now available.Is there any plan to add support for Flutter Web too?
https://api.revenuecat.com/v2/projects/{project_id}/customers/{customer_id}what is the id this end point is expecting ?I have a scenario , that i m passing orginalApUserId form my flutter sdk response to fetch the customer via my back end, i m passing something like $RCAnonymousID:476441ddabf3406e865d7cc14c8bduuiyas the customer. but API response give me error response saying no customer found. why?
Hi, i have deployed my app to testflight and got the error of wrong API key(Photo attached),On development build it was working fine and only got this issue when i pushed to testflightI have confirmed that i m using correct api keys not test api keys ( my api keys start with appl_)The Command i use to submit my build:eas build --profile production -p ios --auto-submit
Hello,We are experiencing an issue where Android subscriptions are not showing up in RevenueCat, while iOS works perfectly. On iOS, getOfferings() returns the products correctly. However, on Android, even though the subscription is published in Google Play Console and added to the Offering in RevenueCat, the availablePackages list comes back empty.Current situation:Subscription and base plan are Published in Google Play Console.In RevenueCat, the product android.pro.plan:androidproplan is added to both the Offering and the related Entitlement.Our device is added to the license testing list, and the app is installed via the Play Store.Purchases.configure() is called correctly with the right API keys.The exact same setup works fine on iOS.In this case, what could cause getOfferings() to return empty on Android?Thanks.
Hey, We are trying to use revenuecat react-native-purchases library in our project, we were able to successfully set it up, some transactions works perfectly, but unfortunately some don’tWe are using react-native-purchases: 9.6.8, with react-native: 0.73.11, we didn’t configure it for iOS yet, we started with Android, problem below is related to Android platform only.Problem:When calling await Purchases.purchasePackage(selectedPackage) method, we get warning that says:🤖‼️Billing is disconnected and purchase methods won't work. Stacktrace: java.lang.Throwable at com.revenuecat.purchases.google.BillingWrapper.getStackTrace(BillingWrapper.kt:814) at com.revenuecat.purchases.google.BillingWrapper.access$getStackTrace(BillingWrapper.kt:82) at com.revenuecat.purchases.google.BillingWrapper$withConnectedClient$$inlined$log$1.invoke(logWrapper.kt:37) at com.revenuecat.purchases.google.BillingWrapper$withConnectedClient$$inlined$log$1.invoke(logWrapper.kt:36) at com.revenuecat.purchases.google
It would be very useful to have a “Resend” button next to a webhok in the dashboard (Integrations > Webhooks > Integration > Store Notifications), similar to what Stripe provides.The reason is simple: sometimes the receiving code isn’t correct or complete, and an event isn’t processed properly. For example, I recently didn’t have a proper handler for an “uncancellation” event, and now I have to locate the affected records in the database and fix them manually. Being able to replay the webhook after fixing the code would let me verify the behavior and correct the data automatically.A related improvement would be in the “send test event” functionality. At the moment, I can’t select the specific event type to test. Being able to trigger a particular event type would make testing much more practical.
Our app is experiencing native crashes on iOS when displaying RevenueCat paywalls. The crash occurs in Apple's HEIF image decoder when trying to render paywall images served in HEIC format.EnvironmentRevenueCat SDK (react-native) version: 9.6.9 iOS versions affected: iOS 17.x, iOS 18.5 (confirmed) Devices: iPhone 13, and likely others App framework: React Native / ExpoCrash Stack TraceThread #0 (main):VideoToolbox VTDecompressionSessionRemoteClient_CopyPropertyVideoToolbox VTDecompressionSessionRemote_CopyPropertyCMPhoto VTDecompressionPluginClass_copyPixelBufferAttributesCMPhoto HEIFItemDecoderCreateCMPhoto _decodeItemCMPhoto _applyDecodeStrategyCMPhoto _decodeImageCMPhoto _decodeAuxiliaryImageCMPhoto _createAuxiliaryImageForIndexCMPhoto _createImageForIndexCMPhoto CMPhotoDecompressionContainerCreateImageForIndexImageIO HEIFReadPlugin::copyImageBlockSet
Hi, I’m wondering if there is any way around this confusing behavior I’m seeing on iOS regarding consumables and multiple App User IDs.For context, I offer both subscriptions and consumables in my app, and require all purchasers to be logged in (no anonymous purchases). I cannot prevent users from making multiple alt accounts in my app, and many do. I have “Transfer if there are no active subscriptions” configured in my RC project settings.On iOS, I’m seeing the following behavior when a user with the same Apple ID tries to make purchases under different App User IDs:user1 purchases a subscription user2 (same Apple ID) then purchases a consumable they receive the error “There is already another active subscriber using the same receipt” but the purchase goes through and the consumable is credited to user1(!)Alternatively, if I configure “Transfer to new App User ID” in RC, this is instead what happens (arguably worse):user1 purchases a subscription user2 (same Apple ID) then purchases a
https://www.revenuecat.com/docs/tools/paywalls/displaying-paywalls#setting-preferred-localeI noticed that the code is only available for iOS, Android, and ReactNative. Will the code for Flutter also be developed?
I am running tests and I can see the subscriptions on the dashboard. But I need to test the backend, and this is returning the items as empty:curl -X GET "https://api.revenuecat.com/v2/projects/{{projectid}}/customers/{{customer}}/active_entitlementsit returns 200 with the response, but the items is an empty array...how am I suppose to test my webhook api without this fetching data from the sandbox? I do have the sandbox checkbox in the dashboard enabled.
We discover that on iOS 18.6.2 the paywall countdown always display “Time is up!”, while everything works perfectly on iOS 26. No issue on Android either.We tested it with the same version of our app with the last RevenueCat SDKEDIT : it appears it doesn’t work on iOS 17.7 either
Google Play has recently dropped their price templates in favor of defining offers on their one-time products. The offers define a discount, etc, very much like offers on subscriptions. I know how to obtain and use offers on subscriptions via the product.subscriptionOptions. I do not see any method for obtaining these product offers. Are they currently supported? If they are not supported, keep in mind that these are now the only semi-manageable method for offering different prices in Google Play. Now that they have removed price templates, the busywork of defining products for each price point is simply unmanageable.
As the title says, I’d like to track paywall views in the experiment but I’m using a custom paywall of my own. Is this possible? I use RN SDK
In our iOS app we want to achieve the following behavior of `restorePurchases()`:If the purchase was made on anonymous ID and user logged in - transfer subscription to the user ID. If the user credential switched but Apple Account stays the same - transfer to the new user. If subscription was associated with a user and then that user logged out - we want to show message “This subscription is already linked to another account. Please sign to that account to restore”.How to implement the user story 3? This is required to prevent double spent and subscription duplication - when the one subscription becomes available on multiple accounts. Is there any built-in checks allowing to tell if the subscription is already linked to a non-anon user?We use ‘Transfer to new App User ID’ setting for restoring.!-->
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.