Get help with webhooks, third-party integrations, and attribution providers.
Recently active
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.
I am trying to prepare an import script for adding our one-time (i.e. Lifetime) historically purchases from Stripe into RC. I am able to successfully use the API to create annual subscription but have not figured out how to get passed the "{"code":7103,"message":"The receipt is not valid."}" error I keep getting for my one-time purchase query. I am using the Stripe checkout key at the fetch_token and Postman to get test the syntax structure first. Here's my code:header 'Accept: application/json'header 'Authorization: Bearer [stripe_secret_key]'header 'Content-Type: application/json'header 'X-Platform: stripe'{"product_id": "prod_HMezcIkru867vf","price": 99.99,"currency": "USD","is_restore": "false","app_user_id": "ZOVwTCYttQagvnO0ALT7vhmoYWf2","fetch_token": "ch_3K8UhVEwxMCNONa5180XDbh7","introductory_price": 49.99}
We are able to list and purchase the subscriptions but revenue cat can not handle the subscriptions.2022-11-08 21:34:30.510 12259-12372 [Purchases] - WARN W ⚠️ Unable to start a network connection due to a network configuration issue: https://api.revenuecat.com/v1/receipts2022-11-08 21:34:30.510 12259-12372 [Purchases] - DEBUG D ℹ️ API request started: POST /receipts2022-11-08 21:34:30.514 12259-12372 [Purchases] - DEBUG D ℹ️ API request completed with status: POST /receipts 5212022-11-08 21:34:30.515 12259-12372 [Purchases] - ERROR E 🤖‼️ There was a credentials issue. Check the underlying error for more details.
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 am testing revenueCat webhooks, and the webhooks can send events our server, but it is always display “empty” response body on dashboard, not matter what response text from server, as following:How can I get our server response text to show on revenueCat dashboard?
My app backend needs to add balance to my user’s account for each new subscription purchase, what is the delay before a new subscription is sent to my configured webhook?
Hi RevenueCat team,I’m experiencing an issue with the Paddle integration when using Web Purchase Links.I’m trying to set up RevenueCat payments through Paddle for my Flutter Web and Flutter Windows apps.When I use the option “Use autogenerated user IDs”, the purchase completes successfully (checkout opens, payment is processed, user is redirected back to the Web Purchase Link page, and it says “You can close this window”).However, in RevenueCat, the purchase is assigned to a new anonymous user, not to the correct App User ID.The Web Purchase Link includes my user ID in the URL, for example:https://pay.rev.cat/XXXX/{app_user_id} When I switch to “Use a custom field”, the problem is that it’s unclear how to properly pass my App User ID through the Web Purchase Link.If I try using the field name rc_user_id (which seems to be RevenueCat adds automatically), the user mapping works correctly — but then the “transaction complete” event never fires, and the Web Purchase Link page gets stuck on
Hi RevenueCat team,I'm running into several webhook limitations while trying to set up proper environment separation for my project. I have 6 apps in one project:Dev iOS Dev Android Preview iOS Preview Android Production iOS Production AndroidDev, Prev, and Prod have their own backend and Webhook Url.Problems I'm facing: Can't select multiple specific apps - When creating a webhook, I can only choose "All Apps" or a single app. There's no way to select just "Dev iOS + Dev Android" for a single webhook. Why is this not possible? I don’t understand it... Each webhook URL can only be used once - If I try to create two separate webhooks (one for Dev iOS, one for Dev Android) pointing to the same backend URL (https://my-dev.supabase.co/webhook), I get an error that the URL is already in use. Maximum 5 webhooks per project - Even when I work around the above issues by adding query parameters to make URLs unique (e.g., ?env=dev&platform=ios), I can only create 5 webhooks but I need 6
Hi, I recently moved away from Stripe on the web, the main reason being that Stripe is not a merchant of record. I think Lemon Squeezy is the most popular alternative that is a merchant of record.Are there any plans of adding support for Lemon Squeezy as a payment alternative for the web?
HelloI'm looking to introduce "prepaid" or "non-renewing subscriptions" for my app. I plan to start by adding this option to our website. To implement this, I’m creating one-time payment products for the following durations: 1 month, 3 months, and 12 months.So far, everything is set up on the website side. However, I’m facing a challenge when it comes to informing RevenueCat that these one-time payment products should have a fixed duration. For instance, I need to configure the 3-month product to grant access for exactly 3 months and the 12-month product for 12 months.Does anyone know if this is possible in RevenueCat? If so, what would be the best approach to set this up?Any insights or guidance would be greatly appreciated!Thanks in advance!
Hey! Is there any way to have discord webhook compatible with Revenuecat? There is an integration with Slack, but regular Webhook in rc and discord does not work together. Any ideas what to do to connect discord?
How can I get raw data about my receipts?
Info: Whole Backend = Firebase.That includes, Auth system, DB, Functions, Extensions etc.In the app, I have let's say an account with User 'X' with userId 'xid'. X makes a purchase through the RevenueCat SDK and it sends out webhooks that writes database entries in Firebase with the necessary User details, purchases and entitlements.I read these entitlements entries in the DB and unlock features within the App. Here in lies the dilemma.Let's say User 'X' has purchased a monthly subscription. Webhooks and Firebase Integration will give me the DB entries I need to do my unlocking features.All good so far. Now user 'X' has decided to delete their account having the userId 'xid' from the App. All good so far. Bear in mind that subscription is still active in Playstore/Appstore.Now user 'X' decides to create a new account again in the App. User 'X' now ends up with a new UserId of 'yid'. User 'X' now presses the 'Restore Purchases' button which calls "Purchases.restorePurchases()" function
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"
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’ve properly installed RevenueCat in Flutter and connected Play Store and App Store properly in the dashboard. I’m still getting these error.D/[Purchases] - DEBUG( 6650): ℹ️ Debug logging enabledD/[Purchases] - DEBUG( 6650): ℹ️ SDK Version - 4.6.0D/[Purchases] - DEBUG( 6650): 👤 Initial App User ID - nullD/[Purchases] - DEBUG( 6650): 👤 Identifying App User ID: $RCAnonymousID:538da561a80b40f4a23aa08aa6709f83D/[Purchases] - DEBUG( 6650): ℹ️ Deleting old synced subscriber attributes that don't belong to $RCAnonymousID:538da561a80b40f4a23aa08aa6709f83D/[Purchases] - DEBUG( 6650): ℹ️ App foregroundedD/[Purchases] - DEBUG( 6650): ℹ️ PurchaserInfo cache is stale, updating from network in foreground.D/[Purchases] - DEBUG( 6650): ℹ️ Offerings cache is stale, updating from network in foregroundD/[Purchases] - DEBUG( 6650): 😻 Offerings updated from network.D/[Purchases] - DEBUG( 6650): ℹ️ Skipping updating pending purchase queue since BillingClient is not connected yet.D/[Purchases] - DEBUG( 6
Connection failed!We couldn't establish a link to the App Store. The App Store Connect API credentials are not valid or do not have sufficient permissions to list apps. Make sure the key has at least the App Manager role.I keep on getting this error and I 100% put everything in the right way. And I'm not sure why.
Hi,I’m using the direct integration between RC and Customerio. For the expiration_at parameter, RC sends an ISO timestamp. However! Customerio only uses Epoch (specifically in seconds–not milliseconds). Please change the integration such that the timestamp for expiration_at is an Epoch timestamp in seconds. Otherwise, this integration isn’t very useful (the most important piece of data that I need in Customerio is the user’s expiration date!).I mentioned this to @Jacob Eiting at RAGA and he was grateful for the feedback.cc @Brennan I’m #34 in the leaderboard here! Most people above me are RC staff. Thanks! Toby
I have tried to integrate to integrate RevenueCat and AppsFlyer in my iOS. I followed the instruction. Configure AppsFlyer SDK frist, then RevenueCat and set required attributes. In Sandbox env, I see the transaction with AppsFlyerID attributes. Status of AppsFlyer integration is “Active”.However it doesn’t show any event. Also there is no log which can help to identify the issue. I perform the testing on simulator and also on real device. Please let me know if there is any step I missed.
HI folks, Ive deployed my app to production for apple review. But my paywall doesn't seem to work in TestFlight, I made the integration with RC and AppStore connect and all other things linked. But when you click Start Free trail nothing happens. Im using replit to build the app , which included the paywall, so I don't have a separate paywall in RC. Any thoughts on what can cause the issue?
I'd like to request support for Airwallex as a payment gateway / billing provider for RevenueCat's Web Billing (alongside Stripe and Paddle).Why this matters:Airwallex is widely used in Vietnam and across Southeast Asia, where Stripe availability and local payment method coverage are limited. It offers strong support for local payment methods and multi-currency settlement that are important for our market. Currently, needing Stripe or Paddle is a blocker for teams like ours who already run our web payments through Airwallex.Use case:We sell web subscriptions and want to use RevenueCat's paywalls, customer portal, and cross-platform entitlements — but process payments through our existing Airwallex account.Impact:This would let developers in underserved regions adopt RevenueCat Web Billing without switching payment processors.Thanks for considering!
Hi RevenueCat Team,I am using the RC sdk in my flutter app and I am using RC META integration to report purchases/start trial ...etc, events to META.I’ve set up the Meta integration in my RevenueCat project to report purchases to Meta and optimize ad campaigns. I noticed that the payload RevenueCat sends to Meta includes the entry:"action_source": "website" However, I need this to be set as "action_source": "app".My question is: is there a way to update or customize the payload sent from RevenueCat to Meta?Currently, because the action source is set as “website,” I have to create a Custom Conversion in Meta and select “Website” as the Action Source. This, however, requires filling out the Rules section with URL keywords, which doesn’t apply in my case.It would be great if there’s a way to adjust the payload so the events are properly recognized as app events on Meta.Or additionaly, can you explain how to use events sent from RC to create and optimize ad campaigns in meta?Thanks for you
I setup the Revenue Cat Stripe SDK about 9 months ago when it was a “testing” environment in Stripe. Now I migrated it to their “sandbox”. None of the products I setup inside Stripe show up, but the production purchases are still valid as `rc_product_identifier` inside the transaction. And now, in my dev environment, when i `Purchases.getSharedInstance().getOfferings();` the offerings are not found...So I added 2 products in my sandbox. My offerings are still empty. What changed in this new Sandbox environment that caused products to not migrate over?Do we still NEED to have a product listed in Stripe?Is the documentation for the Web SDK correct still for Products & Sanbox configuration?
Prevously my appsflyerID in revenue cat events integrations would be set to the user ID as I did not set it manually. As of March 25th this stopped happening and the integration is broken as the appsflyer id is required for it to work. Why did the appsflyer IDs stop auto populating?
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.