Get help with anything related to RevenueCat.
- 789 Posts
- 1,938 Replies
Mac Catalyst app "stuck" with the RevenueCat app user ID of a single sandbox test user
I would like to know how to reset a RevenueCat-enabled Mac Catalyst app's in-app purchase state so that I can test the app's in-purchases with different sandbox users and with local StoreKit testing. Below is a more in-depth description of the issue I’ve had and how I've (so far unsuccessfully) tried to resolve it.(Note: in what follows, references to "app user IDs" are always to the anonymous app user IDs that RevenueCat automatically provides.)Prior to the introduction of local StoreKit testing for in-app purchases, it was useful to have multiple sandbox accounts to test in-app purchases (since a developer could use any one sandbox account only once to test a particular IAP— as you probably know, there's no way to "roll back" a purchase in a single sandbox account to try testing it again with that account).When I wanted to test an in-app purchase with a new sandbox user on the same iOS / iPadOS device on which a previous sandbox user was logged in, the following procedure reliably re
App like Udemy: selling courses. How to define products?
I have an app that sell courses as video lectures written in flutter. My app is rejected from Apple Store because I suppose to use in-app purchases instead of an external payment method. Each course has its own price. I’m a little bit rusty about in-app purchases. There is a lot term here with revenuecat: products, entitlements, offerings. Do I need these all? Some courses are non-consumable and has lifetime access.Some courses are subscriptions and has a one time limit. I have a course detail page. When I enter here, I want to check if I bought this course. If yes, I’ll show all videos. If not I want to show a buy button. The prices, id and type(subscription or non-consumable) will come from my rest api. Should I create product id for each course with these information like $courseId1_tier_1, $courseId2_tier_3, $courseId3_tier_1 or I should create product ids in apple and in google and then share the same products ids with rest and rest api should return product id when course detail
Testing purchases on iOS simulator best practices
I state that both with iOS Device and Android Device everything works fine. As for the Android emultor I can regularly test the in app purchase (emulators with Google play services), with the iOS emulator (with iOS 14.0) I have difficulty making it work with the storeKit. I followed the explanations to configure it but it shows that I have done something wrong. One step that I didn't understand is that of duplicating the Configuration.storekit. Why is it necessary to duplicate it if you can select the first one in the next step? If you have any advice on mistakes that other users have made previously that prevented the emulator from working properly with storekit, I welcome it.
Which App User ID is used as alias?
Hi, We see different behaviors regarding aliases and we would like to know more about how it works.Here are the different behavior that we see:1- If we set a user id, sometimes the alias is set as the App User ID, sometimes the App User ID stays the RCAnonymous id but the alias is there when we look at the user aliases. What is the logic?2- If we set multiple aliases, how RevenueCat decide which one to use as the App User ID? Thank you,
"Empty products" page moved?
Hi, what happened to the very very good tutorial here https://support.revenuecat.com/hc/en-us/articles/360041793174 about troubleshooting empty product list? Now it redirects to a very short post of the forum with missing images and with very few informations The previous article was very good, at least fix the missing images.
What does the unsubscribe_detected_at field in the S3 exports represent?
Can you please explain how the unsubscribe_detected_at field is populated?I have some users who have opted out of auto renewal, but their unsubscribe_detected_at field is null. And some users who don’t have it as null.The only difference I see is that users in the latter group re-subscribed after opting out.
Play Store Service Credential Delays
When setting up your Play Store service credentials, it can take up to 36hrs+ for your credentials to work properly with the Android Developer API. You will see "Invalid Play Store credentials" errors and be unable to make purchases with RevenueCat until this happens. Any changes to these credentials will also take up to 36hrs+ to fully propagate. If the Google Play Android Developer API has not been used in your project before or it is disabled, you can enable it by visiting APIs & Services in your Google Cloud Platform. Service Credentials Not Populating under API accessThis is a rare case, if your service credentials are not populating under Google Play Console > 'API access', be sure to check if the service credential email address is in the "IAM" tab in Google Cloud Console. To navigate to this page, go to Google Cloud Console > IAM & Admin.If you do not see your service credentials under this tab, select the "+ ADD" button at the top of the page and copy the email f
User has one (google/apple) store account and multiple app accounts
Hey,Currently, I’m experiencing a strange behavior when the user has one google account and logged in on two different devices and also the user has two accounts in my app.When the user is purchasing a subscription on one device this subscription is applied to both accounts of my app.I'm expecting that it should be applied to one of my accounts and the second account shouldn't see this subscription.Can someone help me with it?didn’t find an answer for this issue on the forum =(
User has multiple subscriptions
Multiple subscriptions? How?Although rare, it's possible for a user to have multiple active subscriptions. On iOS, this could be done by accident if a user has multiple devices using different Apple accounts and purchased on each one. On Android, a user may have tried to upgrade/downgrade a subscription but instead purchased a duplicate. If using RevenueCat to make purchases on Android, you need to specify in the purchasePackage method whether it is an upgrade/downgrade, or else it will be treated like a regular purchase.If neither of the above cases apply, or you see a lot of subscriptions on the same user in RevenueCat, you may have hardcoded an App User ID instead of using a unique identifier for each user. Each subscription is actually associated with a different Apple or Google account, but each one is tied to the same hardcoded App User ID in RevenueCat. In order to separate these users out, you should release an update to your app that clears out the hardcoded App User ID, then
How do I issue a refund?
Refunds are issued differently depending if the subscriber purchased through the App Store or the Play Store. App StoreApple does not allow developers to issue refunds on behalf of users. Users will need to contact Apple customer support directly for a refund. RevenueCat will automatically detect when a refund has been issued by Apple.If a user requests a refund, you can direct them to the Apple support page: https://support.apple.com/en-us/HT204084 Play StoreThere are multiple ways to refund a customer that purchased through the Play Store:(recommended) Active Android subscriptions may be refunded directly through the RevenueCat dashboard. Click on the respective transaction event on the customer page and hit "Refund" in the upper right. Documentation for reference. Refunds can also be granted programmatically through the RevenueCat REST API. It's also possible to refund users directly through the Google Play console. This is not recommended since RevenueCat cannot track refunds init
How can I change my plan?You can change your plan at any time from your RevenueCat account plan page. See our Fair Billing Policy for more info about upgrading and downgrading plans. Why don't I see all the premium features for my app after I've upgraded?If you've upgraded your account but don't see the premium features (like charts) for your app, ensure that you are the app owner and not a collaborator. Only the app owner can manage billing. If you've upgraded your account as a collaborator by accident, don't worry - you'll only be billed if you're the owner of a live app so you can simply downgrade back to 'Build' and never be charged. If you were in fact billed by accident, contact us. How can I migrate off of RevenueCat?We hate to see you go, but if you need to migrate off of RevenueCat we'll happily export all of the receipt files we've collected. You should also remove the RevenueCat SDK from your apps to reduce API calls to our servers.
What is MTR?MTR stands for monthly tracked revenue. It's the amount of revenue tracked by RevenueCat (in USD, and before the platform cut) during a one month billing period. This includes paid subscriptions, renewals, and one-time purchases. Why do you base MTR on pre-platform cut revenue?Our goal is to help you take advantage of Apple's and Google's 1-year cut reductions as well as the benefits of moving subscriptions to less costly platforms like Stripe. This ensures we aren't disincentivized from making that happen.
Already have an account? Login
Log in to the Community
Authenticate with RevenueCat
Enter your username or e-mail address. We'll send you an e-mail with instructions to reset your password.