Get help with webhooks, third-party integrations, and attribution providers.
Recently active
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
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.
Hello,Despite deleting everything and trying it twice from scratch following this doc, we keep getting this error:Your Google service account credentials do not have permission to create a Google Cloud Pub/Sub topic. We have done everything by the books, I have no idea, why this doesn’t work. Any ideas, please?Thanks,
I’ve been trying all day to install the RevenueCat extension, but no luck. This is the error I’m getting:; RESOURCE_ERROR at /deployments/firebase-ext-firestore-revenuecat-purchases/resources/handler: {"ResourceType":"gcp-types/cloudfunctions-v1:projects.locations.functions","ResourceErrorCode":"400","ResourceErrorMessage":"Gen1 operation for function projects/f1-live-pulse-27147/locations/us-central1/functions/ext-firestore-revenuecat-purchases-handler failed: Build failed: npm error code EUSAGE\nnpm error\nnpm error `npm ci` can only install packages when your package.json and package-lock.json or npm-shrinkwrap.json are in sync. Please update your lock file with `npm install` before continuing.\nnpm error\nnpm error Invalid: lock file's long@5.2.3 does not satisfy long@5.2.4\nnpm error Invalid: lock file's long@5.2.3 does not satisfy long@5.2.4\nnpm error Invalid: lock file's long@5.2.3 does not satisfy long@5.2.4\nnpm error\nnpm error Clean install a project\nnpm error\nnpm error U
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 am attempting to keep my database up to date with my users’ subscription states via RevenueCat’s webhooks. When my server receives an event from RC, it extracts the `app_user_id` and immediately hits the /subscribers API endpoint to fetch the new subscription info for that user and save it to my database. This seems to be working for new subscriptions, renewals, and cancellations.I am running into an issue with the `TRANSFER` event type, however. I can trigger this event by logging out one of my users, logging into a new account, and restoring purchases. The Apple ID remains the same throughout, and I correctly log in/out to the Purchases SDK at the correct times, so RC (correctly) transfers the entitlements over to the new user ID.I receive the `TRANSFER` event via webhook, and handle it as a special case. Instead of simply extracting and refreshing the `app_user_id` (which isn’t present), I check the user IDs in `transferred_from` and `transferred_to`. The user IDs are then sent as
Hi RevenueCat Support Team,I’ve recently integrated the Meta Ads integration as per your documentation and triggered several purchase events while running the app in development mode. However, I’m not seeing any indication that these events are being sent to Meta—neither in the RevenueCat dashboard nor on Meta’s side.A few additional details: I haven’t implemented the ATT prompt yet, so users have not granted tracking permission. From the docs, it appears that the IDFA is optional and RevenueCat should still be able to forward events without it. The app is using RevenueCat’s anonymous ID and I’ve verified that purchases are correctly being tracked in the RevenueCat dashboard.Could you help clarify:Are events from development builds or sandbox purchases forwarded to Meta Ads? Is ATT permission mandatory for Meta Ads event forwarding in practice, even if IDFA is optional? Are there any known limitations or delays when viewing these events in the dashboard or Meta Events Manager?Let me kn
I have integrated CleverTap and set the Account ID And Passcode correctly but when I checked so all subscription events are in retrying status or fail. I have sent the events by https://api.clevertap.com/1/upload and all sent success. How can I resolve this case?
Hello, I’m getting credentials issue with google play store in my flutter app. I created them about 5 days ago so more than 36h has passed. Also I creted other credentials but couldnt get it to work neither. DEBUG(19728): ℹ️ API request started: POST /receiptsD/[Purchases] - DEBUG(19728): ℹ️ API request completed with status: POST /receipts 503E/[Purchases] - ERROR(19728): 🤖‼️ There was a credentials issue. Check the underlying error for more details.I/flutter (19728): ERRORI/flutter (19728): 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)
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.
This is a technical question for the revenue cat suppourt team.Please have a look into my account. I configured the webhook in my dashboard and verified that the test webhook is working which it does.Beyond that no, webhook events are sent to my server at all. I configured the sandbox testing in google which works well. The events are properly shown in the customer profile. But the webhooks are just not triggered.Here an example for an event that never triggered a webhook: { "app_id": "appbf2ba432f2", "app_user_id": "e54178d1-0ba0-4f52-b768-8b16da7ec516", "country_code": "DE", "currency": "EUR", "entitlement_ids": null, "environment": "SANDBOX", "event_timestamp_ms": 1660003974081, "expiration_at_ms": 1660004387520, "is_family_share": false, "is_trial_conversion": false, "offer_code": null, "price": 8.130577688229488, "price_in_purchased_currency": 7.99, "product_id": "pro_monthly", "purchased_at_ms": 1660004087520, "store": "PLAY_STORE", "takehome_percentage": 0.85,
Hi all, looking to use the Revenue Cat API to dynamically set the price of a subscription within my app - looking at the API docs I’m struggling to find a way to make a GET request with either a UserId or SubscriptionId to get the price of a subscription. Is there a way to do this currently, and if so - how?
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?
Hi there! When we first set up Stripe subscriptions, we verified that they appear in Segment, but now no events are appearing in Segment. Could it be due to the fact that we’re using a coupon / free trial setup (whereas our initial tests did not use coupons)? Why are Stripe free trial events showing up in RevenueCat (as $0.00 purchases) but not in Segment? This is incredibly important for our business analytics, and I was very surprised to see that it isn’t working as expected.
I'm using revenuecat with paddle integration, I would like to implement a subscription downgrade logic that calls the paddle API since revenuecat doesn't support paddle subscription upgrade/downgrades through its sdks (I have already asked about this on github months ago without any answer https://github.com/RevenueCat/purchases-js/issues/182#issuecomment-3519530263).I was wandering if I make a PATCH request to https://api.paddle.com/subscriptions/{subscription_id} (check https://developer.paddle.com/build/subscriptions/replace-products-prices-upgrade-downgrade) with full_next_billing_period proration mode to downgrade, what webhooks revenuecat will trigger. And also, will revenuecat immediately change the user entitlement or wait until the current period ends since the user is only charged at the end of the current period with full_next_billing_period.Basically, does revenuecat rely on paddle subscription state or transactions or both to manage entitlements/revenuecat customer subscri
In linked post, the answer to this question remained unclarified, I would basically like to ask for a follow up on that question:The `store_transaction_id` in CustomerInfo of v1 REST API , is it the unchanging ORIGINAL transaction ID for all platforms? Or does it change after renewals?
Here is the situation I’d like help with:User is on iOS 14.5+ User does NOT accept ATT prompt - i.e. IDFA is not provided. The goal: Run facebook ads to maximize the number of purchasing users or to maximize the value of users subscribing to the app.If the user does not accept the ATT prompt, in that case facebook uses Apple’s SKAdnetwork for attribution.Does the Facebook Ads Integration in Revenuecat work for users who do not accept the ATT prompt - i.e. will Facebook be able to attribute purchase events to the correct campaign? I don’t think this would work, since I believe SKAdnetwork only works with local events in the app, not server to server events such as this Facebook Ads Integration. I believe that in order to be able to optimize Facebook ads for this use case, we need to track the events we want to optimize for (i.e. start trial / purchase events) locally in the app, then correctly configure the conversion values for SKAdnetwork and not send server to server events such as v
Hi there!We encountered a peculiar situation with the SUBSCRIPTION_EXTENDED event (PlayStore). Here's the user flow:2024/03/15: The user subscribes (INITIAL_PURCHASE) with an expiration date of 2024/03/22. 2024/03/22: The subscription is extended (SUBSCRIPTION_EXTENDED) to a new expiration date of 2024/03/23. 2024/03/23: A grace period begins due to a BILLING_ISSUE/CANCELLATION, with a new expiration date set for 2024/04/06. 2024/03/25: The subscription expires (EXPIRATION), with an expiration date of 2024/03/22.However, the /subscribers/${userId} REST API method began returning an expiration date of 2024/04/06 after the third step and didn't update beyond that. Given these events, when did the user lose their entitlement?Was it on 2024/03/25, after the EXPIRATION event? Or on 2024/04/06, after the grace period ended?If the entitlement was lost after the EXPIRATION event, why does the REST API continue to report 2024/04/06 as the expiration date?
I’m trying to setup Real Time Developer Notifications, but keep getting a 400 error every time I click the button. Not sure if this is related to the switch from Apps to Projects.
I’ve just installed the Firebase Extension and I see it on Google Functions page but the runtime version has a warning: Node.js 14 will be deprecated on Jan 30, 2024. Please update this function using the latest runtime version available.Any idea how to update it to the latest or min suggested version?
Hey everyone,I’m trying to run Meta paid ads to promote an iOS app, with the primary objective of maximizing for the Start Trial / Subscribe event. I've been struggling with missing signals and could use some advice on the current best practices.Here is what I’ve tried so far: Meta SDK + ATT prompt only: Not working well. I'm seeing way too many missing Free Trial/Subscription signals from the ad campaigns. Meta SDK + RevenueCat + ATT prompt (Pending): RevenueCat does use Meta's CAPI. I am still waiting on Apple App Review to see the outcome of this setup. The Core Dilemma:RevenueCat strongly recommend turning off "Log In-App Events Automatically" to avoid double-counting revenue when sending server-to-server data back to Meta.However, I recently readhttps://www.reddit.com/r/FacebookAds/comments/1mpaecw/implementing_skan_along_side_the_meta_ads/that raised a major concern: If we rely strictly on server-to-server data (RevenueCat to Meta), SKAdNetwork (SKAN) will not be able to get th
Hi, Any update on changing the timestamps you’re sending to Customer.io via the direct integration from ISO to Epoch? I asked in this post before: Customer.io doesn’t run on ISO, they use Epoch. As it stands, this integration isn’t very useful (the most important piece of data that I need in Customerio is the user’s expiration date!).
I have integrated RevenueCat webhooks with my backend. However, when I receive a webhook event, the response does not include the subscription ID. This makes it difficult to fetch subscription details using the API.Even in RevenueCat’s documentation, the sample webhook response does not contain a subscription ID. How can I reliably obtain the subscription ID from the webhook response to make an API call for subscription details?Any guidance or best practices would be appreciated!
Hello,Unfortunately documentation page https://www.revenuecat.com/docs/firebase-integration provides only client-side authorization check getAuth().currentUser.getIdTokenResult() .then((idTokenResult) => { // Confirm the user has a premium entitlement. if (!!idTokenResult.claims.activeEntitlements.includes("premium")) { // Show premium UI. showPremiumUI(); } else { // Show regular user UI. showFreeUI(); } }) .catch((error) => { console.log(error); }); It won’t prevent me to write code accessing Firestore with expired subscription. Can you please provide some examples / design patterns / best practices for server side? For example, Cloud Firestore Rules which check subscription status, or maybe cloud functions? Hard to guess ;)
Hello,I integrated the FB SDK according to your documents and after the release I did not see AppInstall events in the FB Console.I assume this is because I disabled automatic FB event tracking and all RC sends is subscription events.I can't use the AppActivate event because it can't be related to ad campaigns.Can you explain if I might have made a mistake somewhere when linking FB and RC.
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.