Learn more about RevenueCat and talk about it with the community.
Recently active
Problem BackgroundI integrated Revenuecat with a Flutter application I was working on since a long time. After following all the documentation steps accurately I ran the app but Revenuecat wasn't fetching any products and gave me a store configuration error. Even after trying through all the possible solutions, faqs, forum issues, github issues, my offering was still empty with no products being fetched.I then created a new product and attached it to the offering. This product was successfully fetched. But others were still missing. I realized the only difference was this new product was set as backwards compatible and when I attached it to other packages in my offering, they all started being fetched. I then marked one of my older products as backward compatible and it got fetched as well. However, since in my first subscription I had two base plans and play console only let me mark one of them backwards compatible the issue was not entirely solved.I double-checked my Revenuecat packa
Hi! We put together a video on the RevenueCat Youtube channel that walks through how to setup auto-renewing subscription products through App Store Connect.This may be helpful if you’re getting started with iOS subscriptions, or having trouble fetching products from Apple due to some configuration issue.Let me know if this is useful and if there’s other content you’d like to see!
Hi, I'm currently working on implementing RevenueCat in my Unity game. I used the Subtester Project as a reference, modified my code, and simplified the options. I'm currently running the Subtester Project with my modified code, but I encountered an error stating, "There is an issue with your configuration." I have shared screenshots of the error message and the modified script. I would appreciate it if someone in the community could guide me through this issue.Screen Shot of my Modified Ui and Error messagebelow is my modified script
I am developing a Google Play application which has multiple subscription tiers and multiple subscription periods:[Tier A - Annual] [Tier A - Monthly][Tier B - Annual] [Tier B - Monthly][Tier C - Annual] [Tier C - Monthly]I would like to apply different proration methods depending on if the user upgrades/downgrades their subscription.What is the most sensible method to determine if a subscription change is an upgrade or downgrade in this scenario?In this guide an upgrade is described as a change where the ‘price per unit of time increases’. I’m confused about how to compare two subscriptions which use different time units (e.g. moving from [Tier A - Annual] to [Tier B - Monthly]) Many thanks
Hi, Do we have a release date for the Billing Issue message sheet on iOS? I haven’t found anything better than “this summer”.https://developer.apple.com/documentation/storekit/message/reason/4123328-billingissue Also, has anybody already tested it in Sandbox? Thanks!
RevenueCat can send webhook notifications to your backend any time an event happens in your app. Events include initial purchases, cancellations, renewals and more. Sandbox purchases also generate webhooks. This post is a deep dive into how to handle webhook events for sandbox purchases.What are sandbox webhook events?Sandbox webhook events are generated from sandbox transactions. Sandbox events have environment=sandbox and they contain data about sandbox transactions, like expiration date, trial period, etc. We send them when you make sandbox purchases so that you can test your backend code to make sure it handles webhook events properly.To learn more about what’s included in a webhook event, see our webhooks guide.Note that some events, like transfers, aren't production or sandbox, and so don't have an environment property.The following user webhook events don't have an environment property: TRANSFER SUBSCRIBER_ALIAS This is because these events are user events, not transaction eve
I would like to test the full flow, without waiting, up to an hour?, for the sandbox purchase to be reset. Is there a way to change how quickly this works? Even manually cancelling the subscription in the App Store sandbox user settings doesn’t change the expiration date.
Hi, I have a feature request which is going to help I think most of the developers who uses RC. I want to see my daily sales whenever I want like, There must be box on the main page which will show, for example: TodayTotal new subs: 122 Total renewed sub: 213 We are able to see new subs in chart of Active Subscriptions Movement, but it is not live. It doesn’t show the updated units at that moment and also it doesn’t show renewed ones. The chart also mentions the data as (incomplete). To sum up, I wonder when we can have a feature like this, or do we already have it?
💫 OverviewIt’s common for developers to offer subscriptions that unlock entitlements for more than one user at a time. This is usually seen in B2B business models where one person (an administrator) can purchase multiple licenses for a product and then distribute those licenses to workers within their company.While the app stores don’t support this behavior out of the box, this article explores how developers can implement such a subscription model with RevenueCat. 📖 Definitions One-to-Many Subscription: A subscription purchased by one user that unlocks entitlements for one or more distinct users. Managing User: The user who purchases and manages a one-to-many subscription. Receiving User: A user who receives an entitlement from a one-to-many subscription. 🔐 PrerequisitesYou have non-anonymous user IDs for all users involved in a one-to-many subscription (i.e., the managing and receiving users). You are using RevenueCat as the source of truth for entitlements in your apps. Y
Hello,I feel like it is hard to have clean data of our experiments with revenueCat. The main reasons being:Almost every new experiment implies an app update which the user may not have done We have a paywall where the user can change his subscription that we do not want to include in the A/B testAs a result we always have “other” products in our experiment results and globally I am not at ease with the data returned.Is there something we are doing wrong ?It would be great to have the concept of “placement” so that we can do an A/B Test only in certain part of the app and also compare the revenues from differents places in the app.Best regards,
I’ve integrated RevenueCat (Capacitor) and enabled the Firebase extension. Test purchases are coming through and the Firebase Extension seems to be working. It saves information in two collections and events in EventArc, though I’m not so familiar with that.I understand that for consumable non-renewable products my own database (FireStore) is the single source of truth.I guess i can figure out how to read that data and do “something” with it, but i was wondering what best practices were. Surely this is a common situation, are there any available solutions / libraries that handle the standard events? In my case initially it would be
If you plan to have an app that is offline, then there is some information on RevenueCat’s end that you should be aware of.A network connection is required to make a purchase and communicate with RevenueCat, but the subscription status is cached on the device as long as needed via CustomerInfo. This way you can still check for a user’s entitlements so they can continue to access your app’s content. When offline, the current state of the subscription will be preserved until it can be re-synced with RevenueCat (e.g. if they're subscribed, they'll remain subscribed).The app user id and CustomerInfo are cached, and CustomerInfo will be returned while offline forever if the user never goes online, unless something happens that invalidates the cache. The offerings do not persist between app launches, so you will need to cache this data and display them yourself when the app is offline. See our caching docs here for more information.If you do not want users to have access to their subscriptio
We’re on a pro plan and because of RevenueCat’s unstable system we’re unable to track some of the events and I reached their support 2 times but still no response for days. We’re going to replace you guys ASAP. No thanks for your bad services
We are testing sync mechanism of REST API (PLAY_STORE, SANDBOX). We found that if a renewal webhook is not sent, and when we GET https://api.revenuecat.com/v1/subscribers/{app_user_id}, the same renewal webhook notificaiton is sent immediately. I can’t find any information about whether delayed webhooks would be sent after calling REST API. Is this coincidence or a normal behavior of RevenueCat?
I am using RevenueCat for my subscriptions, but on Android, the offerings only include the monthly subscription plan and not the annual one. Could you please check to determine whether the issue lies in our setup or with RevenueCat
Hey Revenue Cat users - I’m new to RevenueCat, but I’m creating an app that is all local storage, and currently doesn’t have any authentication. I want users to be able to try the app, but then pay a one-time flat fee to keep using it.Has anyone else built apps with this kind of use case for payment? It’s a flutter app, so it should be cross-platform. I want to have as minimal as possible of work for users.Are there any great docs on the revenue cat website (or elsewhere) detailing this kind of use case?
Include refunds / refund info. Refunds should also appear in transactions Paginate transactions page so we can view more
What features are you the most excited about?What would you like to learn more about?Many updates and changes have been introduced during Google I/O 22 and our team is busy deep diving into these topics and prioritizing them according to your needs. We would love to hear your thoughts and needs on these features. New Subscription Model - is it all clear what that means or would you rather we just take care of it? Play Console – how does your setup look after the changes? does this create an opportunity for your app? Flexible Offers - would you see yourself making a use of this? Prepaid plans - does this solve an issue for you? would you like to learn more about the payment landscape of recurring payments? Play Index - do you see yourself using the index moving forwards? If so, what kinds of communications would you expect from RevenueCat?Excited to hear from you!
So I had this error message on my Android testing of my Flutter app (iOS worked like a champ) and worked through the troubleshooting steps provided by RevenueCat support, (https://community.revenuecat.com/sdks-51/why-are-offerings-or-products-empty-124), (BTW some of these screens need updating please, particularly because this is a popular post), I even got Google Play Store support involved (the portal is soooo convoluted) and after about two weeks of getting one email response per day, at my wits end, I engaged the chat service. A chat support person in Google told me in five minutes that I could only make my app release ‘ACTIVE’ in the Closed Testing if … my Managed Publishing state was ON!I didn’t know what that was, then they explained:them: Kindly go to your app's Publishing Overview section on you Play Consoleme: kthem: Then, click the "Turn off Managed Publishing" button.them: Once you've turned it off, kindly wait for the changes to be reflected on your Play Console.and then,
Got an email from Google Play asking me to disclose more information regarding RevenueCat:Your app is uploading users' Primary Account information to https://api.revenuecat.com without disclosing it in the privacy policy in Play Console. My app currently offers In-app purchases. I’m looking for Privacy Policies examples. Thanks!
HelloWhen I fetch products and offerings using RevenueCat react native js library, it says that price is 1.99 for in-app purchase, but when a customer makes a purchase apple shows that price is $2.49 (user’s country is Ghana). The price on app store is set to Tier 2: $2.49 (developer’s account is from Ghana too), but it looks like it depends on user’s settings on the device. Is there a way to fetch actual price based on user’s country? Or revenue cat always returns price for USA (1.99) and I have to manually detect user’s country and convert it?
Hi everyone, I was wondering what the best way is to set up different pricing in different countries. Example:High Price Tier: e.g. USA: 9.99 USD per monthMedium Price Tier: e.g. Germany: 7.99 USD (converted from EUR) per monthLow Price Tier: e.g. Brazil: 3.99 USD (converted from EUR) per month What is the best way to do this? Also, it would be nice to run separate experiments for each tier.Is the best way to set up different revenuecat offerings and have the app handle the selection of which offering is chosen based on the country? How would it be possible to run revenuecat pricing experiments then?Are there any best practices? Thank you already in advance. Cheers,Ben
Hello, I’ve manage to create an offer in the RC Dashboard and in the Google Play console that is attached to existing product (annual subscription). The offer includes free trial. When I call the getOfferings method and select the specific offer and try to purchase, the offer does not include the free trial I’ve previously attached. Any help here?
Hi there!How can I renew my subscription on the web? I want to be able to renew my expired subscription with just one button. For payments I use stripe checkout client only
RevenueCat’s promotional entitlement feature allows you to grant an entitlement to any of your customers directly from RevenueCat. These are the predefined durations allowed:Duration Description daily 24 hour access three_day 72 hour access weekly 7 day access monthly 1 month (31-day) access two_month 2 month (61-day) access three_month 3 month (92-day) access six_month 6 month (183-day) access yearly 1 year (365-day) access lifetime 200 year access To grant a promotional entitlement with a custom duration (for example, 5 days,) set the start time in the past so that the end time lands when you need. So for example if you want to grant a promotional entitlement for just one hour, grant a daily promotional (which is 24 hours) but set the start time to 23 hours in the past. The end time will then be 1 hour in the future.
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.