Discussion and help from anything related to RevenueCat.
Recently active
After an apple subscription has expired, the iOS user can go to subscriptions and resubscribe there in the OS without going into the application directly. This usually takes a few seconds to complete, since immediately after resubscribe when going into the application the customerInfo() still does not show any active entitlement until after about ~30s.During those 30s the application will show a subscribe screen. What happens if the user tries to make another purchase in the app during those 30s (either same product or a different one)? Will they get double charged and how would the developer know?I am not sure if this is the same situation on Android yet.
I have been following the instructions here https://docs.revenuecat.com/docs/creating-play-service-credentials and downloaded the the .json file in step 2. I am attempting to “Enter the Credentials JSON in RevenueCat” in step 4, though I’m concerned I’m doing it wrong. The UI seems to expect a single line of text, and the .json that Google Cloud generates is quite large. If this is the proper way to use Revenue Cat, this is janky as all hell. Anyway, I have taken the .json contents into a plain text editor, joined all lines, and removed all spaces (as per recommendations in other community posts), but when I attempt to upload the .json, I see this error message: (Image reads: “The provided Google Service Account credentials JSON is invalid.”) This seems to be an immediate failure (many community posts seem to involve long wait times for credentials to become active or something). There is no help for figuring out if I’m adding the json contents incorrectly, or if so, what’s wrong f
Hello, I am getting the following crash regarding purchases I have upgraded to Google BillingClient 6.0.1 and 'com.revenuecat.purchases:purchases:7.0.0' Any advice
I would like to redirect the user in the App upon a successful purchase.```const purchaseResult = await Purchases.purchaseStoreProduct({product: productToBuy});```How/where would I call this redirect?
I use expo 49.0.18 and 7.3.0 react-native-purchases.I building my project with eas.I got an error when uploading my aab to the PlayStore, about the Play Billing version 4.0.0 that is not supported anymore. I don’t really understand how can I upgrade this dependency
How can I get raw data about my receipts?
Hello, I followed guide for configuring RevenueCat in Google Play Console but I can't send the test notification. I have this error in Play Console: "Make sure you've entered the topic name in the correct format, that you've configured Google Cloud correctly, and that you have the required permissions".I've waited more than 48 hours but nothing changed; when I click on "Submit test notification" in Play Console, the POST returns: "The caller does not have permission" and HTTP status 403.I've seen and double checked the really useful checklist but didn't found the problem, could you please help me?Thanks
Should I use the main app’s bundle identifier, or should I create a new app in revenue cat in the same project with the watchkitapp identifier?
I see the following error log in Logcat, checked the links provided in the log, and checked and tried almost all of the related links posted by RevenueCat and community members.Tested interal and closed testing versions on the real devices.But no luck, Please help. (I am using React Native) Error fetching offerings - PurchasesError(code=ConfigurationError, underlyingErrorMessage=There’s a problem with your configuration. None of the products registered in the RevenueCat dashboard could be fetched from the Play Store.More information: https://rev.cat/why-are-offerings-empty, message=’There is an issue with your configuration. Check the underlying error for more details.’)
Hey,How to filter all users on RC with status SUBSCRIPTION_PAUSED ?Thanks
I have a configured offer on Google Play with a 33 percent discount, and indeed, I receive the discounted value in the introPhase, but the number 33 does not come through anywhere. I had to calculate it, but I wouldn't want to do that. Is there any way to obtain the percentage of the discount being applied?
Hello,I had to update the SDK to v4.0.0 after Google Play updated their library and now I get the following error from Cordova:> Task :app:checkDebugAarMetadata FAILED Any suggestions how to solve this?
apple, I can receive notification of renewal, but there is no notification of unsubscription
Not directly related to RevenueCat, but is there a way to make the monthly introductory offer expire in less than 7 days in the StoreKitConfiguration? I have subscription renewal rate set to “Any Renewal Every 30 Seconds” but 30 seconds go by and nothing seems to update. I did, at one point, change monthly to 30 seconds, and the subscription canceled, but it seems that the introductory offer was still in effect. Any way to get around this?
We have a premium product which we already offer a free trial period on, which auto-subscribes for a year at the end of the trial period.We are hoping to set up an “open day” for the app where our paywall is dropped for a day (or a small number of days). The logic is that all users will get the full experience of our premium app and not have the barrier of entering their card details. Does anyone have experience of implementing this (or something similar)?
Hi there!Is there a way to change the app icon in the RevenueCat dashboard? One of the products that I am a collaborator does show an app icon, but the other project does not (even though it is published to both iOS and Android stores).Any help would be greatly appreciated! Thanks!
Hello! Unfortunately I tested my lifetime IAP with my sandbox user and now I can’t get rid of it.When I get the customerInfo, it always becomes active, so I can’t test my app without active purchase.I tried to delete my revenueCat customer from the sandbox, but nothing happened, and the customer is still there. Is there a solution to disable/delete lifetime in-app-purchase?thanks,Peter
Hi all,I have completed, I believe, the integration of Flutter development with RevenueCat. My app has it’s own user system. I have the following questions:When the app user X make subscription, the payment is make by AppleID? If the payment is make by AppleID, when the app user Y login and try to make the subscription using the same AppleID, what will happen? Will all the app users login to the device with a same AppleID get the subscription? If I want all app users who login to the device with a same AppleID to get the same subscription, what should I do? Thank you
Assume I have montlhly and annual subscriptions that unlock some features. I want to charge some users more for the same subscription based on some user data. What would be a good setup for this to work with both app stores? Basically one user could pay more for the exact same features as another user.
None of the graphs show me this data. I want to see what percentage of our users who begin trials convert to paying users when their trials expire. Where can I find this information?
I want to add footnote text to PaywallView in Swiftui to comply with App Store Guidelines like shown in this blog:- https://www.revenuecat.com/blog/engineering/schedule-2-section-3-8-b. What is the recommended way to do it?
Sorry if this has been answered elsewhere but we couldn’t find any information - hopefully someone can point us in the right direction.We have 2 subscriptions set up in our Google Play Console, each with their own set of offers, and different pricing. Let’s call them SubscriptionA and SubscriptionB - the latter being a “higher tier” subscription (which gives access to more app features etc...).Our users can purchase either of these subscriptions directly, however if they purchase SubscriptionA, first, we allow them to upgrade to SubscriptionB at any point. We have so far done it using the purchasePackage method, like so:Purchases.purchasePackage(package, undefined, { oldProductIdentifier, prorationMode: PRORATION_MODE.IMMEDIATE_AND_CHARGE_PRORATED_PRICE,});This would result in the user being charged the relevant pro-rated price, and the existing SubscriptionA switching to SubscriptionB. This works correctly, as expected.However we are now facing an issue as we have an upcoming promo
I have been planning to have my app be available as only a subscription service: monthly or annual.I was expecting to have them sign in with OAuth from Google or Apple, using Supabase Auth to handle things like sessions. Then, once signed in/registered, update my own data `user` data table to store things about the user depending on their interactions within the app.Now I am trying to add RevenueCat. I see that in the docs about Users, Purchases.configure({apiKey: <public_sdk_key>}); will generate a random ID. Unfortunately, this will not tie into my backend of known users. So the docs give an option to include appUserID in the config. My question is now about the flow.Is it reasonable to have my subscription-only app open on the login screen, then user logs in, and once logged in, trigger the configure({apiKey: ‘123abc’, appUserID: ‘known@user.com’) API with the appUserId?Or I can call the RC `logIn()` method later too... Is there a downside to waiting to configure & loa
How to detect refunds that were made through Google? I tried Purchases.getCustomerInfo but this does not get updated. I thought of using Purchases.syncPurchases but the doc says “You should not call this programmatically on every app launch for every user. This can increase latency in your app and can unintentionally alias users together.”So the solution would be to call it sometimes? Or is there a better way?
We've discovered a very strange case in our app.Here's what we do:Our mobile app makes a purchase and sends a base64-encoded receipt file to our server. We send it to the /v1/receipt endpoint. We check the entitlements that are returned in the response, and we also respond to events from RevenueCat to manage access to our service.For some users, the following has occurred (user #1, user #2):/v1/receipt returned empty entitlements. No events from RevenueCat for this user have come in. However, Apple sends the correct event SUBSCRIBED.INITIAL_BUY:{ "notificationType": "SUBSCRIBED", "subtype": "INITIAL_BUY", ..., "data": { ..., "signedTransactionInfo": { "originalTransactionId": "$txId", ... }, "signedRenewalInfo": { "originalTransactionId": "$txId", ... }, "status": 1 }, "version": "2.0", "signedDate": 1698842056024}After investigating the situation, we found that the problem was with the receipts files we got. Here are the differences we foun
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.