Get help with anything related to RevenueCat.
Recently active
As mentioned in the documentation https://www.revenuecat.com/docs/projects/restore-behavior#share-between-app-user-ids-legacy. I am unable to find any configurations available on RC; dashboard. We can choose between other Transfer Options available but not the legacy one.if I use anonymous login it provide new user without any active subscriptions.
Hey folks - hope you’re well. Wondering if anyone else has run into the issue where apparently the app is giving the ask to buy modal to the user but the parent never receives the notification? From what the parent tells me: other apps seem to notify them just fine so doesn’t appear to be an ios version mismatch.As far as I understand holding the payment is the correct step but unsure if in-app purchases (not subscriptions) need a specific set up in app store connect to get this to work? Unsure if I’m missing something obvious here Thanks!
I would like to display yearly price next to the monthly price x12 with strikethrough. E.g.:~59.99~ 29.99 RevenueCat is already doing the math for `relative_discount`. Seems like it should be easy to expose the value used in the calculation. Could call it something like `price_before_discount`. This is very common on paywalls and seems like an oversight on RC’s part. There are many other community posts asking for this. E.g. this one
I understand that, as a developer, we should refund via RC dashboard, not Play Console. However, what about when the customer triggers a refund on the Play Store? How can my app detect this? Or will it actually be reflected somehow in the entitlements?
Hi everyone,I'm using RevenueCat Flutter SDK v9.15.1 and having issues with subscription upgrades and downgrades on Android (Google Play).Setup:- Single subscription ID: `pro_access`- Base plans: `starter_monthly`, `starter_yearly`, `premium_monthly`, `premium_yearly`, `professional_monthly`, `professional_yearly` if (Platform.isAndroid && oldProductId != null && oldProductId.isNotEmpty) { params = PurchaseParams.storeProduct( newProduct, googleProductChangeInfo: GoogleProductChangeInfo( oldProductId, prorationMode: GoogleProrationMode.immediateWithTimeProration, ), );} else { params = PurchaseParams.storeProduct(newProduct);}Questions:1. Should `oldProductId` be passed as `pro_access:starter_monthly` or just `starter_monthly`?2. Is `GoogleReplacementMode.deferred` the correct mode for downgrades?3. Is there anything specific to v9.15.1 that affects `GoogleProductChangeInfo`?Google Play returns a generic error and RevenueCat logs a replacement mode
Hi,I'm experiencing an issue where purchases are completing successfully but entitlements are not being automatically granted. All purchases show as "Unattached products" in the customer profile, even though the product is correctly attached to the entitlement in the dashboard. Purchase completes successfully, appears in both Play Console and RevenueCat customer history. However, the product appears under "Unattached products" in the customer profile. This happens for every user and every purchase. What I've verifiedProduct identifiers in RevenueCat match exactly with Google Play Console (subscription ID + base plan ID) Product is attached to the entitlement Service Account Credentials JSON is uploaded Store Status shows Published Purchases are coming through the correct store (Play Store) App User ID is set correctly in code and matches the dashboard Google Play Order ID is valid and matches Play Console Entitlement identifier used in code matches the one in the dashboard Could someon
Hello everyone,I have a monthly subscription for my Flutter app. Just a single subscription plan.I faced an issue with at least two customers have an issue with their premium subscription because I am relying on the webhook for their subscription status.There is a pattern here:1. Subscribe2. Opt-out3. Force resubscribe (?)4. Subscription expiredFrom the images below, You can see that the customers manage to subscribe to the same subscription before it expired. I do Both of the customers are from Italy and using Android if that matter. Hope to hear any explanation on this. Thanks!
I have seen some other posts about this, and tried everything I have read up on - but I continue to get this error. Everything in the business section is filled out on app store connect. I have tried and regenerated this a few times. Any suggestions how to fix this is welcomed!
was trying to integrate, My App store connect with my RC but getting this issue:“The key is not valid or is not compatible with the bundle id of your app.”Even though my Bundle ID is valid on both xcode and appstore connect i just copy pasted from that,
I am experiencing an issue with the "Transfer if there are no active subscriptions" restoration strategy. This behavior works as expected on iOS but appears to be bypassed on Android.The Scenario: Both User A and User B are identified (non-anonymous App User IDs). User A has an active subscription linked to a specific Google Play / Apple ID. I log out User A and log in as User B on the same device. User B calls Purchases.restorePurchases(). Expected Behavior (observed on iOS): On iOS, RevenueCat correctly blocks the transfer (there won’t be any transfer event) and returns the RECEIPT_ALREADY_IN_USE_ERROR because User A still has an active subscription.Actual Behavior (observed on Android): On Android, the restorePurchases() will return an error but the transfer event will still happen.This contradicts the documentation for this transfer behavior. I have confirmed that this is happening in a sandbox environment, User A's subscription has not expired, and I’m applying "Transfer if
My custom paywall was showing for a couple of days in TestFlight, but for some reason its reverted to the Apple default paywall...which is causing my app to be rejected. HELP!!
Credentials need attention Valid key format The key is not valid or is not compatible with the Bundle ID of your app.
Looking into the RC Privacy Policy, I found the following snippet:If you are using our products or services as a developer, the following information regarding your end users may be received and processed by us: “End User Technical Information”: This refers to technical information related to an end user’s mobile device or computer, such as: device type, operating system, “End User Transaction Information”: This refers to transaction information related to an end user’s activities with respect to your app or other digital product, and may include: Last seen time that the end user used your app or digital product; Apple receipt file; and Google purchase token, “Optional End User Information”: This refers to information that we may receive if you select or enable this option in our products, which may include: User ID of the end user in your app or digital product; and Additional attribution or metadata associated with an end user.End User Technical Information, End User Transaction Inf
I deleted a development project. it did not seem to work so I deleted it again. after an hour I noticed that I deleted a PRODUCTION Project. some huge bug that I discovered and I cant seem to find a solution to restore it. I need support ASAP I cant wait 2 days for a ticket answer I get a bunch of downloads and this will result in revenue loss and 100% bad ratings since its a hard paywall app!
We just launched an app with IOS and REvenue Cat. We are doing subscriptions. No in app, just subscriptions. we are getting prodcut details via api, so i am sure that matches up. the business agreements, etc are all active the subscriptions are active. the app is ready for distribution. We have checked API and seems to match up. Product ID matches. Any other bright ideas out there? I feel like we have tried everything.
Hi everyone, We’ve been stuck on this issue for a while and would really appreciate some guidance. We are integrating RevenueCat in a React Native / Expo app and using our own custom paywall UI (we are not using RevenueCat Paywalls). Our app is already in App Store Connect → Ready to Submit, and our subscriptions are configured, but the SDK is still returning empty offerings. Setup Products in App Store Connect babysoothe_monthly (auto-renewable) babysoothe_yearly (auto-renewable) Both products currently show:Status: Ready to SubmitThey also have: localization pricing screenshot for review subscription group configured RevenueCat configurationDefault offering:default ├─ $rc_monthly → babysoothe_monthly └─ $rc_annual → babysoothe_yearlyWe previously had a lifetime product but removed it from the offering to simplify debugging.Products appear correctly in RevenueCat Product Catalog.App setupWe fetch offerings like this:const offerings = await Purchases.getOfferings();But the re
Hello,I am encountering the well-known readable_error_code: CONFIGURATION_ERROR (code: 23) while implementing subscriptions on iOS.I have already performed several checks to identify the cause of the issue, and so far all configurations appear to be correct: All contracts in App Store Connect have been properly signed. The product identifiers match exactly between App Store Connect and RevenueCat. All required metadata and configurations have been completed. The backend integration has been finalized and appears to be working as expected. We also performed tests on physical devices (iPad and iPhone) running iOS 26.2.1, and the error still occurs when attempting to fetch the products.The only potential issue I can identify is the subscription status. The products are currently listed as “Waiting for Review” in App Store Connect and also appear with the same status in the RevenueCat dashboard.Because of this, I would like to confirm whether this status could prevent the purchases f
I have added localization through RevenueCat which has updated the text content. I would like to change the main image for each language to help improve conversions by country. Is it possible to “localize” the image in addition to the text copy? I’ve been seeing more requests for this (> 9 months ago)Thanks!
Hi RevenueCat team, I’d like to request a new built-in event (similar to Superwall’s new “Trial Qualified”). The goal is to send a signal to MMPs when, after a short qualification window (e.g., 30 minutes post trial start), a user has either a subscription or an active trial, indicating higher intent/quality than a raw trial start (which often gets cancelled within minutes).Proposed definition:Event name: Qualified Initial Conversion or Qualified Conversion Trigger: 30 minutes after Initial Purchase or Trial Started, if the trial is still active and the user hasn’t opted out/cancelled. Suppression: Do not fire if the user cancels or refunds before the 30-minute mark. Why this is useful:Many MMPs and growth teams use early qualification events to improve campaign optimization signals, reduce noise from very short-lived trials, and better predict conversion likelihood. It provides a more reliable KPI than raw “Trial Started,” especially for ad network optimization windows.Requested des
I keep getting the error: “Error fetching offerings - The operation couldn’t be completed” after setting up the Test store with products. I have the message “RevenueCat SDK is configured correctly”Does Test Store work at all in the iOS simulator or do I still need to use StoreKit set-up?
We're using RC Billing (Web Billing) with the RevenueCat JS SDK. During the purchase flow, we pass the customer's email via the `customerEmail` parameter in `Purchases.purchase()`.Due to a bug on our side, some subscribers had an incorrect email passed as `customerEmail` at checkout time. We've since fixed the bug, but for the affected subscribers, all lifecycle emails (subscription confirmation, renewal reminders, billing issue notices, etc.) are still being sent to the old incorrect email.What we've already tried:1. Updated the `$email` subscriber attribute in the RevenueCat dashboard — lifecycle emails still go to the old address.2. Updated the email on the corresponding Stripe Customer — lifecycle emails still go to the old address.It appears that RC Billing stores the checkout email internally, separate from both the `$email` subscriber attribute and the Stripe Customer email, and uses that internal email for lifecycle emails.Questions:1. Is there an API endpoint or dashboard opti
Hey everyone, I was lucky enough to get one of the RevenueCat T-shirts a while ago.Today, ny wife nearly ripped it to pieces, but i begged and pleaded for her to show mercy... I cant hold her off forever... How can i get a new shirt, please?! Desperately seeking help... Michael
Hi,I am having an issue on my Android Google Pixel 6a device where I am testing a paywall that works completely fine on iOS. I have attached a video showing the bug.On my paywall there is a switch to allow the user to see more subscription options, but when I tap to enable, the footer slides up and blocks the rest of the paywall content completely. The continue button also disappears.Hoping to get this issue resolved. Let me know if any more information is needed.Thanks!
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.