Get help with anything related to RevenueCat.
Recently active
i have lost my authenticator app, and i want to enable authentication on my official app, how to change it, i need urgent help
I'm having an issue where my monthly and annual products are displayed with weekly attributes in my paywall.I already have other products with annual and monthly types, so I have to use custom type for these.How do I display the proper periods in the paywall?
Hi, google play - I have a subscription called premium, under that 3 base plans, premium7days, premium30days, premium90days. On the app the 3 products all show up as: Premium Access (myapp) $xx.xx. the only difference being the price. I have figured out the value that is shown comes from google play Subscription, Name field. How is this supposed to work, do I just need to manipulate it in code? Or have I missed something somewhere.
Hello,I have 2 subscription options, a monthly and a yearly.I'm running an iOS app with auto-renewable subscriptions managed through RevenueCat (SDK 5.67.1, StoreKit 2, default config — Purchases.configure(withAPIKey:) with no builder options). I have two products in the same subscription group: wingman_yearly and wingman_monthly, both with a 3-day free trial. Yearly trial conversions are debiting users normally and showing as posted charges in Apple's Purchase History. Monthly trial conversions are not — the in-app purchase modal returns success, RevenueCat marks the entitlement Active and emits a RENEWAL event with is_trial_conversion: true, period_type: NORMAL, expiration_at_ms correctly set to +31 days, AUD 19.99 in price_in_purchased_currency, and no expirationIntent / is_in_billing_retry_period / cancellation_reason flags — but Apple's iOS Purchase History (Settings → Media & Purchases → View Account → Purchase History) shows the same transaction as Pending, and no debit has
I’m running into a RevenueCat/App Store setup issue and wanted to see if anyone has seen this before.Scenario:- iOS app using RevenueCat with App Store subscriptions.- Subscriptions are created in App Store Connect and currently in `Ready to Submit`.- RevenueCat dashboard shows a `default` offering with multiple packages configured.- Each package has the correct App Store product attached.- Products are also attached to entitlements.- App Store Connect API key and In-App Purchase key both validate successfully in RevenueCat.- Bundle ID and RevenueCat public SDK key match the app configuration.However, when the app calls `getOfferings`, RevenueCat returns the current offering with **zero packages**.SDK error is essentially:```textOffering 'default' has no packages configuredYou have configured the SDK with an App Store API key, but there are no App Store products registered in the RevenueCat dashboard for your offerings.```I also tested direct StoreKit 2 product lookup from a TestFlight
``` mcp Error: Error calling create-product: Unknown error. HTTP status: 422 Full response: object: error type: parameter_error message: A duration is required to create a Test Store subscription product retryable: false doc_url: "https://errors.rev.cat/parameter-error" param: simulated_store_durations Expected parameters: project_id (string) *required* - ID of the project store_identifier (string) *required* - The store identifier of the product. - For Apple App Store products this is the product ID of the subscription or in-app product. - For Google's Play Store, it should follow the format 'productId:basePlanId' for subscription products and SKU for one-time purchase products. - For Stripe, the product identifier that always starts with "prod_" - For Amazon, if it's a subscription, the term SKU of the subscription. If it's a one-time purchase, the SKU of the product. - For Roku, this is the product identifier of the subscription or one-time purchase product. Example: com.revenu
Our paywall looks broken if the user has increased the iOS accessibility dynamic type sizes for fonts to the largest values. Adding the .dynamicTypeSize modified to the RevenuCat Paywall SwiftUI view does not seem to have any effect. Any way to set this to specify the allowable ranges of font sizes?
Hi team,I’m using RevenueCat Paywalls with a Flutter app and Google Play subscriptions.I have configured an introductory offer in the Play Console (₹150/month initially, then ₹250/month). This works correctly in the Google Play purchase screen.Revenuecat always displays the base price (₹250/month), not the introductory price.I cannot find any variables for:intro price discounted price offer pricingSo currently my paywall shows ₹250/month, while Google Play shows ₹150/month for eligible users. This creates a mismatch and poor user experience.Questions:Does RevenueCat Paywalls support displaying introductory pricing for Google Play subscriptions? If yes, which variable should be used to show the intro price? If not, is this a known limitation or planned feature?Would appreciate clarification, as this directly impacts conversion and pricing transparency.Thanks.
If I create or modify a paywall to support the new Rules and Custom variables, and publish it, what will users with older versions of the SDK see?In my example Paywall, I have multiple headings that are hidden/shown by some Rules, based on custom variables. What happens then? Will all my layer/components appear at once?Also there seems to be a new ‘Hide this component’ feature in the Layers list. Is that supported by all versions?I’m not sure I understand fully the implication of using new features that require a new SDK, and what will be the outcome. The editor has this mention: SDK version detailsThe minimum SDK version required has increased due to Rules.We've seen this paywall served to users on older SDK versions who may see your default paywall if you publish these changes. But I don’t quite understand what it implies. My ‘default’ paywall will look ok if the ‘hide’ feature is supported. But it will be a mess of duplicated content if not.
I’m trying to allow multiple users in my app (each with their own account) to subscribe using the same Apple ID.I’ve set up multiple subscription groups in App Store Connect and matching offerings in RevenueCat. In my app, I’m selecting different offerings depending on what’s already been purchased.But no matter what I do, I keep getting:“You’re currently subscribed to this.”Even when I should be hitting a different subscription group.In RevenueCat I can see the correct entitlement (like a different plan/group), but the app still seems to be using the default offering.Has anyone successfully implemented multiple subscriptions under one Apple ID with RevenueCat? Would anyone be willing to help me? I am more than willing to pay for help at this point 😞
Hey Revenue cat TeamHas the following issue been resolved = What is the solution for this bug ?
Hi,we are implementing the recommended flow for syncing subscription information on our backend with RevenueCat, as described here: https://www.revenuecat.com/docs/integrations/webhooks#syncing-subscription-status.Each time we receive a webhook, we call the RevenueCat API to fetch the current information about the user’s entitlements. Based on that response, we determine whether the user should have premium access.We are using the v2 Get Customer endpoint. After receiving a webhook, we call this endpoint and check the active_entitlements field in the response.I have a question regarding consistency:Does RevenueCat guarantee that, after receiving a webhook, calling the API will always return up-to-date entitlement information?For example, if we receive an expiration webhook and then immediately call the API, is it guaranteed that the active_entitlements field will already be empty because the user’s subscription has expired and the entitlements have been removed?Thank you for your help.
For my customers, I keep running into issues where the customer’s free trial is ending and they are set to convert, but almost all cases where this happens, there is a billing issue, I wonder if its some set up I am not doing properly or its an issue.Please advise as this is affecting my revenue, thanks!
Hi I updated subscription pricing for our products inside app store connect - however the paywalls are not updating with the new pricing? I tried refreshing the app, but still shows the older price, and when trying to pay it still goes to the older price Even though in app store connect - it is fully updated to be the new pricing on our subscriptions. I wanted to try and delete and add the products again but since we had transactions → it did not work as you cant delete products with existing transactions.
I have used one of the pre-made paywalls and changed some stuff but basically I have setup up monthly and yearly subscription with 7 days freeA couple of things I cant get my head around. 1. Previously the button was showing 7 days free but now it says “continue” only2. The text colour of the button shows white on a dark background in draft mode, but once deployed it shows black on a dar background which is not very visible at all. Can I please get some help with this?Is it possible to see the code of the paywall?
When using Custom Variables, what is the order they are applied, or priority?If I have 2 variable states that are fighting each other, which one wins? Can that order be modified?For example, my first variable shows heading_1 when true, but my second variable hides heading_1 when true. Who wins? Can I decide?What about Selected Package, and Active Offer, do they take precedence?There doesn’t seem to be a way in the Editor right now to preview more than one variable or selected package or active offer at a time. That would be very useful, if not essential.
Well, this is something annoying...Suppose you are using placements to show different paywalls throughout your app. In our case we have around 20 different placements. For all sorts of various products and different intent triggers.Now, if you want to run an a/b test (experiment) for ONLY one of these placements, like “onboarding” paywall. You end up in a world of shit…1. First you must create your experiment with all the placements, or paywalls would start getting wrong offerings.2. Then, your data will be polluted by ALL purchases done from every placement in the app.So, its virtually impossible to get any reliable data for your “onboarding” placement test.You would like to create an experiment for ONE particular placement ONLY.As it is now, as your app grows and you get more than a single paywall, the experiments are getting worthless.Is there going to be a better RevenueCat experiment update for this in the near future? Or do we need to start looking for other ways to a/b test mone
I’m following the tutorial for setting up a tip jar via RevenueCat for my Kotlin Multiplatform app, and was wondering if users are able to request refunds if ever they’ve sent a tip.If they are able to, does RevenueCat have like a terms URL that I can use to show to users?
Hi RevenueCat team,We have multiple subscription products and multiple dynamically configured paywallsPaywalls are implemented using custom UI.Users can reach paywalls both via:In-app navigation CRM-triggered deeplinks from marketing campaigns We want to offer subscription discounts to users segmented by marketing.Basically if marketing needs to offer a discount to a cohort of users, they should see the correct paywall with correct discount price and be able to purchase it.Is there an official recommended approach using RC and Apple Introductory or Promotional offers ?NB: Asking only for Apple because on Google Play Console, it looks ok with the subscription + offer mechanism combined with “developer determined” eligibility and “rc-ignore-offer” tag to fully handle it on our side.Thanks for you help.
Hey team,I’m seeing conflicting info in the docs around trial credits and wanted to clarify what the actual behavior is. This page says trial credits do not expire: https://www.revenuecat.com/docs/offerings/virtual-currency/subscriptions#trial-credits-do-not-expire But this page suggests trial credits do expire:https://www.revenuecat.com/docs/offerings/virtual-currency/expiring-currencies#configurationCan you clarify: Do trial credits expire at the end of the trial period or after cancellation? Or are they always non-expiring unless explicitly configured otherwise? If configurable — what’s the recommended setup for trial credits in production? Just want to make sure we don’t end up with unexpected credit loss or abuse.
---Hi, we're trying to retrieve offerings together with their packages and products in as few API calls as possible, but the `expand[]` parameter appears to be silently ignored on both endpoints we've tested.---Case 1 — `expand[]=items.package` on GET /offeringsRequest: curl -s "https://api.revenuecat.com/v2/projects/proj_xxxxxxxx/offerings?expand%5B%5D=items.package" \ -H "Authorization: Bearer $REVENUECAT_SECRET_KEY" \ -H "Content-Type: application/json" | jqResponse — packages are absent, expand is silently ignored:{ "items": [ { "created_at": 1776390456551, "display_name": "Offering A", "id": "ofrng_aaaaaaaa", "is_current": false, "lookup_key": "offering_a", "metadata": { "some_key": "some_value" }, "object": "offering", "project_id": "proj_xxxxxxxx", "state": "active" }, { "created_at": 1775603850680, "display_name": "Offering B", "id": "ofrng_bbbbbbbb", "is_current": true, "lookup_key": "default",
Hello RevenueCat Team,I have implemented subscriptions on my website with monthly and yearly plans. Once a user purchases a plan, they can upgrade or downgrade to another plan. This is currently handled using RevenueCat Web Billing. However, Web Billing does not provide a flow like the App Store or Play Store. Instead, upgrades and downgrades must be handled through the customer portal, as described here: RevenueCat Web Billing - Upgrade/Downgrade The documentation also states that users can upgrade or downgrade their plans through the customer portal link sent via email by RevenueCat.In my implementation, I am handling this through APIs using the following flow:Search for the subscription using the Search subscriptions by store subscription identifier API. Retrieve the Subscription ID from the response. Use that ID to get the customer portal URL via the Get an authenticated Web Billing customer portal URL API. Redirect the user to that URL.The issue I am facing is that there is no wa
Hey,I’m trying to model a yearly subscription where users pay upfront for 1 year, but receive credits monthly (e.g. X credits every month instead of all upfront).What’s the recommended way to handle a yearly subscription where users pay upfront for 1 year, but receive credits monthly (e.g. X credits each month instead of all at once)?Is this supported natively with Virtual Currency, or is there a different recommended approach?Would appreciate guidance on best practices here. Specifically: Is there a native way to distribute credits monthly for annual subscribers? How to handle properly: ensuring credits are granted once per month (not duplicated) handling edge cases like renewal / cancellation mid-cycle
EDIT: sorry, i made a mistake. it is showing up
I made a vibe coded note app and uploaded it to play store.I connected it to my vedatsozen revenue cat account.I created pro and default offerings and environments.I am in closed test users. I downloaded it and i clicked the unlock button for opening pro mode to test buying ..But i get this warning.I opened licence testing for fake credit card buying too from play store.I am waiting to solve this problem.Thanks.I uploaded a new version of my app with connecting codes but i think my be i could not download it.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.