Get help with webhooks, third-party integrations, and attribution providers.
Recently active
Hi folks,I’m interested in setting up a subscribers-only Circle or Discord community. Only users that have an active subscription (according to RevenueCat) will get access, and that access gets revoked if their subscription expires.Is anyone doing this? How? I don’t see any obvious integrations on RevenueCat’s side. Is this in RC’s roadmap? (By the way, RC’s “public” roadmap seems to be private, Trello says I need to request access??). Are tools like Circle or Discord set up to handle this if they’re sent RC’s web hooks or something?Cheers, Toby
We run into a use-case that seems like an edge case but ends up being more common that you’d expect.User subscribes via App Store, let’s say an annual plan that ends on 2023-01-01. In the middle of the subscription, user now wants to be billed through Stripe (receiving a promo code or something like that). It is too late for a refund. User cancels their App Store subscription, though it is still active until 2023-01-01. User wants to purchase their new Stripe subscription but only get billed once their App Store one ends in the future.There are a few ways to do this:Just not support this at all, and force users to wait until their App Store subscription expires before they purchase their Stripe subscription (less than ideal). Let the user purchase their new Stripe subscription, but with a really long trial duration so that during the overlap period, they have the canceled (but non-expired App Store), then on 2023-01-01 when the first one expires, their Stripe trial ends and they get bi
I have a vanilla monthly/annual subscription plan on my app. In Stripe it’s 2 products, each with one price.I’m configuring the Stripe customer portal, where I will send customers to cancel their plans. Stripe allows me to let them “Switch plans”.Is this supported in RC or should I only let users cancel and start a new subscription?Thanks!
I am struggling to get RevenueCat to automatically sync/recognise one-time purchases from Stripe Checkout.I have a Flutter app for both iOS and web (Firebase backend), and after significant work (writing custom conditional code for the Web logic...) have subscriptions working for both iOS and Web, integrated with RevenueCat. Customers can subscribe either as an IAP on iOS or using Stripe if on the Web app, and the subscription entitlement is managed by RevenueCat.But… user’s also need the ability to make one-time purchase of consumable credits. On iOS this is handled as an IAP that RevenueCat syncs, pushing the successful transaction event to my Firestore Function so I can track the credit balance.For one-time purchases via the Web app, Stripe Checkout successfully completes yet ReveneCat appears unaware of the transaction! Unlike for Stripe-managed subscription transactions there does not seem to be any automatic syncing or notification to RC of the one-time purchase.So far I have tri
So I configured Webhooks and used the recommended approach of calling the RevenueCat API to handle logic.This works for all events tested so far. Except for the Cancellation event (I canceled Platinum):As shown in the image. The function is called at 11:38:35 with the cancellation event and after calling the RevenueCat API to check the expiration date, the platinum membership is not yet expired and thus my logic to remove the enitlement is not triggering as I am checking if the expiration date is in the past.Did I oversee something here?
Platform: AndroidStore: Google PlayProduct Type: Monthly SubscriptionRevenueCat Purchases Version: com.revenuecat.purchases:purchases:5.1.0 A customer of our app from Moldova (Republic of Moldova) reported today that the price displayed in the app (9.49 USD) was not the price that he ended up paying (11.39 USD). Looking at the email receipt he sent us from Google, the extra 1.90 USD is labeled as Tax. I went in the Google Play Console where we can set our price for each country, and the price there is 9.49 USD → no sign of any VAT. I did a Google Search and the default VAT for Moldova is 20%, which matches the extra Tax from the transaction.I then checked RevenueCat, including the webhook for that specific transaction, and there is no trace of tax. The price is 9.49 and also, in the webhook, the `tax_percentage` field is 0. Then I found out that this is the case for all transactions made from that country, RevenueCat doesn’t know about the tax there. The biggest problem now is that fo
I am using Webhooks to communicate with my MongoDB functions which is based on nodeJS.Now I have following problem:I do not know how to parse the data correctly. The payload arrives as object binary and I am unsure how to get the data out of it. Best regardsThomas
Do Refunds get sent to Amplitude?
It’s been over 36 hours and still I‘m seeing this error. RevenueCat docs says that this will go away after 36 hours but it hasn’t. D/[Purchases] - DEBUG(30735): ℹ️ Found 0 unsynced attributes for App User ID: faizanrafiq.htc@gmail.comD/[Purchases] - DEBUG(30735): ℹ️ API request started: POST /receiptsD/[Purchases] - DEBUG(30735): ℹ️ API request completed with status: POST /receipts 503E/[Purchases] - ERROR(30735): 🤖‼️ There was a credentials issue. Check the underlying error for more details.I/flutter (30735): PlatformException(11, There was a credentials issue. Check the underlying error for more details., {code: 11, message: There was a credentials issue. Check the underlying error for more details., readableErrorCode: InvalidCredentialsError, readable_error_code: InvalidCredentialsError, underlyingErrorMessage: Invalid Play Store credentials., userCancelled: false}, null) Any help will be greatly oblidged.
Please have a look at this customer:https://app.revenuecat.com/customers/64393e08/044c7fb8-183a-4928-be54-44b513ccd58aAccording to the history he bought a subscription with us on 19th August. But the webhook was fired today. This is a delay of 5 days which is totally unacceptable for an in app payment.Please verify whether the buy date (19th Agust) is really true or an errorAnd if it is true, you have to make sure such delays won’t occur anymore. Such huge delays can make customers get really mad and make them want their money back.
Like the title said, we suffer a wrong data in eCommerce Revenue (expected 0 but we receive 7.5K in the below image), which then causes wrong total revenue also. The actually revenue should be 31K-7.5K. All of previous month (which we haven’t integrated RevenueCat with Firebase yet), this number should be 0 (I’ve checked again)It looks like happen on iOS only because we has this value only on iOS, is this SDK bug?
TL;DR: For 3rd party integrations, please update proceeds to take into account VAT so that it matches Apple’s proceeds and what the developer actually gets. --We've been using our RevenueCat integration with AppsFlyer and Amplitude to calculate LTV and track marketing campaign profitability, however I just realized that proceeds reported by RevenueCat does not match Apple’s. If you choose 'report proceeds' in RevenueCat, it doesn't take into account VAT when sending the revenue which results in RevenueCat over reporting proceeds by up to 20% , which throws off marketing campaigns and LTV calculations. 😔 Here's an example of a sale in the UK: I've converted everything to US dollars for convenience. Price of product: $4.11Proceeds reported by RevenueCat to Amplitude: $2.88ACTUAL proceeds reported by Apple: $2.36Difference = ~20% FORMULAS: It looks like RevenueCat is using this formula: proceeds = price * 0.7 Please update this to what Apple is using: proceeds = price * (1-{VAT Rat
Hello,We noticed when testing the RevenueCat subscription, the expiration window is very short. Here's an example of a webhook payload registering a successfully initial purchase. Note that the event time is "Thu Jun 16 2022 10:45:08 GMT-0700 " and expiration time is "Thu Jun 16 2022 11:45:02 GMT-0700". What seems to happen is that after that window, we are forced to go through the subscription user journey again. Is there any to not have the subscription auto-expire in such a short window?{ "api_version": "1.0", "event": { "aliases": [ "$RCAnonymousID:7a56d17ff84b4c0bbd29054eeb2422fa", "$RCAnonymousID:1d4d14da64ed4fc8beed542a1b330b54", "$RCAnonymousID:8b49f5f9b29948ba99fd7efc58c37793", "d8d53812-6c9f-46a5-9502-bbb25e37bfe6" ], "app_id": "app858c963db5", "app_user_id": "d8d53812-6c9f-46a5-9502-bbb25e37bfe6", "country_code": "US", "currency": "USD", "entitlement_id": null, "entitlement_ids": [ "allaccess" ], "environment": "SANDBO
HiI have set up the stripe webhook using the docs and have tried to add test subscriptions on Stripe manually and using Stripe Checkout. The Stripe webhook page shows me that the events did go through as shown here: but on Revenue Cat my dashboard is still empty completely. I am not sure where the issue is and would appreciate any help!
I’ve successfully integrated subscription product fro iOS. But when I try to make purchase of a subscription product, The below error is returned: Error: The receipt is not valid. What’s the problem? How can I solve this?
Hi, I’m a little confused about the Apple Search Ads attribution page in the docs:https://docs.revenuecat.com/docs/apple-search-ads It says that:On iOS 14.5+, you must be running the latest RevenueCat SDK and request authorization via the App Tracking Transparency framework before Apple Search Ads data can be collected by RevenueCat. However, my understanding is that for basic tracking (anonymised) using the new AdServices framework, this isn’t necessary. What’s the latest on this?
We set up Adjust Integration step by step due documentation. Also try with and without OAuth. Still no events fires by RevenueCat in integration dashboard. In per user events feed detailed info also shows:No integrations to show We also using Unity SDK if it is matter. We correctly send Adjust ID per user via SDK. No result with live users and sandboxCan you help please?
Our backend system are splited to staging and production, but revenuecat’s sandbox looks doesn’t support webhook, so I want to add both staging and production webhooks to the app.
Hello , Once the revenue cat implementation is Done ,I went through the purchase => once i click and purchase any package its throughing me the following error Please do help..unity version = 2020.3.35f1revenue cat version = 4.0.0-rc.1unity IAP version = 4.1.5gradle version = 6.1.1/Unity: NullReferenceException: Object reference not set to an instance of an object at UnityEngine.Purchasing.GooglePurchaseUpdatedListener.OnPurchaseOk (UnityEngine.Purchasing.Models.GooglePurchase googlePurchase) [0x00000] in <3eb221e23cc14c1eb9a89aaea1015de1>:0 at UnityEngine.Purchasing.GooglePurchaseUpdatedListener.ApplyOnPurchases (System.Collections.Generic.IEnumerable`1[t] purchases, System.Action`1[t] action) [0x00027] in <3eb221e23cc14c1eb9a89aaea1015de1>:0 at UnityEngine.Purchasing.GooglePurchaseUpdatedListener.HandleResultOkCases (UnityEngine.Purchasing.Models.IGoogleBillingResult result, System.Collections.Generic.IEnumerable`1[t] purchases) [0x00008] in <3e
If I check the docs (https://docs.revenuecat.com/docs/mixpanel) for the mixpanel integration, I see that for cancellations you differentiate between “Trial Cancelled” and “Cancellation”. However, on the uncancellation side there is only one event with the description “When a user re-enables the auto-renew status for a subscription.”Are uncancellations of trials not tracked or are they covered by this event?
Hello, we are having trouble with getting Apple Search Ads attribution data for our app. We have followed the integration instructions located here: https://docs.revenuecat.com/docs/apple-search-ads, and have added the required configuration line: Purchases.automaticAppleSearchAdsAttributionCollection = true We also made sure that the iAd framework is imported in our project. Our apps asks authorization via the App Tracking Transparency framework. We are running ASA for quite a few weeks now, and have released the version with the attribution configuration more than two ago, but we cannot see any kind of breakdown by campaign or adgroup in the Charts segmentation settings. We are only seeing Organic users: We don’t know what we are doing wrong. Is there any way that to test our configuration in Sandbox mode? Any help is appreciated, thank you!
Should the $firebaseAppInstanceId attribute be visible on the revenuecat control panel when integrated correctly? For example when browsing a user profile on https://app.revenuecat.com/customers/x/x. Currently it is not showing up despite us sending up the id using let instanceID = Analytics.appInstanceID()Purchases.shared.setAttributes(["$firebaseAppInstanceId": instanceID])Would be really helpful to know if it should be visible there if the integration is correct.Best,Oskar
Hey guys,I’ve followed the docs on how to integrate Stripe with RC, however something doesn’t seem to be working.I’m receiving the webhook from Stripe for the purchase (customer.subscription event).I’m trying to use the https://api.revenuecat.com/v1/receipts endpoint in order to sync Stripe and RC, however I keep getting {"code":7103,"message":"The receipt is not valid."}I’ve went over each and every ID field on Stripe’s webhook, and got the same message for all of them.What am I missing here?Thanks!
Hi, I’m trying to send TEST Event to my newly created server with ssl certificate activated. But, I always see this error It wasn't possible to connect, are you sure the URL is correct? But, I can access the endpoint using Post Man without any issue. Please, advice what should I do to diagnose this error. Any help is appreciated. Thanks, JA
fetchoffering() is able to fetch the in app products but not able to fetch subscription in android side only. Error logs :- Empty offeringserror log :- DEBUG(32279): ℹ️ API request started: GET /subscribers/6273eb4bda327c735a4b20de D/[Purchases] - DEBUG(32279): ℹ️ API request completed with status: GET /subscribers/6273eb4bda327c735a4b20de 304 D/[Purchases] - DEBUG(32279): ℹ️ PurchaserInfo updated, sending to listener. W/System (32279): ClassLoader referenced unknown path: system/framework/mediatek-cta.jar I/System.out(32279): e:java.lang.ClassNotFoundException: com.mediatek.cta.CtaHttp I/System.out(32279): [OkHttp] sendRequest>> I/System.out(32279): [OkHttp] sendRequest<< D/[Purchases] - DEBUG(32279): ℹ️ API request started: GET /subscribers/6273eb4bda327c735a4b20de/offerings D/[Purchases] - DEBUG(32279): ℹ️ API request completed with status: GET /subscribers/6273eb4bda327c735a4b20de/offerings 304 2 D/[Purchases] - DEBUG(32279): ℹ️ Requesting products from the store with
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.