Discussion and help from anything related to RevenueCat.
Recently active
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.
Hi everyone,I wanted to bring up a feature request that I believe would be highly valuable for many developers using RevenueCat for subscription management.Currently, there’s no native integration with TikTok Ads for conversion tracking. As TikTok continues to grow as a major user acquisition channel, especially for mobile apps, the lack of direct support makes it difficult to accurately attribute subscription events and optimize campaigns.Right now, developers have to rely on workarounds like server-side events or third-party attribution tools, which can introduce complexity and potential inconsistencies in data.It would be incredibly helpful if RevenueCat could support TikTok Ads integration in a similar way to other ad networks, enabling: Subscription and purchase event tracking Better attribution for ad campaigns Simplified setup without needing custom pipelines Improved ROAS optimization for TikTok campaigns Is this something that’s on the roadmap, or has anyone found a clea
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?
I'm using revenuecat with paddle integration, I would like to implement a subscription downgrade logic that calls the paddle API since revenuecat doesn't support paddle subscription upgrade/downgrades through its sdks (I have already asked about this on github months ago without any answer https://github.com/RevenueCat/purchases-js/issues/182#issuecomment-3519530263).I was wandering if I make a PATCH request to https://api.paddle.com/subscriptions/{subscription_id} (check https://developer.paddle.com/build/subscriptions/replace-products-prices-upgrade-downgrade) with full_next_billing_period proration mode to downgrade, what webhooks revenuecat will trigger. And also, will revenuecat immediately change the user entitlement or wait until the current period ends since the user is only charged at the end of the current period with full_next_billing_period.Basically, does revenuecat rely on paddle subscription state or transactions or both to manage entitlements/revenuecat customer subscri
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.
I have identified an issue where RevenueCat does not send complete app event data to the Meta Conversions API.Below is a sample request body obtained from the RevenueCat → Meta Ads integration:Reference: Meta Conversions API documentation – https://developers.facebook.com/documentation/ads-commerce/conversions-api/app-events{ "action_source": "app", "app_data": { "advertiser_tracking_enabled": 1, "application_tracking_enabled": 1, "extinfo": [ "i2", "com.my.app", "", "1.0.0", "26.3.1", "", "en-US,en;q=0.9", "", "", 0, 0, "", 0, 0, 0, "" ], "vendor_id": "5E153361-2630-4731-9D6F-XXXXXXX" },Subparameter Name RevenueCat Sends to Meta extinfo version YES app package name YES short version NO long version YES os version YES device model name NO locale YES timezone abbr NO ca
Hello RevenueCat Support, I checked the RevenueCat dashboard, but I’m unable to find any option to upload or change the app icon for my projects. I looked in the App Settings and project overview pages, but I do not see any icon/avatar upload setting.Could you please let me know where exactly this option is located, or if this feature is only available for certain account types?I would appreciate any guidance or screenshots showing where to update the app icon.Thank you for your help.
Hi there - I know that some of the charts features are still Beta. But we put a lot of work into a exit paywall cascade and right now I can’t even see if people vsiting the paywalls at all.Firebase doesn’t count events. Our devs say that’s just not working for exit paywalls.So I hoped the paywall charts within RC give me numbers. But when I a look at Paywalls where I have firebase data AND rc paywall chart data I see that the numbers of the rc paywall charts (“paywall encounter”) are way off compared to firebase.Like: Firebase says 90 visits and RC paywall chart says 3.So if numbers that I can doublecheck with a second source are way off I don’t have much trust in the rc numbers for the exit paywalls, for which I don’t have a second source.I just wanted to know: Is that a common issue? Are others experiencing the same: firebase data and rc paywall charts not matching at all?Thanks a lot for any responses. So I can try to figure out if there is a solution for this issue.
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
Hi RevenueCat team/community,I'm facing a color rendering issue on Android.Problem: In the RevenueCat dashboard paywall editor, timeline text is configured as white. (both on dark mode and light mode) In the Android app, the same timeline text renders as white for the first step but black for the following steps. This is not related to light/dark mode logic (I've tested both modes and forced configurations). also some text does not respect the size configured Setup: react-native-purchases: ^9.10.4 react-native-purchases-ui: ^9.10.4 Expo SDK : 54.0.33 React Native : 0.81.5 Screenshots :correct paywall on the dashbord what i have on my phone Has anyone encountered this specific timeline text color discrepancy on Android? Any known workarounds or config fixes? thanks,
I created a test store and products/offering using this tutorial. I then checked the products in the dashboard to edit them, but can’t seem to edit the price I’ve initially set. I can only edit the name/customer facing details. Is this intentional?
I’ve set up a paywall by following this tutorial, and with a Test store set up and paywall, I want to use this only in the dev/debug version of my mobile app. Is it possible to serve two versions of paywalls depending on the build of the app?
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.
Hi.We've set up the RevenueCat + Appsflyer integration.We built a Fire OS build and uploaded it to Live App Testing.We're successfully processing payments and subscriptions, and we can see the data in RevenueCat.We can also see that the data has been successfully sent to Appsflyer.BUT we can't find this data in Appsflyer.What are we doing wrong?UPDATED!Appsflyer replied that the problem lies in the request data between the servers (RevenueCat → Appsflyer).I don't know how to fix this.
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
Hi everyone,We’re investigating a sudden failure on our AppsFlyer integration and wanted to check whether anyone else has seen the same pattern.Context:AppsFlyer integration was working before failures started after the RevenueCat incident on Apr 18, 2026: https://status.revenuecat.com/incidents/10dkhmtf8155 RevenueCat’s incident update mentioned delayed third-party integration events and replay of queued requestsWhat we’re seeing:after the last successful AppsFlyer delivery, subsequent RevenueCat -> AppsFlyer events started failing failures affect all our app versions 1.3.1 , 1.3.2 and 1.3.3 failures affect multiple event types AppsFlyer responses are now a mix of: 403 Forbidden 400 Unauthorized What we already checked:RevenueCat AppsFlyer config uses the correct iOS App ID we are using an AppsFlyer Dev Key, not an S2S token the dev key has not changed RevenueCat is definitely attempting delivery to AppsFlyer successful and failed events exist for 1.3.1 , 1.3.2 and 1.3.3, so this
EDIT: sorry, i made a mistake. it is showing up
I am experiencing the exact same issue as this user, whose problem was not solved > @hussain - what info do you need from me to investigate?
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.
I am implementing a subscription in a Flutter app for the first time, and this app is a little bit special with the user account. Being logged in is a premium feature. Premium gives you the possibility to download other users published content, backup to the cloud, sync of your data between devices. But… 1. You don’t HAVE to login.2. You have to get premium first to be able to login .So I did what I thought was right, I just use the anonymous id until the user logs in, then they are also logged into revenuecat with their firebase uid. The problem is that they could log out, and then log in with another account. The they’re logged in to revenuecat with the new uid. But I noticed some problems. I did this:1. Get premium2. Login3. Log out4. Log in with another accountAfter step 4 the premium went away and I couldn’t restore it. I’m not loggin the user out from Revenuecat at any point, since that also made me lose premium.Now I’m leaning more towards just skipping logging the user into rev
I’m not able to comment on my original posts about custom variables and Paywall variants.But please add this functionality so I don’t have to duplicate my text layers all the time.Also would be nice to be able to swap an image/video from the Rules interface. In both cases I need to duplicate the components, then make sur they are all hidden by default, then active then manually.And If I have a styling change to do, I’ll have to do it manually on all my components. The new variables are great, it will work. But it doesn’t seem like been completely thought through for actual usage, it’s quite cumbersome.
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.