Discussion and help from anything related to RevenueCat.
Recently active
If you're receiving an error message "Invalid Play Store credentials" when attempting to make a purchase on Android, it's due to the service credentials that you've added to RevenueCat being invalid: https://docs.revenuecat.com/docs/creating-play-service-credentialsBefore you go and generate new credentials, it's important to know that it can take anywhere from 24-48 hours for Google to propagate your service credential access after they're created.There are a few places to check your configuration. You have followed the configuration steps outlined in RevenueCat’s documentation. Your Google Play package in your RevenueCat app settings page matches what’s shown in your build.gradle file. You have inputted the correct JSON keys from step 2e without any whitespaces. Your JSON should look like the following: {"type": "service_account","project_id": "your_project_id","private_key_id": "your_private_key_id","private_key": "-----BEGIN PRIVATE KEY-----YOUR_PRIVATE_KEY_CONTENT-----END PR
This error could be due to a few reasons. Try the following troubleshooting steps:Make sure your device/emulator is completely updated. Try running on device. Sometimes the emulator glitches out and it must be restarted. Overall, testing on device is more reliable. Restart your device/emulator. Make sure you're logged in with a Google account. If you're running on an emulator, make sure it has Google Play installed.
Apple will randomly generate billing errors for auto-renewable subscriptions in sandbox. This is expected behavior; it's part of Apple's sandbox environment so that you can test for the billing error case.
Our charts are in UTC, all other dates in the dashboard (such as customer activity) are in your local timezone.
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
Did a user reach out to you saying their card was charged after opting out of an auto-renewal? This is possible, and there are a few reasons why it happens:The user cancelled less than 24 hours before the subscription was set to renew. The Apple subscription terms require users to cancel subscriptions at least 24 hours before the next renewal. The user didn't actually opt-out of renewal. Some users will delete the app and expect the subscription to be cancelled. The user somehow has two subscriptions and cancelled only one of them. This is uncommon, but can happen if for example the user has multiple devices using different accounts. The user might have opted back in renewal after opting out.Inspecting the Customer History timeline in RevenueCat can help determine which of these scenarios may have applied. It's important that you can communicate to your customer what may have happened, and help them get a refund if you see fit.
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.
It is highly recommended to test on a real device. This is because StoreKit is flaky in iOS simulators - it will randomly fail when fetching products, offerings, etc. Learn more on testing purchases in sandbox in our documentation.
We report the USD equivalent of all revenue events for our integrations computed from that day's conversion rate.
I've configured an attribution integration but no events are sent?The attribution integrations in RevenueCat (e.g. Appsflyer, Adjust, Branch, Facebook, etc.) require two steps to setup.The network specific attribution data needs to be sent to RevenueCat from within your app. This is done through Subscriber Attributes in the SDK. Refer to the attribution integration guides for the specific network to see which Subscriber Attributes need to be set and how to test this: https://docs.revenuecat.com/docs/attribution The integration needs to be configured in the RevenueCat dashboard for your app.If no events are being sent, you should check that step 1 above is set up properly for your app and the specific attribution network. Integration events will only be sent for users that have these attributes collected.If events are being sent but the data doesn't seem right, check out our post on Data Discrepancies.
When integrations aren't working as expected, debugging can be challenging. This guide is designed to walk you through the steps you should take to identify what could be going wrong, and steps you can take to resolve any issues. Identifying the issueWhen debugging integrations, we usually hear about three categories of issues:No events are being sent from RevenueCat into third-party Only some events are being sent from RevenueCat into third-party All events appear to be sent, but the data in third-party does not match RevenueCatWe'll dig into each of these categories further in the sections below. Check that events are being sentThe first thing to check is if any events are being sent from RevenueCat into the third-party. This is easy to check in the RevenueCat dashboard under the integration settings for your app.Below every integration configuration, you'll see a table of Recent Events (example below). (Tip: click on any event in the table to see the payload that was delivered)If y
Sometimes a user will say they've made a purchase but they don't seem to have access to the content in RevenueCat. What gives? There are several reasons why that might happen, and this article will walk you through what you can do to troubleshoot.If there's no purchases showing in the RevenueCat dashboard it means that either no receipt was sent by that App User ID, or the receipt that was sent didn't contain any purchases. In this case you should:Ask the user to Restore Purchases (or someway trigger the restoreTransactions() SDK method). Restoring will re-sync the current receipt on the device with RevenueCat, and unlock any associated content. There are cases, such as network connectivity failures, where the receipt may never make it to RevenueCat after a purchase. There is automatic retry logic built into the SDK to handle these scenarios, but a manual restore is another way to resend the receipt. Try to confirm with the user that they are logged in with the correct Apple ID/Google
How often is data updated in the RevenueCat dashboard? Latency of data in the RevenueCat dashboard depends on what you're viewing and how you've set up your app. We can break down the data into three categories:Transactions Charts and metrics Customer ListsTransactions in RevenueCat are new purchases and renewals (including free trials). Transactions will be shown in real-time - this includes the Customer History timelines. For data points other than transactions, things like billing issues detected, auto-renew status changes, etc., will be automatically detected by RevenueCat every few hours, but can be sped up to near real-time by enabling platform server-notifications.Charts and metrics are continuously computed in batches from a snapshot of the transactions and activity at that point in time. As soon as the calculation finishes, is starts again. The computation takes a couple hours to run - so you should expect that level of latency in the charts.Pro tip: Hover over the chart toolt
This is the most common error from RevenueCat that can also lead to unexplained App Store rejections. Unfortunately, this error occurs when Apple's /verifyReceipt endpoint is down and unable to verify purchases. In sandbox, these errors can be fairly common since the sandbox environment is not as robust as production. In production, expect these errors less often. If your app is working in sandbox mode while testing on your own devices, this is likely an issue with the App Store. App ReviewThis issue seems to affect new apps (apps that have never been released on the App Store) during their first review more than apps that have previously been released on the App Store. Generally, the best course of action is usually to re-submit your binary or try to explain the situation to the reviewer. (Some developers have reported that they had to submit their binary over ten times before it started working as expected for the reviewer!)Just to clarify, there's nothing you as a developer or Reven
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.