Discussion and help from anything related to RevenueCat.
Recently active
Hi folks,We launched our first mobile app with subscriptions recently, and I’ve been keeping an eye the RevenueCat summary and reports to see how we’re doing. But I’m a little confused about how MRR is calculated, and which number to use for daily reporting.First, I’ve noticed that the MRR number in “Overview” is lower than the current MRR in the MRR chart. In our case, MRR in Overview is currently 6.5% lower than the latest MRR shown in Charts. Is there a reason these numbers don’t agree?Second, your older docs talk about MRR being calculated over a 28-day period, but the current docs no longer say this, and ARR is described as being MRR * 12. Our numbers in Charts confirm this: MRR = ARR * 12. So is MRR now calculated over a period of 365/12=30.42 days? Or is MRR fixed to a whole number of days (maybe 30?) and ARR is just a bit imprecise?Thanks for clarifying!-Abe
I have subscriptions in my app that include 7-day trials. RevenueCat handles introductory offers automatically, which is great. However, I want to provide additional custom promotional offers using Apple's "Promo Codes". Examples of these offers could be:3 months free 6 months freeMy question is: Does RevenueCat automatically manage the redemption and application of these custom promo codes? Or, do I need to handle this logic separately within my app?Any guidance or experience with this would be incredibly helpful!
I’m trying to synchronize a users subscriptions to my backend. I have a user with a sandbox subscriptions, I’m i’m trying to get information on their subscription status via:curl --request GET \ --url https://api.revenuecat.com/v2/projects/xxxxxxxx/customers/xxxx04c3-9caa-456f-9afc-f84cea6f2bf6/subscriptions \ --header 'Authorization: Bearer sk_xxxxxxxxxxxxxxxxxx'I get a 200 OK, but the items array is empty.{ "items": [], "next_page": null, "object": "list", "url": "https://api.revenuecat.com/v2/projects/xxxxxxx/customers/xxxxxxx-9caa-456f-9afc-f84cea6f2bf6/subscriptions"}Both the RC dashboard and SDK show me that the user has an active entitlement.The endpoint has an optional query parameter “environment” which can be set to “sandbox” (doesn’t make a difference) but at least it tells me it should work for sandbox? What am I missing here? Is there a secret query parameter similar to V1 that I need to set to get the sandbox purchases included here as well?
Hello! Here’s the api url: https://api.revenuecat.com/v2/projects/${PROJECT_ID}/customers/${CUSTOMER_ID}/subscriptionsCorrectly Added header: headers: {'Authorization': `Bearer ${AUTHORIZATION_TOKEN}`,'Content-Type': 'application/json'}Here’s the response:{ "items": [], "next_page": null, "object": "list", "url": "https://api.revenuecat.com/v2/projects/XXXXX/customers/$RCAnonymousID:0ee378058790XXXXXXXXXXXX/subscriptions"}Customer has Yearly ACTIVE Subscription in Production. Could you please help how to retrieve Subscription items?Thanks!
Here I am instantiating the Purchases SDK:So according the docs, if I do not provide the app user ID, the Revenuecat should generate one: But when I try to print the app user id, it is returning null? Also I am confused with Purchases.logIn() and Purchases.logOut() methods as I can not figure out their purpose. Can someone also explain the following scenarios: 1)Let’s say user purchases subscription successfully and exits the app(not log outs, just closes the app) and when the user opens the app later how do we know that user is premium user?2)Let’s say user purchases subscription successfully and accidentally deletes the app. When the user downloads the app again how we gonna restore his purchase? I know there is Purchases.restorePurchase() but how does it know if the user has purchases the subscription before? Can you please explain it? P.S. Do not mention the docs please explain it in a simple way if possible.
I’m trying to migrate to the RevenueCat paywall.I’m having an issue where I’m only seeing the “call to action” text on the button and not the “Call to action for an introductory offer”.Here’s my pay wall settings: And here’s what I’m seeing in the app when I test:If I tap the action button, I can see that it presents me with a free trial. Am I doing something wrong?
Hello,long time ago, we were using `Purchases.shared.presentCodeRedemptionSheet()` to redeem offer codes but this was really unrealiable as the docs also state - https://www.revenuecat.com/docs/subscription-guidance/subscription-offers/ios-subscription-offersI am curious if this maybe changed in recent iOS versions? We support iOS 16+ and there is also this new method in StoreKit - https://developer.apple.com/documentation/storekit/appstore/3954431-presentoffercoderedeemsheet.Does anyone use it? Will it work with RC without any other “plumbing”? Or maybe the presentCodeRedemptionSheet already uses it under the hood?We currently redirect to App Store but were wondering whether it is now possible to offer better experience to the users. Thanks!
Hi everyone, I am new here. We’re using react-native-purchases for in-app purchases. Somehow, it was working fine till today on iOS and Android but things started to break on iOS ever since I have decided to delete subscription groups and items from App Store Connect. Basically, I deleted the previous subscription items (also the groups), then I created another group and put all new subscription item into that group. I didn’t touch the in-app purchases tho.When I started testing IAPs (subscriptions and consumables) using sandbox account and with my TestFlight account as well, I have been getting the following error:There was a problem with the App Store. Problem communicating with the Store when trying to validate the receipt.However, everything is working fine on Android. I have double checked my app store connect configuration and RC. Here’s my setup for RC (iOS):Created completely new project in RC ✅ Regenerated App Store Connect App-Specific Shared Secret ✅ Regenerated App Store C
Purchase.addCustomerInfoUpdateListener doesn’t seem to work when subscription is cancelled or expired. Expectation is this callback should be called in this case. However it gets invoked when new package is purchased.purchases_flutter: ^6.24.0
We are selling Tour descriptions in our App, that are like ebook chapters plus files for the actual track. Currently, we include all ebooks in the app bundle. Now we want to move it to be downloadable content that is downloaded after the purchase and on a restore purchases event. Are there recommendations or best practices on how to handle the downloads? Can we place download URLs into some meta data that are only visible after the purchase?
Hi, I am using RevenueCat for using subscriptions in my app. I have configured everything according to the docs. On Apple everything is working fine but on Android, I am facing this issue when I try to get offerings, I get this error There is an issue with your configuration. Check the underlying error for more details.I know there could be some config issue but I have taken the following steps twice:I have followed the guide in this link (https://www.revenuecat.com/docs/creating-play-service-credentials) correctly. I have a checklist of all the things given in this link (https://www.revenuecat.com/docs/google-play-checklists) After going through the community form I found this post ( ) and performed all the steps in it. I am using expo managed project and I have followed this blog to implement it (https://www.revenuecat.com/blog/engineering/expo-in-app-purchase-tutorial/) I have checked all the identifiers in the RevenueCat products page and they are correct as I imported them. I hav
Hi, I’m using Paywalls feature in my SwiftUI App. I want to disable Paywall interactions while purchase is in progress, is there onPurchaseStart callback or something? here is my current implementation: .sheet(isPresented: $userViewModel.displayPayWall) { PaywallView(displayCloseButton: true) .onPurchaseCompleted({ userInfo in print("completed") userViewModel.isPurchasing = false userViewModel.isSubscriptionActive = userInfo.entitlements["pro"]?.isActive ?? false }) .interactiveDismissDisabled(userViewModel.isPurchasing) }
Hello,i integrated revenuecat android sdk in my app recently. Sdk version is 7.7.2.I wanted to downgrade subscription with DEFERRED mode but I couldn’t find it. Therefore, I read document and change log. They said DEFERRED mode has been temporarily removed. However, DEFERRED mode is still in Android dev doc. Is something wrong with DEFERRED mode that it has been removed. Thank you.
I have a React Native application using RevenueCat, so there are two apps - 1 for Android and 1 for iOS, and therefore two public API keys. I’m wanting to use the endpoint for creating a new subscriber/customer on my backend server (https://api.revenuecat.com/v1/subscribers/{app_user_id}) rather than doing it on the front end, but the issue I’m having is I don’t know which platform the user is/will be using and so not sure which API key to use with the endpoint. Does this matter or am I able to use whichever endpoint and the subscription be acceptable on either platform? (I’m specifically granting the customer an entitlement after creating them, if that makes any difference.) Thanks so much in advance!
Let’s suppose there is a subscription group with monthly and yearly product. Now a user purchases my monthly plan then should I allow users to view the paywall? Currently my approach is to let users know they already own the “Pro” package which doesn’t let them redirect to a paywall and because of that they can’t also see restore purchases button. So should i still separately show the restore puchases button? or keep following my current approach?
Hello I need to modify this file https://github.com/RevenueCat/purchases-android/blob/143cf2a3629c856e0f3848ff6c164d683df8bbc5/ui/revenuecatui/src/main/kotlin/com/revenuecat/purchases/ui/revenuecatui/composables/Footer.ktI have been trying to rebuild the library but has been a real nightmare, very hard to understand the +5 libraries you have like, ui, hybrid, common, google, amazon, and a lot of different packages.Could you help me to build the library I need to modify the structure of the footer I don’t want to create a custom scratch project, just fork or locally modify the library as I’m using the remote paywall feature
Hello how to add a disclaimer message to the paywall generated remotely?
i want to replace native android apps by flutter android... but i have some confution i have some google pay subscription in my native android apps.. in flutter android apps i have integrate google pay subscription using revenueCat.. So if i replace previous android apps by flutter app, revenueCat can manage previous native subscription
Hello community, we currently have an offering for pro subscription for $9.99. Now we want to create a special offering for the easter holidays for $7.99 (lifetime), that should not effect the users that bought for the normal price.On Apple, I created a new subscription group with the new subscription for $7.99 in it, so users that bought for $9.99 can not switch to the $7.99 subscription in the icloud settings.On google I’m not sure whats the corrent way? Should I create a whole new subscription with a new base plan, or is a new base plan in the existing subscription enough? I want to prevent that users that bought for $9.99 can switch to the $7.99 offering. Kind regards,Marius
I am using Paywalls and when I submit it on iOS, they report this error. And they said they will reject the submission if I cannot fix this bug. Review device details:Device type: iPad Air (5th generation) OS version: iOS 17.4
I replaced my paywall with RevenueCat’s paywall which works great , however I go a rejection from play store due to Subscriptions policy Violation “Your offer does not clearly and accurately describe the terms of your trial offer or introductory pricing, including when a free trial will convert to a paid subscription, how much the paid subscription will cost, and that a user can cancel if they do not want to convert to a paid subscription.”I received the same before when I used to use my own paywall and fixed by changing the package display label to be of the format “You will be charged {price} for {duration} subscription.The subscription will be automatically renewed unless you cancel it`: product.priceString} It is not clear for me how can I customise the package’s label when using RevenueCat’s paywall . Thank you
My app has been public for some time on the app store, yet has been rejected from Google Play twice. Customer support has stated that “Your app contains a subscription but it does not have terms of cancellation.” Our paywall provides a link to our terms of use and includes steps to cancelling subscriptions. They also stated, “ Kindly note that users should not have to perform any additional action to review the information,” implying that a link to our terms of use is insufficient. Is there any way to add this information on our paywall? I have not seen any that include this information but they seem very adamant on this.
Hi everyone, I'm integrating RevenueCat into my FlutterFlow app and have enabled debug logging. I'm seeking your expertise on a few points: Accessing Logs: After enabling debug logging in FlutterFlow, where and how do you recommend accessing and interpreting these logs? Common Issues: Any common pitfalls during this integration process I should watch out for? Appreciate any insights or resources you can share. Thanks!
Hello, I am getting following error when syncing purchases or getting subscriber info:Key Value attribute_errors ( { "key_name" = "$idfv"; message = "IDFV cannot be modified."; }, { "key_name" = "$appsflyerId"; message = "AppsFlyer ID cannot be modified."; } ) finishable 1 nserror-code 16 nserror-domain RCPurchasesErrorDomain NSLocalizedDescription There was an unknown backend error. NSUnderlyingError Error Domain=RCBackendErrorDomain Code=0 "" UserInfo={NSLocalizedDescription=} rc_successfullySynced 1 readable_error_code UNKNOWN_BACKEND_ERROR The documentation says I should report the error, so here I am :)Please advise Thanks
Hello, I'm using Flutter and have connected everything except for StoreKit, but it's not showing up in the production list. Does anyone know why? What could be the reason?
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.