Discussion and help from anything related to RevenueCat.
Recently active
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.
Hi RC Community! 👋Today, I was trying to use the RevenueCat dashboard to manually grant users some entitlements. According to the sacred texts (the internet), RC is supposed to fire off a lovely little webhook to my server when this happens. Simple, right?So, I set up my shiny new server sync, granted the entitlement to test it out, and waited. And waited. Nothing happened. The only thing that happend was RevenueCat updating the account itself inside of the dashboard, and that was pretty confusing because no webhook was being fired.Naturally, I did what any rational developer would do: I panicked, assumed everything was fundamentally broken, and started hacking together a completely custom, overly complex implementation. Spoiler alert: That was a terrible idea. 🤦♂️After losing way too much time and sanity, I finally discovered the catch: These specific manual dashboard events are only dispatched as Production events. I have no idea why it’s set up this way, but it cost me a good chu
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.
Hi all,This is an Android issue, I’m currently not targeting iOS. I’m calling GetOfferings and it’s returning the offering, but the offering contains only one product, which is a non-consumable product. I also have two subscriptions which are not returned. I am currently using IapHub to handle my inapp purchases and everything works great there. But I would like to migrate to RevenueCat.The app is running on the closed test track and I am a tester. This is my configuration: Google Play:Non-consumable product. This works Subscriptions. Not working And TLDR:getOfferings only returns the non-consumable product, not the subscriptions Android only, app running in closed test track, I am tester RevenueCat Product ID’s match with Google Play Store (see screenshots) Inapp purchases currently work using IapHub, but I want to migrate to RevenueCatCan anyone spot what is going wrong here?
It seems KMP library isnt compatible with exit offers, is it planned?
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.
I’m using RevenueCat to display paywalls and have created multiple offerings for different targeting groups. In my Flutter app, I want to show different paywalls to different users based on the offering.I’m displaying paywalls using PaywallView from the RevenueCat SDK and passing a specific offering to it. However, instead of showing the selected offering’s paywall, it always displays the default offering’s paywall.I fetch offerings at app launch, and based on debugging, the offerings appear to be valid and correctly retrieved.This setup used to work as expected, but recently it stopped working. I’m currently using the latest version of the RevenueCat SDK (9.15.1).Has anyone experienced this issue or knows what might be causing the SDK to ignore the passed offering and fall back to the default one?
Hi everyone,I’m using the Airbridge integration, our dashboard is being "polluted" with sandbox transactions from our IT/QA teams testing in TestFlight. I noticed that some RevenueCat integrations (like Mixpanel, AppsFlyer) allow for a dedicated "Sandbox API Key" , but the Airbridge configuration doesn't seem to have this.My questions for the community/team: Is there a way to globally disable "Sandbox Environment" events specifically for the Airbridge integration? If not, how are others handling this? Does everyone just create a separate RevenueCat Project for staging/testing to keep the API keys isolated? Is there any plan to add an "Ignore Sandbox" toggle to the Airbridge integration settings? Any advice on keeping production MMP data clean without stopping internal testing would be much appreciated!
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?
my dashboard shows that product is linked to an entitlementbut when user goes to purchase a subscription in the API call Purchases.getCustomerInfo()fetches no entitlements corresponding to that order (check below json)"entitlements": {"active": {},"verification": "NOT_REQUESTED","all": {}}Can anyone help me out in this?
I am trying to test some Android entitlement stuff and Sandbox seems broken.If I use an Android simulator:isActive is false on the entitlement I purchased in the sandbox environment no matter what I do. I can re-call getCustomerInfo or any other method and it will always be false. isSandbox is true, dashboard says sub is active. Confirmed anonymous IDs match.If I use a device:CustomerInfo’s entitlement is null when trying to get it with the entitlement ID.I verified that it is supposed to be active in the RevenueCat dashboard, and it is renewing once or twice. But isActive never becomes true, or on a real device it will always return null for all the entitlements.Yes it is the most up-to-date version.The app has been out for an extremely long time, so it’s not something like “sometimes it takes awhile when releasing an app!” All configuration is correct because everything worked fine before and nothing has changed.This was not happening at some point and nothing has changed on my end.T
I am currently trying to implement family sharing by using tabs on the dynamic paywalls but what I noticed is that the selected package does not change based on which tab the user is on. It remains either the default package on paywall load or until they change it. Is there a way to have a default package for each tab? I really could use someone’s help.
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!
We are using a hybrid approach for our RevenueCat integration: iOS: We use the react-native-purchases SDK for native In-App Purchases. Mobile Web: We provide an option for users to purchase via Stripe Checkout Links directly in a mobile browser (bypassing the native SDK for these specific transactions). The IssueWe are consistently seeing Error 7746 ("This fetch token is currently being ingested") on the initial delivery of Stripe webhooks for these web purchases.Since we are not using the RevenueCat Web SDK to initiate these transactions, we are confused as to why a "fetch token" would already be under ingestion when the webhook arrives.We're seeing subscriptions sync, but the initial 7746 errors force Stripe to rely on retries, causing a delay in granting entitlements. We're not super concerned with this error, but mainly want to confirm that it is expected.Integration Details Webhook URL: https://api.revenuecat.com/v1/incoming-webhooks/stripe/app1280305636 Configuration: "Track
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!
We'd like an addition to the close button delay feature that gives a visual countdown as follows:1. Counts down for a configurable duration in seconds (not to a target date, like the current countdown component)2. Displays as a numeric second counter inside a circular progress indicator that animates as it depletesUse caseWe use the close button delay to ensure users see our paywall content for a minimum duration before dismissing. However, we want users to see a visual indicator of when the close button will appear, rather than having it appear without warning. The circular progress bar with countdown number gives users a clear signal that the paywall will become dismissible shortly, which we believe reduces frustration and improves the user experience compared to a button that simply appears after an invisible delay.Desired behaviorConfigurable countdown duration in seconds (e.g., 5 seconds) Visual: numeric countdown ("5", "4", "3"...) centered inside a circular progress indicator th
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
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.