Get help with anything related to RevenueCat.
Recently active
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.
We have a custom attribute to determine if our customers are eligible for free trials based on some criteria in our members database. If we just use offerings and targeting, we can target the correct offering to the correct customer (one with trials, one without). But we want to run an A/B test on the trial type using an Experiment. But it looks like we cannot determine experiment eligibility by custom attribute. Are there plans to add this feature?
Hello, I’ve received feedback from the App Review team for my app, indicating that the auto-renewing subscription violates guideline 3.1.2 due to inappropriate use of the service. They noted that such subscriptions should provide dynamic, ongoing value over an extended period and requested a revision or removal.My app offers cloud backup for user app data and cross-device sync via Apple Sign-In and Google Sign-In, with unlimited uploads and downloads. Additionally, we limit free users and provide premium features like more stylish cosmetics to paid users and more upcoming. Despite my previous response, the feedback remains unchanged.I’d like to ask: Does a simple cloud backup for user app data suffice to meet the ongoing value requirement of 3.1.2?I also suspect that providing clear instructions for reviewers to test this cloud feature—such as screenshots and a step-by-step guide—might help clarify its value.I zeroed in on the cloud aspect based on reading that it should be sufficient
Hi, community. One of my users (336542) has purchased a subscription, confirmed by the RevenueCat Overview dashboard (real-time), and also by searching for the specific user ID in the Costumers section. The user used Play Store.However, that seems to have not triggered any events in the webhook. I rely on the webhook to give the benefits to the users in my backend, so this has broken the flow.The purchase was made in Production.The latest entry I have in my webhook events (in the Webhook Implementation section in the dashboard) is from 2025-07-30. Same in my webhook handler logs.I have no idea what could be going on. Any insights?
I've read through multiple discussions here in the forum but I am still not sure, what does it exactly mean when we get Billing Issue + Billing error right when a free trial ends?From what I've concluded, they payment method didn't succeed. Is this happening because my users may use virtual prepaid cards that expire before the trial ends?
Hello, I have been reading the following article about iOS subscription groups as we’re looking into using RevenueCat Experiments:https://www.revenuecat.com/blog/engineering/ios-subscription-groups-explained/We only have one subscription pricing overall on our platform, a Pro subscription. We want to only do the A/B Test to have with Free Trial VS no Free Trial.From this article I’m not sure if we should be creating a new Product under the same Group or a different group: Subscription groups make testing prices more difficult. Because all products in a subscription group are visible to the user via the subscription settings, you can’t add a one-off product to a subscription group at a different price and control who sees it. If you want to A/B test two prices for a product you will need to create two entirely parallel subscription groups. Deploying and maintaining entire parallel subscription groups can be challenging to manage, especially if you are doing multiple price tests (which y
Hey folks 👋, I just started using RC and need your help with handling of REFUND events. For apple app store -Does REFUND request raised by customer also CANCEL the subscription (I assume not)? Or is it targeted to a specific RENEWAL/INITIAL_PURCHASE TRANSACTION_ID event? The REFUND event sent by RC, can I assume the TRANSACTION_ID would match a past/current RENEWAL/INITIAL_PURCHASE event’s TRANSACTION_ID? Same for REFUND_REVERSED - can we assume the TRANSACTION_ID in all three events - (RENEWAL/INITIAL_PURCHASE) → REFUND → REFUND_REVERSED would match?How do you guys test the REFUND flow? I raised a sandbox REFUND request through the app but never received a REFUND event.Thank you! 😊
Hello, I’m seeing an issue with one of our consumable products in production (not sandbox). A user attempted to buy the same consumable twice via RevenueCat, but the second purchase did not result in a charge. Instead, our webhook received a NON_RENEWING_PURCHASE event, and RevenueCat did not bill the user again. This purchase was made using same App User Id and we can see it in customer history on dashboard.Since this is a consumable product, it should charge on every purchase. Could you please investigate why the second transaction isn’t billing the user? Let me know if you need any additional logs or identifiers.Thank you
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.