Get help with anything related to RevenueCat.
Recently active
How do I know when the free trial period is over and the subscription has started? Can you help me if I need to make changes to the code after the trial period?
I’m working on an IOS application with the following in-app purchase options:$0.99 - Receive 1 credit per month (Auto-Renewing) $1.99 - Receive 3 credits per month (Auto-Renewing) $2.99 - Receive 5 credits per month (Auto-Renewing) $3.99 - Receive 10 credits per month (Auto-Renewing) $4.99 - Receive 1 credit (Consumable)Users may only subscribe to one auto-renewing option at a time, but they can purchase the single credit consumable without restriction.My question is how should I organize these products as offerings/entitlements/packages/etc.? My current method is:All four auto-renewing products above are associated with a single entitlement Each auto-renewing product has a 1:1 “parent offering” The consumable product has no associated entitlement/offeringThe tutorials I followed all suggest using offering and entitlements, and so I did. However I feel it’s all clunkier than it has to be. For example, with the Purchases SDK, fetching the offerings and then extracting the packages (prod
I’m using the Flutter SDK and the introductoryPrice field returns null even if the free trial is set on the Google Developer Console. This also happens in production. I looked up my crash reports and found out that there aren’t many users affected by this bug. I haven’t tested on several devices, but I guess it only happens on several Android devices or the OS versions. At least I confirmed that it doesn’t work on my device. Anyone else has experienced the same issue?
I’m trying to push my app out for Beta testing but when I upload a build to TestFlight and run it the call to Purchases.getPurchaserInfo() hangs and never returns. It works on the same device when just running outside of TestFlight. I can run through the whole IAP flow when running on this device. But as soon as I push to TestFlight and run it through there it just hangs waiting to get purchaser info. I think these are the logs needed:default 12:08:37.873277-0500 Runner [Purchases] - DEBUG: There are no requests currently running, starting request GET /subscribers/$RCAnonymousID0X0P+0f621ae3fbd374db9b96d0b6d31ea5d20default 12:08:37.873327-0500 Runner [Purchases] - DEBUG: API request started: GET /v1/subscribers/$RCAnonymousID:f621ae3fbd374db9b96d0b6d31ea5d20default 12:08:37.883570-0500 Runner [Purchases] - DEBUG: There's a request currently running and 0 requests left in the queue, queueing GET /subscribers/$RCAnonymousID0X0P+0f621ae3fbd374db9b96d0b6d31ea
Is there a way to know the monthly start date of the user's subscription? I can use the latest purchase date for a one-month subscription product, but there is no way to know a three-month or one-year subscription product. Because the latest purchase date will continue to change.
I have a subscription tier in my iOS app. I understand how to access `purchaserInfo` to check if the current user has the entitlement associated with this tier. However, I would like to display a badge on all user icons for other subscribers in the app - a little like the ‘verified’ badges on a Twitter account image.Clearly I need to store something server-side on my own user objects to track this, but I’m not sure what approach to take. Perhaps each user’s status should be saved to the server by my app as their entitlements change, and other instances use this saved user flag? But entitlements can change when the app isn’t being used, such as cancelled or expired subscriptions. My backend will have no knowledge of that change, so that use will continue to be displayed as a subscriber until and unless the launch the app again.Any suggestions on a good approach for this?
I am using RevenueCat to manage my 3 streams of subscriptions: Android, iOS, and Web. For Web purchases, we are using the promotional entitlements API to register the relevant subscription purchases. However, we are not sure how to manage grace periods for these.Is there a recommended way of doing it using RevenueCat? Or should the logic to manage a grace period be done on our side?A potential solution we have discussed is to update a user’s subscription information when a billing issue is detected on a payment method on the Web platform. This would allow us to keep a consistent format in managing mobile and web purchases. However, there doesn't currently seem to be a way to do that.
In my application i want to achieve the following flowActual flow:User install the app → Purchase the subscription → Create account on our app → Get access to appIssue:User install the app → Purchase the subscription → Uninstall the appNow when a user re install the app we are calling restore function of Revenue Cat to restore purchases just to verify if the device has any active purchases If any purchase found → navigate to sign up screen and if no purchase is found → navigate to purchase screen againIn our app launch we are calling Restore function which restore purchases to anonymous user which is creating a edge case, that every time the app is installed it restores the purchases and any user who sign up will be bind to that purchase with provided app user id, means its possible to create multiple accounts on same device/same purchase.For-example: App launches, restore happens and if there is no logged in user, some another user will create an account on same active subscription be
Hello! I am planning on increasing the price of the subscription to access my app. I want to keep all current users on the existing price, and only increase price on new users. I am planning on creating a new subscription group (iOS) and the google play equivalent so that new users cannot go into settings and switch to the cheaper subscription plan that my legacy users will be on. My question is: can my new subscription group be connected to my existing RevenueCat Entitlement? Or will I have to create a new RC Entitlement for each subscription group? TIA!
Hey,We’ve come across a weird Family Sharing transaction, and since similar cases are not described in the RC documentation, we decided to ask it here. So, we have a user who activated our premium features via Family Sharing, and we can see it through RC (the transaction has the flag "is_family_share": true). The same user has another transaction with the same transaction_id ("is_family_share": true), but it’s a refund. How is that possible if the user who purchased the app initially doesn’t have any refund transactions?Is this how disabling Family Sharing on the user’s end reflected? The problem is that Premium stopped working for the user who activated it via Family Sharing, and they claim that they didn’t changed anything on their end.
My app can not fetch offerings on Android 7.1, on higher versions works fine. Also, works fine on iOS.Sorry, I can’t write here detailed information about error.
I was told to create a unique identifier for each course. But I have thousands of courses and creating a non-consumable for each unique course(apple id, google id, revenuecat ids, entitlements & offerings) is not optimal. How about I create pre-defined prices like ios: tier1, tier2 These are my consumable products: tier1, tier2, tier3 ...Each course has one of the predefined tier price. After selling the course with tier1 consumable, I’ll add the course id to user’s inventory in my rest service. That way, after the course is sold in one platform, it can be reached by all the platforms because I get my inventory from my rest service.Is this a feasible solution? Will there be any problem in that approach, especially by Apple?
timeline:fc_0499_1m_1m0299: removed in iOS app version 1.5 (released on 01/25/2022), replaced by fc_0099_1w_ioshow could the user (1st using app on 02/13) change from fc_0099_1w_ios to fc_0499_1m_1m0299?especially when there is no reason to change: fc_0499_1m_1m0299 is more expensive.
I have created monthly and yearly subscriptions with the same level on appstore. In the app I first subscribe for monthly subscription and then I change the subscription from monthly to yearly in the app using Revenuecat react native library. After monthly subscription expires it changes to yearly correctly. When yearly is activated I change the plan again to monthly. Instead of changing the subscription back to monthly after yearly subscription ends in an hour it simply expires and the user is left without a subscription plan. Is it a limitation on Sandbox or an error? If I first subscribe to yearly and then change to monthly then after an hour it changes to monthly correctly. Highly appreciate if someone can provide any guidance on this issue.
Do you know what the best way is to onboard a user and give them access to a subscription for free? I am using Firebase as a back end, fyi. I need a way to onboard clients and provide them access to subscription features without charging them.Thanks in advance for your help.
99% of my subscriptions are working fine, but I have a handful of users that are ‘renewing’ every month for a price of 0. Their initial conversion was also 0, as is every monthly renewal cost ongoing. Any idea what’s going on? Am I being cheated or is something just being mis-reported?I’ve never changed prices, run any offers or introductory pricing, just a 7 day free trial, which as mentioned above is pretty much working as expected apart from these few anomalies.Thanks
Hi there. I have a product which unlocks content for 1 day to specific features inside my App. (We control this time on our server so no problem here).The problem that we're having is that when we try to purchase this item more than once. Google shows a Modal: "Error: You already own this item"I guess that this is happening because products are non-consumable by default.The only thing that I need is to make this product consumable to let the user buy the item as many times as he wants.How can I do this using RevenueCat?Thank you in advance!
Hello support team, I am using sandbox to test purchase in revenue cat in flutter android. Usually test purchase last for 30 mins for annually subscription. So when a purchase info expire, it automatically renew subscription for the user. Why this happen. I have no idea. Does anyone has?
Hello, I am facing a weird problem. I purchase a subscription by flutter app. Then I see the purchase info in recent transaction in dashboard in revenue cat. That's fine. But if I log out and login in app, I see another renew transaction in chart in dashboard. Why a new renew purchase create automatically. I don't understand . Please help me.
I filed this issue in the github flutter repo, but was informed that no human will look at it because “the template was changed”.The template is entirely irrelevant to the content of the ticket, because the issue is related to the way the project itself is maintained.Please do not ignore issues just because the flutter doctor output is not attached, there are plenty of cases where this is just a waste of everybody’s time.
I was looking at some transaction detail for our account. We began an App Store price change from $0.99 to $2.99 on Jan-9-2022, we preserved pricing for existing subscribers.How is the following detail data possible? The purchased_at date is Aug-3-2021. All subsequent data for app_user renewals also are showing $2.99 so RC revenue is overstated for this app_user it seems.{ "app_id": "appa8d87477cb", "app_user_id": "$RCAnonymousID:b8bfb41443d54a4ebb9c35866e17efbb", "country_code": "US", "currency": "USD", "entitlement_ids": null, "environment": "PRODUCTION", "event_timestamp_ms": 1628006356000, "expiration_at_ms": 1630684756000, "is_family_share": false, "is_trial_conversion": true, "offer_code": null, "price": 2.99, "price_in_purchased_currency": 2.99, "product_id": "me_mo.99_1", "purchased_at_ms": 1628006356000, "store": "APP_STORE", "takehome_percentage": 0.85, "transaction_id": "460000931772246"}
On the dashboard, there’s a filter for number of total_renewals and can be exported as CSV, but how can that be read from API or webhook?The webhook only sends the data of the action, which is fine. But maybe the get subscriber end point should also send this info back.For now the workaround seems to be to play around with the dates, which is definitely not the best.
Hi! We just launched our new in-app purchase, so it’s only been live for a few days. A customer just let us know that they successfully started a subscription (they confirmed with an app store recipt and screenshot of the active subscription in the app store), but the service wasn’t activated. Looking at their customer profile, there are no indications of a subscription started in the customers history.We have had other customers activating the subscription the last days, so it looks like it’s working fine.What could possibly have gone wrong here? Troubleshooting tips?
Hello, I have a question regarding expired subscriptions: When a user resubscribes, a RENEWAL event is send.In our system, we want to track subscriptions individually, meaning every new subscription would be reflected in a new subscription object on our side. Currently we try to use the original_transaction_id as some kind of external id of a subscription.As far as I can tell, RevenueCat doesn’t really have a concept of “individual” subscriptions, RevenueCat really only cares about the current subscription status of a user and (I guess) there will always be only one single INITIAL_PURCHASE event, right? Meaning if a user buys a subscription, then cancels and then resubscribes two years later, it would still be a “renewal”.Are there any best practices for handling each subscription individually? Thanks so far!
Hello!We don’t want to force users to subscribe, so we’d like to give a trial to a user using our own mechanism without showing an in-app subscription popup.The flow would be:User signed up and received 7 days trial After 7 days we show a paywallWould that work? Is it allowed by Apple? Thanks,Stan
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.