Get help with webhooks, third-party integrations, and attribution providers.
Recently active
I’m hoping to get some clarification on how the Meta Ads Integration works. Our app consists of only subscriptions and we currently have the integration set up where we can see the events Trial Start and Subscription in the Meta Datasource. We have configured the events for SKADNetwork in the settings in the meta platform and I can see that the idfas and idfvs are properly being collected in the customer list on revcats platform. Our code (swift ios15+ app) in the application(didfinishlaunching:) has the ApplicationDelegate.shared.application(...) function then Purchases.configure(...) , collectDeviceIdentifiers(),setFBAnonymousId(...). I can see that we are successfully getting both subscription and trial start events, but why will our campaign not show any conversions in ads manager? What am I missing?
We’ve activated the Branch MMP integration in RevenueCat. The RevenueCat documentation mentions:In order to attach attribution data to the correct user, make sure the App User Ids for RevenueCat and Branch match. The easiest way to do this is to set the Branch SDK identity to match the Purchases App User Id whether you're providing your own ids or using our randomly generated ids. The issue is users can start a subscription before we identify them with our ID’s. This means when the trial start event gets sent to Branch it looks like this:{ "name": "rc_trial_started_event", "user_data": { "app_id": "XXXX", "developer_identity": "$RCAnonymousID:ETCETCETC" }}Then when later events come in, the identity is different:{ "name": "rc_expiration_event", "user_data": { "app_id": "XXXXXX", "developer_identity": "OUR IDENTIFIER" }}Will the RevenueCat Branch integration handle this and correctly match up the identifiers as the same user?
I’m working on setting up the Superwall integration, following the instruction on https://www.revenuecat.com/docs/integrations/third-party-integrations/superwall. I’m looking for advice on the best practices for making sure the user IDs match between RevenueCat and Superwall. Our iOS app uses a RevenueCat anonymous ID on first launch, then asynchronously generates a user ID and sends it to RevenueCat. However, the ID is not guaranteed to exist because it’s tied to the user’s iCloud account, so some users may just use the anonymous RevenueCat ID. The flow I was considering was something like this:After launch, retrieve the RevenueCat anonymous appUserID and send to Superwall. Attempt to generate iCloud-based ID. If iCloud-based ID is created successfully, send to RevenueCat and Superwall. Otherwise, do nothing.Does that seem correct? (Or is this something I need to take up with Superwall instead?)
Hello, I can find here https://www.revenuecat.com/docs/integrations/third-party-integrations/clevertap steps to make RevenueCat integration with CleverTap, I can find several programming languages how to do this, but unfortunately I can’t find (Dart) which is the programming language of Flutter.So is there any docs or steps how to implement this integration in a Flutter app?Also is it free or need to upgrade plan?Thanks in advance.
Slack occasionally (2-3 times per day) sends notifications about purchases that happened before RC integration (a few years ago purchases).I have an Android app and started using RC a few months ago.Slack sends me notifications about purchases which are just purchased, but also for purchases from a few years ago.I don't see any pattern, but the attached screenshot was captured at 6am on June 10th, 2024. You can see slack sent a purchase that happened in 2022.
In our app, we have 3 different subscriptions (entitlements) that users can purchase. On Android and iOS side everything works fine as expected. But, in web, when user subscribes through stripe checkout session, when we post the subscription id to RC server successfully, the subscription does show up with appropriate (stripe) product.But, for some reason the entitlement the product belongs to is not attached with the customer’s subscription. We do provide the accurate `app_user_id` and `fetch_token` (stripe subscription id) on the receipt.Our app uses the customer’s entitlement to unlock the level of feature. So, if there’s no entitlement attached to their purchase, the app can’t allow user to access the paid feature.
Hello everyone,I am facing an issue with the in-app subscription functionality in my Flutter app, which has suddenly stopped working. The subscriptions were functioning correctly until I logged into my RevenueCat account using a third-party app from the App Store that provides access to the RevenueCat dashboard on my phone.Issue Description: When I attempt to access the paywall in my app, the subscription process does not proceed as expected. This issue started after logging into the third-party RevenueCat dashboard app. Before this, the subscriptions were working perfectly.Steps to Reproduce:Open the app. Navigate to the paywall screen. Attempt to initiate a subscription.Expected Result: The subscription process should proceed normally, allowing the user to complete the purchase.Actual Result: The subscription process fails to initiate. I have confirmed that my Apple Developer Program membership is active, and there are no reported issues on the RevenueCat status page. Has anyone else
We created a mobile game through Unity that features firebase authentication for sign-up/login of user accounts. The app would be both available for Google Play Store and IOS. We want to integrate in-app purchasing with both consumable and subscription products however, the current IAP we were planning to use have its limitations such as associating google subscription through the active google account rather than the existing firebase user. After some research, I read that RevenueCat can be integrated with Firebase so the IAP will be connected to each Firebase users instead. Would this be possible and are there any documentations we can refer to in order to achieve such feature?
We have a Netflix model where most of our service value is via website. We have a mobile app where users can subscribe, and I want to use revenuecat to send IAP subscriptions to Stripe, which is our source of truth for subscription status. It seems like all of revenuecat documentation is stripe → revenuecat → iap whereas we need iap → revenuecat → stripe. When testing iap, I see the subscriptions show on revenuecat, but not on stripe. how do I get iap subscriptions to show up as customers / subscriptions on stripe.
Is it normal for webhooks to only be sent when you open the paywall in your app? I’m testing on Android. Apparently, you get renewals in 5 minutes, but nothing happens until I actually open the paywall in the app.
The documentation says “The subscription has set to be paused at the end of the period. Please note: You should not revoke access when receiving a SUBSCRIPTION_PAUSED event, but only when receiving an EXPIRATION event (which will have the expiration reason SUBSCRIPTION_PAUSED).”However, an EXPIRATION event is never triggered. Is this just an issue with sandbox?
Hello, I think I’ve integrated RevenueCat successfully, but I'm encountering an issue with downgrades I use Firebase to store user credits, and Cloud Functions trigger updates based on events.The problem is that RevenueCat sends an "Initial Purchase" event when a user downgrades their subscription. This event doesn't differentiate between a new purchase and a downgrade. As a result, my Cloud Function awards credits to users even when they downgrade, which isn't the desired behavior.I think it would a good idea to indicate in the event what type it is.Or am i missing something ?Thanks
I’d like to get a better understanding of the stripe integration.So far I’veConnected stripe and RevenueCat as described here: https://www.revenuecat.com/docs/web/connect-stripe-account Created a webhook for stripe in which we post to the RevenueCat receipts APIAre both of these necessary? Do we need to tell the RevenueCat receipts API about a purchase, or can RevenueCat get this information from the connection created in my first bullet point above?What does the connection do versus what does telling the receipts API do? Can I get an explanation on how these two things work together?
I want to optimize a facebook campaign for the "Subscibe" event (user purchased abo).The Revenuecat Facebook integration made that event available in the Facebook Conversion Api, but it doesn't seem to work for IOS users who did not accept the ATT prompt. Here @tina claimed that the events are still being sent to Facebook but without the IDFA, if so are the events still maybe unusable for the Campaign because Facebook doesnt know how to map the Subscribe Event to the according Campaign perhaps?
I’ve been reading docs for hours and hours. I’ve read this post: https://www.revenuecat.com/docs/stripe To accept stripe payments I can use a Stripe Checkout (https://stripe.com/payments/checkout) It’s a stripe payment page hosted by stripe which prevents me from having to set up my own payment server. Here’s where I’m lost. After I receive a payment, I have to “Send Stripe tokens to RevenueCat”. How do I do that? I can’t figure out how to initiate a POST request from Stripe Checkout that sends the required info to Revenuecat. Here’s what I have to sent to Revenuecat… curl -X POST \ https://api.revenuecat.com/v1/receipts \ -H 'Content-Type: application/json' \ -H 'X-Platform: stripe' \ -H 'Authorization: Bearer YOUR_REVENUECAT_STRIPE_APP_PUBLIC_API_KEY' \ -d '{ "app_user_id": "my_app_user_id", "fetch_token": "sub_xxxxxxxxxx" }' Any help would be greatly appreciated. Chris
Hello, we set up the Firebase - RevenueCat integration. Now my question is, if trials also fire the “purchase” event in Firebase or do they only fire the “rc_trial_start” event?Docs: https://www.revenuecat.com/docs/integrations/third-party-integrations/firebase-integration#events Kind regards,Marius
Hi,When reviewing events in Amplitude that I get with RevenueCat integration I noticed some event properties are doubled with ‘$’ and without. For example $product_id and product_id contain the same info.Which of these properties should I rely on when, for example, filtering data in Amplitude?Thanks!
@kaitlin This is the second post related to the same issue: This time, I’m a 1000% sure there is an issue on the RevenueCat part of the integration.I did tests and when RevenueCat sends an event to MixPanel or update my users profile in MixPanel it also changes the User’s location to its servers location: Ashburn, Virginia, USA.The support team has not been able to help me fix it yet and that’s why I’m here again, to try to reach more people from RevenueCat’s team to help me escalate this.To all RevenueCat users, please if your source of truth is MixPanel and you need to know where are your users from, I suggest you to review correctly the information, compare your events location vs the user’s location in MixPanel, if they are different and the user’s location is Ashburn Virginia USA, I request you help me bump this post.Thanks all in advance.
Hello, I am trying to setup Apple Server Notification Forwarding. I can verify that I am getting a notification forwarded to my api route, but I am having trouble parsing the response. When I try to verify the signedPayload against the in-app-purhcase-key I always get the JONSWebTokenError.The I am using the same .p8 key that I uploaded to revenue cat. Any suggestions? export default async function handler( req: NextApiRequest, res: NextApiResponse) { const signedPayload = req.body.signedPayload console.log('the signed payload', req.body.signedPayload) if (!signedPayload) { return res .status(400) .json({ error: 'Signed payload not found in request body' }) } // Verify and decode the signed payload using your App Store public key // const publicKey = // '-----BEGIN PRIVATE KEY----- *** my key ***-----END PRIVATE KEY-----` console.log('private key', privateKey) let decodedPayload try { decodedPayload = jwt.verify(signedPayload, privateKey) } catch (error)
I installed the RevenueCat’s SDA on Stripe. Assuming Platform Server Notifications are set up and revenuecat is receiving confirmation of subscriptions almost immediately after they are made through iOS/gPlay, how long does it take revenuecat to update stripe and inform stripe the user is subscribed?
I noticed that when retrieving the CustomerInfo object form the REST v1 api there is a ‘store_transaction_id’ included for each subscription and non_subscription object. This field isn’t documented in the CustomerInfo documentation. Can you clarify what it refers to? I’m hoping it refers to the original_transaction_id so that I can use it to correlate subscriptions with event hooks as I’ve seen other developers ask for numerous times. For transactions in the sandbox this number is not unique but I assume that’s just a feature/shortcoming of the sandbox environment. Can someone confirm?
I have this error while purchasing any package in flutter.every thing is okay i have added bank accounts in appstore and created subscriptionsand i connect my revenuecat with appstore.i can fetch offerings which retrieves successfully.but when i am going to purchase any packagei get this.a have also set storekit configuration on to test in simulator 14+PlatformException(2, There was a problem with the App Store., {readable_error_code: STORE_PROBLEM, underlyingErrorMessage: An unknown error occurred, message: There was a problem with the App Store., userCancelled: false, code: 2, readableErrorCode: STORE_PROBLEM}, null)
Hi,It has been 6 hours since we received a purchase event from the Google Play Store. Is there any way to access technical support in RevenueCat?
Hello all!It’s been more than a year since we notice that all the users that had a Profile Location of Ashburn, Virginia, US had a wrong location information. There is something that is changing our users location to Ashburn and is not us.We’ve reviewed this issue with our tech team and none of the events that we send from our server are changing the users location. We have also identified, with the help of MixPanel’s Support team that this location changes when a RevenueCat event is sent to our MixPanel.I’m using this channel because RevenueCat’s Support team takes weeks to answer and I wanted to know if there are more cases like us out there so that we can push together to get this fixed.We use MixPanel as our source of truth and we have many cases of with this issue, specially hurts because we are running a paid marketing campaign and we don’t really know if the new subscribed users are comming from the US or if they are more Ashburn cases. I know we can filter them, but that’s not
Hello!We use MixPanel as our source of truth and we have created a cohort with certain filters to get all the active subscribers. We have followed the same filters as RevenueCat but still the numbers doesnt quite match:Active Subscriptions shows the number of unexpired, paid subscriptions at the end of each period charted.For the current period, the number indicated is the current active subscriptions. Subscriptions that have auto-renew disabled are still counted in Active Subscriptions. Refunded subscriptions are counted as active between their start date and their refund date.Active subscriptions is important as a measure of the number of individual, recurring relationships you are currently serving and is a proxy for the size of the business. So I would like to know if there is someone how has made a cohort or report that gives the same results as in RevenueCat that can share it with us.This is the cohort we created:RevenueCat - Active Subscribers CohortJust for you to know, we have
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.