Get help with webhooks, third-party integrations, and attribution providers.
Recently active
Hello RevenueCat Community,We've been using RevenueCat for our iOS, Android, and web apps, and we primarily use Firebase as our backend for all 3 apps. We've set up the RevenueCat’s Firebase integration (not the Firebase extension) by following the documentation provided here. The document seems to indicate that events for all 3 sources (App Store/Play Store/Stripe) can be sent to Google Analytics.We see the revenue data for our iOS and Android apps in the Firebase dashboard. However, we've noticed that the revenue for our web app, which is processed through Stripe, is missing. We do see the web app revenue on the RevenueCat dashboard, but it's not showing up in Firebase.We've double-checked the setup and believe that we've followed the integration steps correctly, but we're still not able to see the web app revenue in Firebase. Is there an additional step or configuration required for Stripe payments that's not covered in the documentation?Any guidance or suggestions would be greatly
Hi Team, I was wondering if it is possible to access the customer lists via REST API. I would need to access the subscriber attributes to see the media source, and correlate the proceeds with the spend in Apple Search Ads. I can get this data if I have the app_user_id, but how do I do it if I don’t have the app_user_id? I know there are many third-party apps that read this data from RevenueCat. This let me think that it should be possible.Best,Salvatore
I followed all the steps in the documents and I am in the testing phase and I am testing on a real device with Android 12 and I get this error In-app billing API version 3 is not supported on this device.W/[Purchases] - WARN(25864): 🤖‼️ Billing is not available in this device. DebugMessage: Google Play In-app Billing API version is less than 3. ErrorCode: BILLING_UNAVAILABLE.
I just want to check I’m not missing anything here: If I want to use Superwall for my paywalls and run pricing experiments, then I need to:administer the experiment/choort allocation in superwall track the results in RevenueCat using a chart which is segmented by offeringDid I miss anything? Is there a better way?
I have an iOS app which uses the RevenueCat Swift SDK and an web app which uses Stripe. Both apps are powered by Firebase as the backend. I want to sync the subscriptions between them. I installed Firebase extensions for RevenueCat and Stripe. Both extensions set custom authentication claims in the user’s access token. Is that a good way to sync purchases?Are there any other easy ways to sync the purchases? (by easy I mean little or zero backend work).Another option I’m exploring is to setup a listener for user document in Firestore, which is updated by both the extensions (RevenueCat and Stripe). So when any changes happen to that document, I can update the subscription info in the apps. PS: Actually, having to write backend code to sync purchases between web and iOS makes me think the purpose of using RevenueCat is lost.
I’m using expo with EAS. Both in production and expo it throws errors saying the Purchase Class is null and thus no functions exist on it. My IDE says it the class is imported and i can call the functions. Typescript says everything is fine. Can someone help me?I installed the react-native-purchases package multiple times and cleared Caches as well.
Hi, we are getting a lot of "None of the products registered in the RevenueCat dashboard could be fetched from the Play Store" errors being logged in our app, but they happen intermittently and with no visible pattern.We have checked our whole setup and everything is correctly configured, and it also works fine in all the devices we have tried on. All google products linked in RC console show Store Status Ok .Is it possible that this error gets triggered when something else happens besides a bad RC configuration? Can you convert it to a different one, like unknown error? We usually filter those out, because there is nothing we can do. But we can't ignore an error that may point to a config error.Thank you
Hi RevenueCat Community,I hope you're all doing well. I'm reaching out to seek assistance with some challenges we're facing while integrating RevenueCat into our mobile app. We would greatly appreciate any guidance or insights from the community. Here's a summary of the issues we're encountering: User Identifier Update: We have successfully implemented webhook integrations for subscription actions, but the user identifiers provided by RevenueCat are anonymous IDs. We need to associate these actions with specific users in our app. Is there any way to update the existing anonymous IDs of our current users to our preferred user IDs? This would help us maintain accurate correlations between subscription actions and user profiles. Subscription Cancellation Identification: Due to the anonymous IDs provided by RevenueCat, it's challenging for us to identify which user has cancelled their subscription when we receive webhook data on our server. Are there alternative methods or additional inf
Hi, In order to conform with GDPR, when a user deletes his account, should we also delete the data populated in Firestore by the RevenueCat extension i.e data populated in the “events” and “customers” collections?For instance, I could easily delete “/customers/{app_user_ids}” documents but it gets tricky when I need to delete “/customers/{$RCAnonymousIDS}” documents because I would need to do a search in all these documents to target the ones that contain an “alias” to the app_user_id in question. Similarly, I would need to do the same for the “events” collection and i was wondering if I could avoid doing that and just not delete any of the data in “customers” and “events” collections and still comply with GDPR, could you please clarify? Br, Nader
Hi everyone,I am afraid the answer to this question is No but in case this ever changes in the future I am still asking it.Is it possible to export/integrate RevenueCat collected data into Google Firebase Analytics?Thanks in advance for your reply.
We are trying to keep the same entitlement state of our users in our own database, and we're using webhooks for that. It's globally working well, except for a case where we found that the `expiration_at_ms` is not giving us the correct expiration date, for a TRIAL in a "INITIAL_PURCHASE" event, only for ANDROID.Please check screenshot attached:on the user page, you can see that the user subscribed to a trial on April 21st, on the top right you can see him having the "pro" entitlement until 2023/05/08. when we click on the "started a trial" line, we check the webhook event, the expiration_at_ms value is `1682357863507` corresponding to `Monday, 24 April 2023 17:37:43.507`, which is the info we have in our DB. Why are the 2 dates so different ? This is the only event that is triggered to us. As it is only happening with Android, is there a bug for android or an additional thing we need to do to set this up correctly ?
Good afternoon.I have set up the Slack Webhook as per the instructions but whenever I send a test webhook or also with the test purchases in the sandbox, I always get a response 400.The curl hello world from the Slack page works perfectly and I can see the message in my Slack channel.Perhaps something has changed in the way Slack expects the messages to be formatted? In the sent json I don’t see the “text” field that I see in the Slack test webhook.Thanks a lot.
Hello!Me and my team just realized that the event rc_initial_purchase_event that is saved on MixPanel with the integration is not sending information when a new subscription has been purchased or a lapsed user has resubscribed. This is critical because we are not saving any information of this to our main source of truth. Whats happening? We've lost months of information in MixPanel that we need. How can we solve this?Thanks in advance!
When creating a new entitlement and attaching it to existing products, active subscribers get the new entitlement as expected, but unfortunately this does not trigger any event for the configured webhook. Are there any plans to change this behaviour? For instance, having a new type of webhook event when the list of entitlements linked to a product changes, or when a user gets new entitlements outside of regular purchase/renewal events. To give a bit more context:We have multiple entitlements: each one unlocking its own feature/content in our app. We are currently adding a new feature which we want to only be available to paying users, so we need a new entitlement linked to some of our existing products. We also rely on a webhook to sync our internal database and keep track of what our users can access.To solve this we are thinking of querying the `/subscribers` endpoint for each of our active subscriber (after attaching the new entitlement) so we can get an updated list of entitlements
Hey, We’re using RevenueCat in conjunction with a few other analytics/reporting tools. I’m trying to link iOS subscribers between RC and some of those other tools.What I’m trying to do is link an RC subscriber to their Apple SubscriberId (which we get when we download the subscriber report from AppStoreConnect).All I see in the RC webhook is a “transaction_id” but I’m not able to link that. Has anyone had success doing this type of link in the past?
We want to integrate RC with OneSignal and are facing some questions we do not find clear answers in the documentation.(https://docs.revenuecat.com/docs/onesignal)The main issue is that OneSignal does not have a combined “User”. They only have “PlayerIds” targeting specific devices and channels.Our Users use the app on multiple devices and platforms. (iPhone, iPad, Mac)We use anonymous user ids for RC and when a user restores their purchases, RC is creating aliases to link the data together.When we set the $onesignalId with the SDK, it is a PlayerId, meant to target push notifications to one specific device. So RC Subscription Events are only set to this PlayerId with the API Integration.If a user is using multiple devices, he has multiple PlayerIds. But RC is only adding tags to the one set as $onesignalId.To use OneSignal Journeys, we need to set the externalUserId.We can use the originalAppId from RevenueCat here.Sadly there is no detailed documentation on how to use Journeys and Pu
We recently set up Apple search ad’s attribution through revenuecat and started testing new campaigns. For all of our campaigns except one the tracking has been great and super helpful. However for one of our campaigns that has been spending ~$75/day for the last two weeks there is zero data on it.. Very odd. Has anyone encountered something similar/have any solution ideas?
Using revenue cat in flutter.In ios side all is working fine ,but in android side getting empty list of offerings.Is there anything related to new updates that google added in io’22.Or it is some configuration error.Output :- DEBUG(32279): ℹ️ API request started: GET /subscribers/6273eb4bda327c735a4b20deD/[Purchases] - DEBUG(32279): ℹ️ API request completed with status: GET /subscribers/6273eb4bda327c735a4b20de 304D/[Purchases] - DEBUG(32279): ℹ️ PurchaserInfo updated, sending to listener.W/System (32279): ClassLoader referenced unknown path: system/framework/mediatek-cta.jarI/System.out(32279): e:java.lang.ClassNotFoundException: com.mediatek.cta.CtaHttpI/System.out(32279): [OkHttp] sendRequest>>I/System.out(32279): [OkHttp] sendRequest<<D/[Purchases] - DEBUG(32279): ℹ️ API request started: GET /subscribers/6273eb4bda327c735a4b20de/offeringsD/[Purchases] - DEBUG(32279): ℹ️ API request completed with status: GET /subscribers/6273eb4bda327c735a4b20de/offerings 3042D/[Purcha
Hello,I'm trying to monitor the validity of subscriptions based on data in Firestore using Firebase Extension. The monitoring process is intended to be integrated into a Flutter app.The documentation lists the following methods for verifying entitlement access: https://www.revenuecat.com/docs/firebase-integration#using-the-extensionUse the RevenueCat SDK Use custom claims in Firebase Authentication Retrieve the expires_date from the REVENUECAT_CUSTOMERS_COLLECTION document and compare it to the current date and time.However, for the following reasons, I would like to avoid using the above methods:With only the RevenueCat SDK, it is not possible to verify whether a user with the same user ID has entitlements on another device. If using custom claims in Firebase Authentication, the data cannot be obtained through a stream (real-time monitoring is not possible). While expires_date needs to be compared to the current date and time, on mobile apps, the current time can be changed by modifyi
Hi,I’m trying to configure AppsFlyer and RevenueCat. And I’m getting following errors in the console:[Purchases] - ERROR: 😿‼️ Error when syncing subscriber attributes. Details: The operation couldn’t be completed. (RevenueCat.BackendError error 0.) [Purchases] - ERROR: 😿‼️ One or more of the attributes sent could not be saved. ["$idfv": "IDFV cannot be modified.", "$appsflyerId": "AppsFlyer ID cannot be modified."] If I understand correctly, the AppsFlyer ID will be generated every time a user installs a new app. As users use multiple devices, I think this error will occur for every user who uses two or more devices. If this is the case, why is it shown as an error? Alternatively, how can I configure AppsFlyer and RevenueCat so that the AppsFlyer ID is unique? It seems impossible without IDFA
Hi to everyone,I configured RevenueCat Integration with Facebook Ads following the official documentation. My goal is to track Trials and Purchases of an Auto-Renewable Subscription inside Facebook Ads Manager so I can check for every ad how much it converts.The problem is that events, according RevenueCat Dashboard, been sent successfully but inside Facebook Dashboard I can’t see any events.PLATFORM: iOS
I have been unable to install or uninstall the Revenuecat Purchases Firestore Extension. After trying to then uninstall, I have received the following error. Note that we have Google Cloud Associated with this project and so IAM permissions etc. There is nothing about this in the documentation and how Google Cloud IAM permissions might affect the Extension installation or uninstallation. My account has full Owner permissions, as well as Service Usage Admin, Firebase Admin, and Eventarc admin. This is the error:> Error: ; RESOURCE_ERROR at /deployments/firebase-ext-firestore-revenuecat-purchases/resources/mods-api-enable-eventarcpublishing: {"ResourceType":"deploymentmanager.v2.virtual.enableService","ResourceErrorCode":"403","ResourceErrorMessage":{"code":403,"message":"Permission denied to enable service [eventarcpublishing.googleapis.com]\nHelp Token: help-token-here","status":"PERMISSION_DENIED","details":[{"@type":"type.googleapis.com/google.rpc.PreconditionFailure","violations"
Revenue cat firebase integration events need to don't track sandbox purchases, i tried to disable in firebase extension Test events tracking, but still getting events with environment SANDBOX, how can i disable sandbox purchase tracking to firebase?
I would like to integrate Firebase Extension into my project and according to the instructions guide I need to follow a few steps herehttps://www.revenuecat.com/docs/firebase-integration#2-set-firebase-user-identity-in-revenuecatAll those steps are only showing code for Swift.Is there no integration available for Flutter? Is it not possible?
I viewed Apple's docs and saw the information about billing retry (60 days), but not in RevenueCat. I want to know how to detect a subscription is in billing retry (60 days)? Is Billing_issue when payment is failed before billing retry? Is Expiration when subscription is officially expired (after 60 days retry)?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.