Get help with anything related to RevenueCat.
Recently active
In the process of debugging some other issue (separate post), I removed all my Apple products from my app’s configuration in RevCat. However, the app is still loading these products. I expected the app to get a blank result or some exception when callingawait Purchases.getOfferings();(React Native / Expo app)Is my expectation wrong here? If not, is there some known delay between when I remove the products and when the apps stop getting these back?Thank you!
Hello, We have 3 auto-renewable subscription products setup with a 30 day free introductory offer and we just went live with RevenueCat :) So there is a user who subscribed with the trial and upgraded after a few hours. We received the `PRODUCT_CHANGE` webhook with the correct `new_product_id`. However, we did not receive any webhook afterwards. We expected a `RENEWAL` webhook with the new product id as `product_id` as per the documentation here. Our webhook listener simply listens to all events and then poll the RevenueCat api and update the database at our end for the `product_id` which was sent from the webhook. It is important for our server to be up-to-date as the entitlements are handled by our server. Could someone let me know what can be done in a situation like this? I did happen to see this but not very sure if they are related. Thank you!
Question: Can any errors made on Revcat products possibly cause an app to crash upon initializing?Background story: We created new products for Black Friday and implemented them via Firebase Remote Config. After Black Friday was over, when I switched to our usual old lifetime subscription product via remote config, the purchase screen started crashing. Then I discovered that there was a missing entitlement (or an attachment) for that product and clicked on “attach”- it is interesting that how this product hasn’t been crashing before even though we’ve been using it all along for years.Anyways, after “correcting” the product, the issue was fixed, however, starting from that day, we started getting crashes on app initializing (it either crashes or the “initializing” screen stays forever).Note: There hasn’t been any updates on the app around that time. 60% of the crashes came from iOS 15 & iPadOS 15.
When i run app of flutter in debug mode then displaying the products and submitted build on testflight and installed it then not displaying the products.
I tested several devices and tried to subscribe. All of them successfully subscribed using Google Play TEST CARD and it worked get subscription information from RevenueCat (offerings, entitlements, date time, etc.).But on the Customers page, all the customer sandboxes don’t show any value including active subscriptions, even though those users got the correct subscription information in the app. 1 I understand revenue will not increase but why is a subscribed user's entitlements also empty?2Is it because I subscribed using TEST CARDS?
I am working on a app which have tinder like functionality. App functionality1- User will have 2 type of plan, ruby and Gold.2- Each plan will have 3 package like 1 month, 6 months and 1 years.3- based on these plan users will get number of likes and super likes for each day.4- Plan will be auto renewed until user cancel the plan manually.5- App is a cross platform (Flutter) . So If user purchase the plan in iOS he should be able to access the benefits in android version as well. Question- 1- As we are managing the number of likes and super likes for the user on our server. So my question is how can we Check if user purchase, upgrade downgrade or cancel the Subscription. (is there any way revenue cat provide to do this)? 2- If user have purchased the subscription in iOS using apple account (auto renewable subscription). and then he again try to purchase the subscription in android device how this will get managed. Please help me out to understand these points.
For IOS, we can create a subscription group with multiple products. For example, say we have a group with two products: Premium Monthly and Premium Yearly. The subscription group makes sure that the user can only have one at a time. Changing from one to another is a crossgrade.How is this supposed to be done with Android? I couldn’t find anything in the Google play console for subscription groups.Is it a correct assumption that if the user purchased Premium Monthly product, they cannot switch to Premium Yearly product in Android account since there is no such thing as subscription groups? They can only cancel their product?And does this mean that we would have to create a screen in our Android app to handle the situation if the user wanted to change from monthly to yearly? My app is react native. Is the functionality to do this in the react native purchases library or should I be using the RevenueCat’s API?
I’m not sure the best place to send feedback regarding the docs, but I’ve been following along and implementing the various SDK’s and noticed a few things that might need to be fixed. https://docs.revenuecat.com/docs/user-ids#provide-app-user-id-after-configuration@NotNull should be changed to @NonNull https://docs.revenuecat.com/docs/configuring-sdk#initializationv6.4.1 doesn’t seem to take a PurchaseConfiguration.Builder instead:Purchases.configure(this, "mykey"); It’s been a fairly smooth sailing following the docs and getting things implemented otherwise. If there is a better place to post feedback about the docs let me know.
I want to make a simple and reassuring statement about data/privacy in my app’s help screen and I’m wondering if data storage is the same regardless of whether a subscription is purchased or not. Is RevenueCat still collecting and storing data for a user who has not purchased a subscription?Thanks.
I have worked for businesses where all their employees use the same google play account to install apps, how can you setup a subscription so one subscription allows one device rather than pay once and use the same app on 100 devices ?Im sure this question must have been asked before so I’m hoping this can be done.Many thanks
Hi, if I understand the docs wel, we must do as soon as possible when the app starts do a Purchases.setup()And then when we have our own UID (after logging into our backend) we do a Purchases.logIn(our_ID)But when a user is logging out en back in again, another $RCAnonymousID is created and stored on the RC backend. That can add up and genereate a lot of unused $RCAnonymousID’s...or do I something wrong? logging;start the app for the first time.====> APP didMount(): after Purchases.setup(), getAppUserID: $RCAnonymousID:5cf2ccddfeb64208aca7e1c8a58ab9abhere we do in the app a login into our own backend and recieve our UID for this customer====> RC LOGIN: before Purchases.logIn(id), getAppUserID: $RCAnonymousID:5cf2ccddfeb64208aca7e1c8a58ab9ab====> RC LOGIN: after Purchases.logIn(id), getAppUserID: 615de0706b15db0ea9eb1555logged in customer goes to the paywall and purchase====> RC PAYWALL: before Purchases.getOfferings(), getAppUserID: 615de0706b15db0ea9eb1555====> RC P
I have been tasked with the above conversion for an existing iOS and Android paid app. Everything is set up in the Rev Cat, App Store and Google Play Store for one annual subscription with 1 week free. My first obstacle is my iOS app is in Objective C and I’m a stranger to Swift (which is used in the excellent walkthrough videos I have found as well as the demo app). I was wondering if any of you had had this issue and, if so, how you approached the problem?Did you bridge Swift view controllers to start up your app or work on translating into Obj C?Thanks in advance.
Do I create different products for Google Play Store and App Store? (for example, weezma_ANDROID and weezma_IOS). Or just one product for both platforms? (weezma).
Hi team. Today I was trying to check my dashboard and all of the API calls were failing. I was also unable to load any info in the app. I was able to trace the problem to my pi hole blocking all of the requests. I’ve had the pi hole installed for a while, so this is a new development. Either they’ve added Revenue Cat to their block list, or the APIs changed to something that gets blocked by them. I’ve already added an exception, so I’m set, but I wanted to let the team know in case you wanted to investigate.
All of the products I created before today are found with this request:await Purchases.getProducts(["white"], type: PurchaseType.inapp);But the requests for the products I added today, say “blue”, are returning empty.I set them up the same way in the Google Play Console: I use the same identifiers in revenuecat.Is there sometimes a delay in availability for new products? There was no delay in the past when I added products.
Hey,We are currently receiving an error fetching Offerings with the RevenueCat SDK on iOS (SDK Version - 3.13.0).From searching and reading the ‘Why are offerings or products empty?’ support document, we have confirmed we are seemingly matching all of the requirements:We have agreed to the latest App Store Paid agreement in App Store Connect. We have created a In-App Purchase Subscription in App Store Connect that is a 1-month auto-renewing subscription. This In-App Purchase Subscription status is marked as ‘Ready to Submit’ in App Store Connect. We have a matching Product created within RevenueCat, and have verified it’s identifier matches the Product ID in App Store Connect. Within RevenueCat, the Product is associated with the correct Entitlement, and the only Offering we have contains 1 Package with this Product. We are not using a StoreKit Configuration file. We have enabled the In-App Purchase capability in the Xcode project settings. We are testing on device.After requesting the
Transfer event is triggered on the webhook on restoring purchase. But sometimes, in the “transferred_to” field, only the revenue cat initiated anonymous id is sent and the user id initiated by my app is missing. I have checked that the user id is being initiated before restore purchases is called to revenue cat sdk. Without the user id that the app has assigned, there is no way to transfer the purchase on my backend and the webhook fails to give the desired result. Example Event id - “997383F7-913F-4C2F-9987-91E78A514C05” in sandbox environment. Also, is there a way to hit call revenue cat API from the app to get the Transfer event details, as the webhook may be delayed and the backend needs to change the access level immediately.
Hello,We have a case where Stripe had a billing error, but after a few retries it managed to charge, however the RC customer panel shows contradictory information: the history reports as cancelled due to the billing error but the entitlements say it will renew.Stripe reports that the subscription will renew. So what is the truth here? 😅
For simplicity, suppose I'm running a subscription smoothie business only on the App Store. I'd like to set up IAP for weekly/monthly/yearly subscriptions for smoothies. In addition to the smoothies, users can mix-and-match subscriptions for premium upgrades, including fancy straws and glass mugs. With their smoothies some users want one, or the other, or both.Additionally, users can purchase consumable tokens for pretzels. Users would only subscribe to the premium upgrades of straws and mugs if they got a base subscription for smoothies. They also may start with a smoothies and upgrade later. It makes little sense for a subscription for a straw or a mug to renew differently from their smoothie subscription. Cancelling their smoothie subscription should cancel any straw & mug subscriptions.How do I structure my packages/entitlements/offerings/products to account for these while keeping it sane? The only way I see it, but seems too complex, is a single subscription group with prod
Hi there, My App is beeing rejected, because the tests by apple show that on an IPad Emulator the Offerings can’t be loaded… what can i do? I got through App Store Testing before without any problems and the same behaviour. has something changed? Thanks for any help? Cheers
Hi there, I have a question regarding the payment confirmation. I followed the QuickStart for flutter and I have implemented the IAP. I have 3 lifetime products to purchase coins and I have to verify with RevenueCat if my purchase was legit. What would be the best method? I am following the docs and implement the following logic:if (rcPurchaseSuccess) { RestAPI.addCoins();} I’m afraid if a malicious actor calls RestAPI.addCoins(); without any purchases or if something goes wrong with the app connection to my server. It will be problematic scenario. How do I solve that? Is webhooks a good method for confirmation? Or is there a better way? I’m a bit confused since the docs are not clear. Thanks
Dear all,I have come across an issue that I can’t seem to figure out. I have successfully implemented RevenueCat and subscriptions in my iOS app, including checking the eligibility for introductory offers. All works as expected.However, one of my subscriptions is an annual subscription for which I would like to add an introductory payUpFront offer in which the initial price is higher than the recurring price. This to retain and reward users for their ongoing subscription. For example: A one off payment for the first year of $29.99, then recurring at $19.99 per year until cancelled. I have set this up in App Store Connect without issues and the subscription is approved by Apple:Already during my sandbox testing (on device) I noticed that when I tried to purchase this subscription, the native purchase sheet never shows the upfront costs of $29.99 and only shows the recurring $19.99 per year.The issue is not related to its eligibility since I have another subscription alongside it in the
Repro Steps:Create a RevenueCat account with a sandbox and non-sandbox environment Create an entitlement in each environment with the identifier of “Membership” in both Navigate to the interactive docs (or you can do this in your own code if you already have it set up) (https://docs.revenuecat.com/reference#basic) Enter your api key for your sandbox environment and pass any user id to create a subscriber https://docs.revenuecat.com/reference#subscribers Try to grant them a promotional grant for that user id, the entitlement identifier of “Membership” and duration of “yearly” https://docs.revenuecat.com/reference#grant-a-promotional-entitlement Returned subscription entitlement shows is_sandbox: false Returned subscription info (see is_sandbox: false). {"request_date":"2021-12-02T21:52:16Z","request_date_ms":1638481936210,"subscriber":{"entitlements":{"Membership":{"expires_date":"2022-12-02T21:52:15Z","grace_period_expires_date":null,"product_identifier":"rc_promo_Membership_yearly","
I have done various tests and I would have to ask some questions:1. Is it normal that after subscribing with a Device with an account, if I install the app on another Device that has the same account, I immediately enable the subscription without the need to restore? This way I never use restore.I have not done anything in particular so I think the default value is set which is "Transfer purchases".There is a way to better understand how it works and how you can set the various behaviors because from the doc I have not been able to understand this topic well.In my app there are two simple subscriptions (monthly and yearly) and I have no special needs (there is no login or anything else in the app) so I opted to have RevenueCat create the user's ID automatically.Thanks for your attention
Hello, I’m working on an app that will have some subscription elements, but will also allow users to sell goods and services to other users. Would revenue cat be able to do this, or would I need another system for the person to person transactions? Thanks,Ian
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.