Get help with anything related to RevenueCat.
Recently active
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.
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.
Hey RC team,We recently had a problem where an Apple user signed-up to our App for the first time and subscribed to a product with a free trial. Unexpectedly, they were charged the full amount right away. Our App only offers auto-renewable subscriptions to users.I have checked in RC’s Customer History for that user as well as our own logs to see if the user’s trial eligibility was incorrectly determined and they were misguided by our App’s UI that they were eligible for a trial, but doesn’t seems to be the case.RC shows in the Customer History that the user started a trial and also shows 0 revenue reported. We even asked the user to provide us with a screenshot of the subscription details of our App in their Purchase History through their Apple Account. That also shows that the user was subscribed to a free period which will be renewed after X number of days.We would appreciate if you could tell us what could’ve happened here? I will be happy to share the AppUserId if need be.
Hello, we’re tracking our daily total revenue in the Transactions page in RC mobile app.However, we recently noticed that even when new subscriptions are added, the total revenue in that day decreases. It might have been because of refunds, which can reduce the sum, but after we checked that wasn’t the case.We tried to see if there’s a pattern in the change of sum number, but couldn’t find any. Sometimes the number goes up, and sometimes the number goes down, regardless of how many new subscriptions are added.Are we missing something here, or is this a bug?Thank you.
Hello everyone,I have a monthly subscription for my Flutter app. Just a single subscription plan.I faced an issue with at least two customers have an issue with their premium subscription because I am relying on the webhook for their subscription status.There is a pattern here:1. Subscribe2. Opt-out3. Force resubscribe (?)4. Subscription expiredFrom the images below, You can see that the customers manage to subscribe to the same subscription before it expired. I do Both of the customers are from Italy and using Android if that matter. Hope to hear any explanation on this. Thanks!
Hello friends!I have an app that is accompanied by physical products.Today the user buys the physical product (~4USD) from our Shopify store and adds it to their account in app when received via serial number to be used with app functionalities.I would LOVE to offer the physical products as one time in app purchases. No more Shopify and a much better user experience. Dream onboarding would be to download the app, pick monthly subscription for app, pick number of physical items and pay (adds ~4USD/item), then add your postal address in next step of onboarding.Or pick yearly subscription and get physical items for free, then add your postal address in next step of onboarding.And of course have a in app ”Store” where users can order physical items ad hoc. Is this possible with RC?
Hi RevenueCat team and community! I would like to animate Buy Now button like its breathing. I saw that it encourages users to buy to product but couldn’t find any method. Can you help me with that? Thanks in advance!Have a great day,Han
I have seen some other posts about this, and tried everything I have read up on - but I continue to get this error. Everything in the business section is filled out on app store connect. I have tried and regenerated this a few times. Any suggestions how to fix this is welcomed!
There’s other posts about this. Tried everything I have read up on - but I continue to get this error. Everything in the business section is filled out on app store connect. I have tried and regenerated this a few times. Any help? Thank you!
Hi, Is is possible to create a Web Billing product with the API?I saw in the documentation that the create product endpoint doesn’t allow it but maybe there is another way to do it? Also, could you give me more details on the push a product to the store endpoint please?Is it creating a product on the AppStore Connect for example if we’ve created a product on RevenueCat? Thank you for your help! Damien
Hi everyone,I'm using RevenueCat Flutter SDK v9.15.1 and having issues with subscription upgrades and downgrades on Android (Google Play).Setup:- Single subscription ID: `pro_access`- Base plans: `starter_monthly`, `starter_yearly`, `premium_monthly`, `premium_yearly`, `professional_monthly`, `professional_yearly` if (Platform.isAndroid && oldProductId != null && oldProductId.isNotEmpty) { params = PurchaseParams.storeProduct( newProduct, googleProductChangeInfo: GoogleProductChangeInfo( oldProductId, prorationMode: GoogleProrationMode.immediateWithTimeProration, ), );} else { params = PurchaseParams.storeProduct(newProduct);}Questions:1. Should `oldProductId` be passed as `pro_access:starter_monthly` or just `starter_monthly`?2. Is `GoogleReplacementMode.deferred` the correct mode for downgrades?3. Is there anything specific to v9.15.1 that affects `GoogleProductChangeInfo`?Google Play returns a generic error and RevenueCat logs a replacement mode
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.