Get help with anything related to RevenueCat.
Recently active
I no longer offer Lifetime Premium, so I want to delete the in app purchase from the App Store, so it no longer shows under my app.Can I do this without the users having bought this being affected? I want their entitlement to stay the same.
Hi everyone, my app is keep getting rejected. I made sure the annual price is displayed correct and monthly price on the paywall and I have 3 day free trial. Guideline 3.1.2 - Business - Payments - SubscriptionsWe noticed that one or more of your auto-renewable subscriptions is marketed in the purchase flow in a manner that may mislead or confuse users about the subscription terms or pricing. Specifically:- Your auto-renewable subscription promotes the free trial or introductory period for your subscription more clearly and conspicuously than the billed amount.Next StepsPlease revise your auto-renewable subscription purchase flow to ensure that the billed amount is the most clear and conspicuous pricing element in the layout. Any other pricing elements, including free trial and calculated pricing information, must be displayed in a subordinate position and size to the total billed amount. Factors that contribute to whether the billed amount is clear and conspicuous include, but are no
Hello, Is there any way to display text based on selected package ? I know about the introductory offer text but my case is as following and it cant be solved with introductory offer text.I have three packages.Weekly Annual LifetimeWhen weekly and annual is selected, I am displaying a text that says “No commitment , cancel anytime” which is fine. But when lifetime offer is selected this does not make any sense and I want to display “Pay once use forever” instead of that. I researched but couldn’t find a way to do it or define a custom variable for packages.Any suggestions would be great.Thanks in advance.
Hi, I triple checked and all of my iOS certs and pk8 files, secrets are all valid. its connected to my app store connect automatically I made RevenuCat an app manager. It successfully linked my products to apple. Yet in apple I have 14.99 a month, and 99.99 a year. But the app continually shows the wrong pricing (9.99 and 79.99). NO idea where it’s getting that from? I’m in sandbox mode. I tested on the demo xcode app got the same thing. Any help? I am trying to get this app released after a grueling 1.5 years of work! Thanks, Michael
I haven’t found any good resource/answers for this, if there is something please point me to it.My app keeps getting rejected (has been in the store for years and the purchase of ad removal has been in for over a year now) with my latest update. They tell me that I need to have a dedicated “restore”, which I do. I check for the entitlement being active and if it is I then check to see if I am supposed to showing ads. Basically if showAds==true and entitlement==false show “Remove”, if showAds==true and entitlement==true show “Restore” else show nothing. I’ve done some basic logging and testing but what I can’t seem to figure out how to test is the restore scenario. I have a sandbox account setup as well as the simulator with the storekit setup. I can install the app from XCode, run it, make the test purchase and all works as expected. How do I test the restore though? That requires removing and reinstalling app, which appears to also reset my purchase history to appear that I have not
Hi there!We’re eager to test A/B testing functionalities on RevenueCat, but we realized this is actually not possible because it doesn’t support custom attributes.We already use custom attributes to display specific paywalls to defined partners’ users. If we run a test, we don’t want users coming from partners to enroll in the experiments (they still need to see the usual paywall as defined per partner agreement!).Anyway, in the enrollment rules, we can’t make sure we use the same custom attribute we use in targeting. This is frustrating: it’s a blocker for us on running experiments. For the company this is getting a concerning issue, as we’re looking to validate our product proposals by defining its more appealing bundles and prices.We have cool feature there, but we can’t currently use it, and given our use case, I suppose it’s pretty common issue. When are we going to get this?
I’m build an app that handles multi account, user can add multiple accounts and switch to other account and perform tasks Each account should have their own subscriptionBut the problem here is I purchased “Plan A” in “Account 1”if i go to “Account 2” and purchase “Plan A” It says this subscription is already active.but it’s active on “Account 1” Not on “Account 2” But i can see few apps like instagram, twitter . They have this thing for blue tick. I can buy a blue tick subscription in “Account A” for 6$, and i can buy a blue tick subscription in “Account B” for same amount. both managed in same Play store account subscription. Kindly guide me, how should i procced. Thanks.
Step 3 of the Android setup requires you to ‘invite a user’ on google play corresponding to the service account created in the previous step. How does one invite a service account when the only input for inviting a user is the email?
Hi there, I saw an older thread here about this from 2021. It’s 2025 and I am wondering when RevenueCat would support other Android stores like Huawei.
I have RevenueCat and Play Console setup for consumable products. I setup a test promo code but when redeeming successfully, the order doesn't display in Play Console (works on subscriptions) as a $0 order and the purchase action in app is not applying the steps I have setup. Anybody else having this issue? I have an app in production and am on a tight marketing deadline to get this fixed. Need help ASAP please!
I'm trying to add a .p8 file to the StoreKit Subscription Offer key section, exported from Xcode via StoreKit configuration. However, when I upload the file, nothing happens—no confirmation, no error message. The file isn't accepted and no feedback is provided. I've ensured that the file was exported properly from Xcode.Is there a specific format or requirement for this key that I'm missing?
Hey folks, I ran into this scenario:Enabled Server 2 Server notifications for App Store. Received RC Anonymous in INITIAL_PURCHASE (sandbox) webhook event Received my custom ID for RENEWAL events following INITIAL_PURCHASE. Never received a TRANSFER event.I followed this RC Doc and I can confirm the first 2. For 3, I use the firebase user ID as the RC user ID. #4 is not applicable for app store. Doc mentions:“If not, it may happen that we first track a purchase for App User ID A from a server-to-server notification and later we receive the same purchase from the SDK or the REST API under a different App User ID B. In this case, no transfer will occur, and App User ID B will never get access to the entitlement.”Could you please help why a TRANSFER event was not sent even though the conditions were met?Followup -As I need S2S notifications for handling REFUND events only, would it be safe to turn off S2S for new purchases?Thank you!
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.
I have two paywalls and two offerings. However my app is only showing my standard paywall when it should be showing the free trial one. On App Connect I only have two subscriptions: monthly and yearly with the free trails included in each. Is this the correct way or should i create 2 new subscriptions for the trials?
I’m using /receipts endpoint from API v1 to migrate my old purchases. The response is successful, but the purchase is not in the dashboard. How long does it take to be visible?
Hi RevenueCat Support TeamWe were unable to find any public REST API endpoint that allows fetching existing Targeting Rules. Our use case involves: Retrieving the applied Targeting Rules via API Verifying their presence and correctness in our automated testing pipeline Ensuring that recent changes to Targeting Rules are reflected in the testing environment Would it be possible to expose a GET endpoint for Targeting Rules, or is there a recommended method to retrieve these configurations via API?
After a user purchases a plan in-app, it shows up as purchased in the Apple Store (on their end), but doesn’t appear on their RevenueCat Customer Profile. UserIDs have been checked so it’s not being sent elsewhere.We recently made an update to our app which broke something and can’t seem to locate the exact cause/fix. It was working normally before, and still works on an older app version.Any guidance would be appreciated.
Hi, I’d like to use Paddle and RevenueCat to offer subscriptions for my SaaS startup :)As far as I understand, the essential bit of information that connects Paddle webhooks to the right RevenueCat customer is sending the user_id in the metadata. So the flow is:get user_id from authentication provider user wants to access a paid service? Check if user_id has the right entitlements via the RevenueCat web sdk user wants to make a purchase? Start the Paddle checkout flow, attach user_id in the right field of the metadataHow do I test this? I’m thinking the correct way is probably to connect a Paddle Sandbox account to RevenueCat and then run various simulations against a little sandbox website (which has authentication and a handful of mock routes). But I haven’t found documentation on this scenario.Does RevenueCat realize that products are purchased via a sandbox account? I’d like to test this thoroughly, but not have to pay for sandbox purchases.What’s the correct way to test Paddle+Rev
Hi, I’m working on an MVP customer-facing mobile app, that uses the OpenAI API. I came up with an architecture to manage their credits, trial, and monthly subscriptions, and looking for feedback.The user’s consumption is based on credits. Adding a trial or subscription increases the user’s credits. Calling OpenAI endpoints deducts credits.In order to allow the user to interact with the app without having to register, I added support for device uuids. When the user calls for the first time an endpoint that uses the OpenAI API, I automatically create a trial user, with some free credits. The trial finishes simply when the user consumes all their credits. Noting that these trials don’t use RevenueCat.When the user subscribes, it goes through RevenueCat and ultimately, in the webhook call, my backend creates/upgrades the user with the subscription credits.The user, optionally, can at any time register, which will authenticate them via JWT/email. When they do this, I migrate their UUID-base
Hi I’m trying to add 4 packages in an offering, pro monthly, pro yearly, premium monthly premium yearly, i used custom identifier package to set up the premium ones, however when I try to select the package in paywall, the premium yearly package is shown as monthly in the paywall. i can’t figure out how to set up these 4 pricing in one paywall using one offering. HELP! Thank you
Hello RevenueCat team, Since users can install and launch the app without logging in, aliases are automatically added to their account once they log in. That means if someone do that 50 times, 50 aliases will be created, and then, the purchases can’t be restored because they are receiving an error stating that that user has too many aliases.Then, I’ve seen there’s a way to list someone’s aliases via the V2 API, but how to delete some aliases? It would be great if I could start deleting the oldest aliases when someone reaches 40, for example. Those aliases are anonymous users, so there’s no need to keep them there.If it’s not possible to delete the aliases, is there any workaround?Thanks!
Hi,In my app developed with Expo, in-app subscription packages load and display correctly in the development environment (expo go/local). However, after building for production and installing the app via TestFlight, the packages cannot be fetched and I get an error (e.g., “Rejected” or “product not found”).My IAP products are approved on App Store Connect and the bundle ID is correct. I’m using RevenueCat and have double-checked the configuration. Has anyone experienced a similar issue or have any suggestions?Thanks!Expo Screen TestFlight Screen
Can we modify consumptionStatus or deliveryStatus in here: “https://www.revenuecat.com/docs/platform-resources/apple-platform-resources/handling-refund-requests#data-revenuecat-sends-to-apple”
Hello!I am posting here in order to double-check my approach when it comes to creating a market-place and allow sellers to pick an arbitrary price for selling digital products.As such, and that’s as far as my planning has brought me, I came up with a solution where I’d create SKUs and IPAs which represent a particular price-point like:storeIdentifier | price |-----------------|----------|item_0050 | € 0.50 |item_0100 | € 1.00 |item_0150 | € 1.50 |... | |item_9999 | € 99.99 |I do this, because it appears not to be possible to simply define a `store_product` item with a base price of €0.01 (one Euro cent) and then control it using quantity such that users would buy 1000 units of `store_product` to be charged €10.00.As I am working on fully-separate environments, I’d have to replicate these SKUs and IPAs in all environments and mirror all of that in RevenueCat. That’s not the issue of course per-se, but I want to make sure that
I have a Yearly Block and a Monthly Block.I want to use variables to show the price of the monthly product (calculated annually) but have it be displayed in the yearly block. Is that possible? It seems that the variable that I use in the block is always tied to the package that is selected for that block.But is it possible to show the product.price from both my $rc_monthly and $rc_annual packages in the same block? See the below screenshot for an example of Calm’s paywall. This is what I am trying to achieve.
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.