Discussion and help from anything related to RevenueCat.
Recently active
Hey everyone,I recently added a free trial to one of my subscription products on App Store Connect (Noor – Quran Companion).This is my first ever app; I managed to get someone signing onto a 3-day trial for one of my subscriptions.The trial period expired as expected, but the user was not charged, and no “Opted-out of renewal” or “Cancellation” event appeared in RevenueCat — only an “Expiration” event. (I’ve attached a screenshot of this).I want to know what happened here? Could it be that my code or my subscription on app store connect is set up incorrectly?Any help is greatly appreciated.
Inconsistent behavior with the documentationIn your documentation you claim that if a subscription has lapsed (for same product or a different one), I will get a new Original Transaction ID (OTID). On short, every new subscription should have a new OTID during the life of that subscription. This should be true for both Google and Apple stores.I found this to be false in case of Apple – at least on the Sandbox environment (I do not know yet on Production, but I expect Sandbox to mimic exactly). Same OTID was generated for same Product subscription expiring and repurchase and for purchasing a different product after the subscription expired.Same OTID maintained between subscriptions of same productSame OTIP maintained between subscriptions of same and different products Original Transaction ID (OTID) needed in the API V2 Subscription objectI saw that I am not the only one requesting this. I need OTID to be present in the API V2 Subscription object (https://api.revenuecat.com/v2/projects/
My app requires login, so when i call Purchases.configure(new PurchasesConfiguration.Builder(mActivity, apiKey).appUserID(customUserId).build());i always pass a customUserId, that i expect to receive on the webhooks to track user purchases on my backend.I also never call logout. On RC backend i have these options activated:Tracking new purchases from server to server notifications.Keep with original App User ID I understand that the server to server event might sometimes arrive before the SDK one, thus an anonymousUserId is created and the corresponding webhook does not provide usefull user information (customUserId). My question is once the SDK updated information arrives to RC backend, is a new webhook created with the updated info? Or do i need to listen for a diferent kind of webhook when the alias with my customUserId is created on a later time? I don’t want to be polling RC backend to detect these changes.I could disable server-to-server event, and probably will, but i worry tha
Hi guys, can you PLEASE extend your api v2 with a sort - parameter for the list views?We have users that have more than 100 transactions and we have to build complicated pagination features and check hundreds of transactions since the “customer purchases list” returns a chaotic JSON array of transactions with no sorting whatsoever. At least sort it by id or purchase_date by default!
Hi guys!There is an issue with Flutter SDK (on the latest 9.5.0 as well) for Android with multiple placements.In my app I have multiple placements with different offerings. Then I set up targeting in the Dashboard without specifying any placements, only the default offering. I would expect that all placements in my app would show that default offering. This is actually the case in iOS. But in Android no paywalls is shown at all.Many times I forget to list all the placements when targeting and my Android app won’t show paywalls in missed placements. Recently I run an experiment without specifying placements in the experiment settings and after 3 days I figured that the Android app wasn’t showing any paywalls at all because of this issue :(You can find more information in this GitHub issue:https://github.com/RevenueCat/purchases-flutter/issues/1225
I added my IAP products in App Store Connect, configured them, and they appear correctly in RevenueCat. However, the products don’t show up in local testing; they only appear when I use a .storekit configuration file, which doesn’t work in TestFlight or for the reviewer. Reviewers need the products to be approved to see them, but during review the products aren’t visible, causing the app to get rejected. Even when I submit a build, the products remain in Waiting for Review and aren’t approved. In this situation, what should I do to ensure the reviewer can see the IAPs and approve the app without it being rejected? WARN: ⚠️ RevenueCat SDK is configured correctly, but contains some issues you might want to address 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 co
When running the SDK using Unity 2022.3.51f1 and built for Android 15, I get the following error in ADB log. What can I do about it? 10-16 14:52:13.767 19513 19557 E Unity : AndroidJavaException: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/auth/blockstore/Blockstore;10-16 14:52:13.767 19513 19557 E Unity : java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/auth/blockstore/Blockstore;10-16 14:52:13.767 19513 19557 E Unity : at com.revenuecat.purchases.blockstore.BlockstoreHelper.<init>(BlockstoreHelper.kt:29)10-16 14:52:13.767 19513 19557 E Unity : at com.revenuecat.purchases.PurchasesOrchestrator.<init>(PurchasesOrchestrator.kt:146)10-16 14:52:13.767 19513 19557 E Unity : at com.revenuecat.purchases.PurchasesFactory.createPurchases(PurchasesFactory.kt:357)10-16 14:52:13.767 19513 19557 E Unity : at com.revenuecat.purchases.PurchasesFactory.createPurchases$default(PurchasesFactory.kt:68)10-16 14:52:13.
HiFor the past weeks i have been having a serious with trying to purchase my app's subscription that i set with RevenueCat. I have followed all the documentation steps required to set up subscription in my app, but i still get get an error saying purchase failed due to configuration error and also saying i should contact customer support. My product ID from google play console is correct that i put in RevenueCat and everything in Google play consoleThe problem happens with my android app when i test it in internal testing using google play console. Please do note that it is an app i created using expo react-native.. I would really like help A.S.A.P.
I am using Ionic + Capacitor + RevenueCatUI to present Paywalls for my app’s subscriptions. I want to add event listeners so I can handle cases such as:Restore Purchases with no Active Subscriptions DEBUG: Restored purchases successfully with no subscriptions Purchase Error due to Restore Behavior = ‘Keep with original App User ID’ ERROR: 😿‼️ There is already another active subscriber using the same receipt. However, I see that RevenueCatUI only allows listeners for paywallDisplayed and paywallDismissed.I am using:"@revenuecat/purchases-capacitor": "^10.4.0","@revenuecat/purchases-capacitor-ui": "^10.4.0",Is there any way I can handle the cases described above?
For some reason today I am unable to complete any purchases in the Simulator. Offerings are retrieved successfully from RevenueCat - as can be seen in the screenshot. However when purchase() is called I get the following popup.I am using a Storekit configuration file, and this worked just fine previously. My app was rejected yesterday due to 2.1.0 Performance: App Completeness - as they couldn’t even load this screen in the review (maybe because the subscriptions are still in review?)All my agreements are active, everything looks good on RevenueCat side but this just wont work. I can’t test using a real device because I don’t have an iPhone so thats not possible. Releasing Google Play was such a painless experience, this in comparison is a nightmare.I am not sure what to do here? Do I wait for the subscription review to pass before trying again?
hello,Im integrating web purchases with redemption links for a web to app funnelIm seeing that once i redeem the web link, the entitlement goes to the annonimous user Id assigned on the web, rather than to the appUserID in my mobile app SDK here is my full pipelineuser lands on my web funnel and is redirected to revenuecat web checkout Revenuecat web checkout assigns an anonymous appUserID, eg $RCAnonymousID:01 User downloads my app user taps a deeplink, which launches my app. Deeplink example: rc-0000000://redeem_web_purchase?redemption_token=abc ---app launches and runs Purchases.configure--- Purchases.configure assigns an anonymous appUserID eg $RCAnonymousID:02 User gets automatically loged in to Firebase, fiirebase returns an ID eg. abc123 Purchases.login(firebaseID) runs, abc123 becomes an alias for $RCAnonymousID:02. Firebase and RC have matching IDs at this point. ---Web purchase redemption begins--- Validate link received in step 4 and redeem it Entitlement assigned to user w
For the first time I am releasing app into AppStore (with subscription feature). I have setup RevenueCat using .p8 file I have seen that “Valid Credentials” And during testing I could be able to sanbox-purchases. But right now apple confirmed my release with following email:We're pleased to let you know that your app, ..., has been approved for distribution.Please note that it can take up to 24 hours for apps to become available on the App Store after release.If your contracts are not yet in effect, your app cannot be distributed. Check the status of your contracts in the Agreements, Tax, and Banking module in App Store Connect. However when i download the app and trying the load the offerings. RevenueCat returns following error (both in testing and prod): ⚡️ [error] - {"code":"23","errorMessage":"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 RevenueCat dashboard
Hi everyone,I'm getting a persistent warning in my console logs and my app was rejected by Apple Review with Error 23 (Configuration Issue). I believe it's related to subscription metadata, but I need help understanding what I'm missing.**Issue:**- Console shows: `WARN: Empty Product titles are not supported. Found in product with identifier: iradepremiumtest1`- Apple Review rejection: Error 23 - Configuration Issue- Products are loading correctly with prices (₺249.99, ₺899.99)- Both products are in state: IN_REVIEW in App Store Connect**What I've Done:**1. Created subscriptions in App Store Connect (iradepremiumtest1, iradeyillik1)2. Added App Store Localizations (Turkish and English) with Subscription Display Names filled3. Saved all changes in App Store Connect4. Products are configured correctly in RevenueCat Dashboard5. Offerings are loading successfully6. Prices are showing correctly**Current Console Output:**✅ Offerings loaded successfully 📦 Available packages: 2 💰 Product ID:
Hi everyone,We’ve been getting a handful of reports from iOS users who sign up for a free trial, but are charged the full amount immediately. Interestingly, in the App Store purchase confirmation screen it also says they’ll be charged again in 7 days, which is obviously unexpected.For most users, trials and paywalls seem to be working normally, so this doesn’t appear to be a widespread or consistent issue. It started recently (within the past week or two), and so far seems to be iOS-only.I’m wondering if anyone else has seen similar reports or has insights into what might cause this... maybe a temporary Apple billing or eligibility glitch?Thanks in advance for any ideas or confirmation from others seeing the same pattern.— Simon
I’ve created an Offering with 3 packages, each of which has a Test Store product in it.In the app, I’m initializing using the Test Store API key.When retrieving the Offering details, I’m not seeing all three packages - only two of them. The missing one is for a subscription product, while the ones I’m seeing are non-consumables. However, I’m not sure that this is relevant.Is there any cacheing taking place, or delay in publication of updates to the product catalogue? I’ve tried restarting the app and also waiting several hours, but still no joy.The Packages and Products look OK, but could I be missing a vital configuration item? Any pointers would be appreciated.Note that I’m using the Maui.RevenueCat.InAppBilling abstraction, as this is in a MAUI app.
Problem DescriptionI'm experiencing Error 23 during Apple's App Store review process and need clarification on the proper approach for handling paywalls when subscription products are still pending approval.Current Situation:Products in App Store Connect: Status = "Waiting for Review"RevenueCat Configuration: Correctly configured with valid API keyBundle ID: Matches exactly across Xcode, App Store Connect, and RevenueCatProducts: properly configuredXcode Error: “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 RevenueCat dashboard could be fetched from App Store Connect (or the StoreKit Configuration file if one is being used). More information: https://rev.cat/why-are-offerings-empty” Iphone error: The Issue:Apple reviewers report they cannot successfully sign in because:User signs in with Apple ✅Success screen appears ✅User clicks "Let's get started
I’m looking at adding Customer Center to our app. When you show Customer Center for a user that doesn’t have an active subscription there is a “Contact Support” button that is visible, however that button is not present for users who do have an active subscription. How can I get the “Contact Support” button to show up in Customer Center for users that do have an active subscription? Seems like this would be something you would want users to be able to do even if they have a subscription for issues not addressable directly by the Customer Center UI.
Hello, I am in the process of developing an app and have integrated RevenueCat for managing subscriptions and in-app purchases.Here is my setup: I have created subscription products in iOS App Store Connect, and all products are at the “Ready to Submit”stage. I have signed the Paid Applications Agreement. All banking and tax information is active and verified. However, whenever I try to access the paywall in the app, I consistently receive the following error:“Unable to load subscriptions.”I have confirmed that my product identifiers match exactly between RevenueCat and App Store Connect.Could you please advise on the possible reasons for this issue and steps to resolve it? I want to ensure that my subscriptions load correctly for testing and eventual release.Thank you for your support.
Hello I’m new to RevenueCat, i like all the cool features there but i have a few questions.I’m testing iOS version recently, I use storekit to simulate purchase, everything works fine, the transaction history does show in the sandbox data in the RevenueCat dashboard. I’m using anonymous app user id.If I reinstall the app on the same device, a new anonymous user id is generated when the app is launched. A new anonymous will be generated also if I debug it on another device. I know this is reasonable, since there is no authentication flow here. I read the document that, if using anonymous app user id, RevenueCat can analyze the receipt and link the apple user with the anonymous id, so when the user logins with the same apple account on another device, or if he or she reinstalls the app, the purchase can be restored.However, I test the “anonymous user id” flow on two different devices, with the same apple account logged in, the purchase record is not retrieved (for example, the “allPurch
ERROR [RevenueCat] 🍎‼️ Error fetching offerings - The operation couldn’t be completed. (RevenueCat.OfferingsManager.Error error 1.)There's a problem with your configuration. None of the products registered in the RevenueCat dashboard could be fetched from App Store Connect (or the StoreKit Configuration file if one is being used). 1. I am working on an expo project on my linux machine2. I have apple developer account3. created the subscription product, it is ready to submit state4. have added the the keys in revenue cat dashboard which imported the product5. the entitlement is attached with the product6. Paywal has both android and ios offeringI have been trying to debug this but i am going no where, please help.
Superwall has an extremely powerful feature that boosts the revenue significantly: When a user rejects the native store subscription modal, it sends an "abandoned cart" event that allows you to trigger opening another paywall with a downsell offer. It allows you to recover many users and increase revenue drastically.
Hi RevenueCat Team,I’m using RevenueCat in my Flutter app for Apple in-app purchases. I noticed the following behavior: In RevenueCat (and when fetching offerings), the price is displayed in USD. When I actually make a purchase, Apple converts it to my local currency (AUD) and charges correctly. I understand that Apple handles the final purchase currency, but I’d like the price displayed in my app to reflect the localized currency rather than USD.Currently, I’m fetching the product and showing the price like this:final Offerings offerings = await Purchases.getOfferings();monthlyPrice.value = offerings.current?.monthly?.storeProduct.priceString ?? "";Is there a recommended way in RevenueCat to display the localized price (AUD) in Flutter so it matches what the App Store will charge?Thanks for your guidance!
In the dashboard, searching for a customer doesn’t work, whether by App User ID or by email. My tedious workaround for this is to paste a URL containing the App User ID into the browser, e.g. https://app.revenuecat.com/customers/{projectid}/app_user_id}.I’m trying to search by clicking on Customers, then entering an app user id or email in the Search lists… box.Am I doing something wrong, or is search broken? It’s been like this for many weeks.Thanks for your help.
Hey - we would like to report trial starts as a `is_revenue_event` in singular so we can use it to tune for Meta ads, but since the event doesn't have an amount associated with it, it's not showing up as a revenue event. Is there a way to map a different property to the amount property? From Singular support: Thanks for sharing the details. Currently, Singular treats events with a revenue value of 0 (such as your rc_trial_started_event) as non-revenue events. To have this event recognized as a revenue event in Singular, and make it available for mapping as a revenue event (like "Purchase") in Meta, you must either: Send the event with a revenue amount greater than 0 OR Set the is_revenue_event flag to true in the event arguments. The RevenueCat integration, by default, sends the trial start event with amt: 0, so it is not classified as a revenue event in Singular. If you want to assign a value to these events, you would need to adjust the integrat
I am testing an iOS app on-device (sandbox environment). I can successfully purchase a subscription and have verified that my “premium” features become available. I was experimenting with allowing the user to launch the paywall at any time to allow for possible upgrade/downgrade opportunities. However, I was surprised that, even after a purchase, the paywall was identical to before -- its state didn’t seem to have changed to indicate that a subscription was already active, etc. Is this normal? Or should I expect the state of the paywall to change to reflect recent transactions?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.