Discussion and help from anything related to RevenueCat.
Recently active
RevenueCat Support Inquiry: Detecting Active Subscriptions on Shared Store account Before PurchaseContextWe have multiple users with separate accounts in our app using the same device and Store account. We're encountering an issue with subscription management when users share the same Store account.Current Setup- Platform: React Native- SDK: react-native-purchases- RevenueCat Setting: "Keep with original App User ID"- Use Case: Scenario where: - Device has one Store account configured - Multiple users have separate accounts in our app - Each user needs their own subscription, but they share the device (and Store account)The ProblemScenario:1. User A logs into our app with credentials: userA@example.com2. We call Purchases.logIn('userA_12345')3. User A purchases Product X (e.g., Monthly Plan) using Store account: M4. User A logs out5. User B logs into our app with different credentials: userB@example.com6. We call Purchases.logIn('userB_67890')7. User B's customerInfo shows no active
Hello,I have added a new paywall to my app.The problem is I cannot close the paywall with the close button if a video is displayed on the paywall. This is a problem occuring on my app, and on the RevenueCat Mobile app. I have checked that it has the “Navigate Back” optionAlso, if I remove the video from the paywall, the back button works again. Is there something I am missing ?Thank you
I have a Flutter app using RevenueCat and the Meta/Facebook SDK for app events. Currently I am trying to get better results with Meta Ad Campaigns that I want to optimize for Start-Trial conversions. I have heard, that one should use the Facebook SDK to get the best results for event attribution on Meta’s side. However, I also want to use the RevenueCat/Meta integration to send the relevant events.My question is: Can I send the Start-Trial/Subscribe events also from my app without running into double counting issues? The goal being to give Meta more data for event attribution (AEM). If so, how can I make sure Meta is able to do the deduplication? I assume I somehow have to make sure the event from the app and the event from RevenueCat have the same `event_id` parameter.Is there any way to achieve this?
I use product.offer_period_in_days Day Free TrialThis works perfectly on iOSon Android it shows up as**** Day Free Trial How do i fix it? On the play store I have a properly configured subscription base plan with a free trial offer attached to itI would hardcode it, but I have a yearly and monthly option and I can’t see a way to do that in the web paywall UI
I want to remove a subscription from sale on apple. What would be the consequences of removing the subscription for users that are already subscribed on IOS on revenuecat ?WIll they lose their subscriptions ? Will users be immediately refunded? If a users subscription ends, will they need to resubscribe to a package or they would be automatically upgraded to a new subscription?Also is there an instance where once we remove the subscription from sale, Users will still maintain their subscription till it ends?
Hi everyone,We are preparing to launch an app using RevenueCat and Apple Offer Codes for an affiliate marketing campaign.My Goal: Set up unique Custom Codes for various KOLs (influencers). Users redeem these codes for subscription discounts. Track the total redemptions for each specific Custom Code to calculate affiliate payouts. The Dilemma: I am aware that Apple's Receipt Data/StoreKit doesn't return the actual Custom Code string, only the Offer Reference Name. However, Apple limits us to 10 active Offers per subscription, which isn't enough for our influencer list if each influencer requires a unique Reference Name.According to Apple's documentation on the Subscription Offer Redemption Report, the report fields include "Offer Reference Name", "Offer Code", and "Number of Redemptions".For those who have used Custom Codes in production: Does this specific report break down redemptions by each unique Custom Code string (the actual code users type), or does it aggregate everything u
Hi,I’m trying to add Revenuecat web billing on my website gpx.tours, but the “Google Pay” button is not showing in the Express checkout of my paywall. Here’s what my paywall looks like in Revenuecat dashboard: The Express Checkout in the setup of my paywall in Revenuecat dashboardIt is working in dev: This is what the paywall looks like in devHowever, in Vercel preview, the Google Play button is replaced with a “Pay now” button. Redemption links are disabled The Vercel preview domain is added in StripeBottom line: is it even possible to add a Google Pay button in the paywall on web?Would appreciate your feedback.Thx!
We are having an issue from Sandbox webhook events, where the lookup on API for active_entitlements is [], instead of active.The request body to the webhook looks like (note environment :SANDBOX):{ "api_version": "1.0", "event": { "aliases": [ "my_user_id" ], "app_id": "app_id", "app_user_id": "my_user_id", "commission_percentage": 0.15, "country_code": "US", "currency": "USD", "entitlement_id": null, "entitlement_ids": null, "environment": "SANDBOX", "event_timestamp_ms": 1771460315227, "expiration_at_ms": 1771542723000, "id": "1653F954-2771-4656-8265-B13A9371F9D5", "is_family_share": false, "metadata": null, "offer_code": null, "original_app_user_id": "my_user_id", "original_transaction_id": "2000001123561347", "period_type": "NORMAL", "presented_offering_id": null, "price": 20, "price_in_purchased_currency": 20, "product_id": "ios_monthly_dancer_2000", "purchased_at_ms": 1771456323000, "renewal_number"
Hello,I am on the RC UI, and I try to extend the free trial period of a user (customer satisfaction thing). The user is currently in a free trial period. When I click “Extend subscription”, I get a small toast message saying ”Could not extend the subscription” The web console gave me the reason for this:code: 7970message: "Received an error from Apple. Environment: PRODUCTION Code: 4030004 Message: Forbidden - subscription state ineligible for extension."So, it seems that one cannot extend the free trial on App Store (sorry if it’s obvious, I am learning a lot these days). Apple documentation. Therefore, my question is: what would you suggest me to do with this user? He couldn’t properly use his free trial for 3 days, and I would like to let him properly able to test the app before deciding he should purchase or not.
Hi everyone,I am setting up a Paywall using the RevenueCat Paywall Editor and having trouble with the Purchase Button text logic.My Goal: Weekly Plan (has trial): Button should say "Start [Duration] Free Trial" Yearly Plan (no trial): Button should say "Unlock Full Access" The Issue: I have configured the "Introductory Offer" field in the editor with the text: Start {{ product.offer_period_in_days }} Free Trial.When I select the Weekly package, it works correctly (e.g., "Start 3 Free Trial"). However, when I select the Yearly package—which does not have a free trial—the button does not fall back to the standard text. Instead, it displays "Start 365 Free Trial".It seems like the variable is picking up the subscription duration (365 days) as an offer, or the Paywall thinks my Yearly plan has an offer attached.My Questions: Is {{ product.offer_period_in_days }} the correct variable to use to ensure it stays empty/null for non-trial packages? How can I force the Paywall to display the
Hey, I implemented a webfunnel with NextJS. One step is a RC paywall, using the revenuecat js sdk. There is an issue with 3D secure.When a user completes the step, the 3DS bank verification return URL opens the domain root instead of the page where the paywall was initiated. For the user this breaks the flow. Instead of seeing the paywall success screen and after that the screen to download the app, they are being sent to our home page. The original tab stays open, but nobody understands that because they just see the home page. That means the paywall is not usable for anyone using 3d secure.How do I configure the correct return URL for Web Billing? This should be an option in the sdk when presenting the paywall.We use Web Billing with Stripe.Edit: To clarify: This works well with the Stripe Test Card with 3DS. The issue is the banking app of a real card we test this with opens the site root in a new tab.
I have set up RC’s Paywall using a template. The paywall is showing me the correct amount for the Subscription but the wrong currency.Its supposed to be showing me £ but its showing me $. When i click subscribe apples paywall is showing me correctly £2.99. Paywall shows $2.99.I have checked and tried everything, My apps platform is Lovable and Despia is the wrapper who integrate the SDK. The issue isnt apple as their price is showing correctly. And another odd thing is, when i tried the variable for currency symbol on its own it displayed £. but the product.price variable isnt localizing. RC support ticket is being slow in response as i think its a holiday in the USA, someone please reach out.P.s - The app is tested in sandbox flight test currently
Hi. I am configuring Firebase Integration for our multiplatform app (android, ios, web)Firebase integration is working correctly for our Android and iOS users, but we have issues with RC Web Billing transations. We are not seeing any events for Web transations in Firebase Integration events section (bottom of the page).In Android and iOS we are setting the Firebase App Instance ID in the $firebaseAppInstanceId attribute for the userIn Web version we are setting the Google Analytics Client ID in the $firebaseAppInstanceId attribute for the user.I can confirm 100% that we are setting the attribute for the user before the subscription event and there is no race condition.I see the transation in Customer History, so is the Firebase Integration that is just ignoring the eventThe only difference I see in the customer history event data between working mobile events and not working web events is the store:{ [...] "store": "RC_BILLING", [...]}I am not 100% sure that is correct to set the go
The Carousel component has an "Open on" property in the dashboard that sets which page displays first. We'd like the ability to override this at runtime when presenting the paywall programmatically.Use caseWe have different entry points in our app that correspond to different features shown on different carousel pages. When a user taps on a specific feature’s CTA, we want to present the paywall with the carousel pre-scrolled to the relevant page, rather than always starting on the dashboard-configured default.Desired behaviorA new runtime parameter (e.g., `initialCarouselPage` or `carouselStartIndex`) passed when presenting the paywall The carousel renders starting on the specified page/index If the parameter is omitted or out of range, fall back to the dashboard-configured "Open on" value Supported on both iOS and Android SDKs
Hoping someone can offer some insight! I am using WebToNative to wrap my web app (built on Base44) into a native iOS app. I added code to expose RevenueCat functions through the WebToNative bridge but when testing the build in TestFlight, the paywall (my own custom paywall) does not appear at all. The logs show that “WTN RevenueCat not available”. Does anyone have similar experience with the path I’ve chosen to take?
In the KMP sdk, Price.formatted is showing USD instead of $ on iOS. However, on Android is shows $ as expected. This behaviour is inconsistent and doesn’t match the docsexpected: “$4.99” android: “$4.99” iOS: “USD 4.99”
Although the content fits the height, the paywall container creates insane height and I can scroll extremely far down where im not seeing any of my content. It looks normal in my app, but it seems to be a bug in the preview/preset. since its always happening for this preset and not others
I'm trying to setup retention offers in the Customer Center with this logic:If customer is canceling Active Product X, then offer Product Y Where each product is a different subscription in the App Store with different price points. However, when trying to save this configuration in the Customer Center editor I get the error “Store offer identifier is required for Product Y offer.” I’m not clear on why RC is requiring that I use a promotional offer when all I’m trying to do is offer the customer an entirely different product (subscription) as that is the offer itself. What am I missing here? Is what I’m trying to do bad and not a best practice? My rational is that we already offer Product Y as the back-up offer in our new user onboarding in the Exit Offer, when the user declines our primary product, and so I’d like to do the same here. FWIW, My Product Y, the fallback offer is an annual subscription price at $41.99 that is discounted relative to the default Product X. I understand that
Can we process in-app payments through RevenueCat’s Web SDK?Our app is a React-based PWA distributed on the App Store, Google Play, and the web. Because the core experience runs in a web runtime, we’re looking for the best way to handle in-app purchases for the iOS/Android store builds while keeping a largely shared TypeScript codebase.Does RevenueCat’s Web SDK support this scenario? Any recommendations for a cross-platform setup?
Everything should be good to go and yet it isn’t. The app has subscriptions set up both in app store connect and revenue cat and it seems everything matches. The app is also our default app in revenue cat so it is not hitting the wrong app. The screenshot is from testflight so no its not a storekit issue or sandbox issue (both of which are presumably fixed just by being on test flight. In the past for a different app I’m pretty sure I had this working on a regular dev client on my phone no test flight no storekit config no nothing. What is causing the issue? We had done very little set up we hadn’t set up a bank acc then so why would that be the issue now and why would that matter for fake money.
Hey, we have a flutter app for iOS that uses the RC SDK. I now want to build web funnels using RC Web Billing. In the app settings we have a button to “manage your subscription”. I’m wondering what that means for users who purchased a subscription via Web Billing.As I understand, they also have the entitlement (if set up correctly) and the flutter sdk knows about the subscription Can they cancel / change their subscription in Customer Center? If not, what will be displayed for them in Customer Center? Should we then disable the link for them? And how do I do that? Is there a flag available in the customer data I can use to disable the link?Thanks
We have a user who gets false for “canMakePayments()”, and we want to be able to tell the user why. Their device is a Realme Note 60x. They are in Spain. We tried creating a spanish Google account and use VPN and other ways to try to force google play to be in Spain. We also tried Google Billing Lab - with all our tests we got canMakePayments true. She is added to license testing in Google Play and Spain is targeted with its own EUR price, so the Google Play setup looks correct. She has only one Google account tied to that device, so it’s not account mismatch.She did not have any payment methods added - which I thought would be why she is getting false for canMakePayments(), but our fresh new account doesn’t have any either and we get a true.What is weird that after she added a payment method AND installed a new version of the app (payment flow, library version unchanged, the only addition was some extra logging) - it started working for her.This leads me to believe that canMakePayment
Which most of the apps are showing app icons correctly, but my https://verified.revenuecat.com/vahanpro, doesn’t show app icon at all. I have configured App store and Play Store creds correctly, like other apps, but still it wont come up.Even my verified link(above) doesn’t show App Store link, when App store app is live and working correctly.Please Help!Thanks in advance.
Hi everybody,iOS dev here with my first App Store submission (hard-paywall screen time app). Initial rejection was for 3 issues I fixed (all metadata related like missing Privacy & TOS link in app description). Anyway, the main subscription problem: My 2 desired subs were originally "Developer Action Needed" (apparently because the generic "Premium access" name was rejected) So, I fixed names -> "ThirstTrapp Annual Access" + "ThirstTrapp Weekly Access" Now both are "Waiting for Review" after I saved them from Subscriptions page Current blocker:When creating new app build (with fixed metadata) -> try to add "In-App Purchases and Subscriptions": Dialog only shows my 2 older "Ready to Submit" subs (not the 2 new ones I actually want) Can't attach the "Waiting for Review" ones = can't submit app with correct subs Screenshots of the issue:[Subscriptions page - desired ones stuck "Waiting for Review"][App version IAP dialog - only shows old subs] What I've tried: Waited 2+
Is it possible to force the orientation of a paywall/offering using the metadata JSON object? I want to force portrait mode for the paywall if possible. Cheers!
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.