Discussion and help from anything related to RevenueCat.
Recently active
Hello friends!I have an app that is accompanied by physical products.Today the user buys the physical product (~4USD) from our Shopify store and adds it to their account in app when received via serial number to be used with app functionalities.I would LOVE to offer the physical products as one time in app purchases. No more Shopify and a much better user experience. Dream onboarding would be to download the app, pick monthly subscription for app, pick number of physical items and pay (adds ~4USD/item), then add your postal address in next step of onboarding.Or pick yearly subscription and get physical items for free, then add your postal address in next step of onboarding.And of course have a in app ”Store” where users can order physical items ad hoc. Is this possible with RC?
my dashboard shows that product is linked to an entitlementbut when user goes to purchase a subscription in the API call Purchases.getCustomerInfo()fetches no entitlements corresponding to that order (check below json)"entitlements": {"active": {},"verification": "NOT_REQUESTED","all": {}}Can anyone help me out in this?
I am trying to test some Android entitlement stuff and Sandbox seems broken.If I use an Android simulator:isActive is false on the entitlement I purchased in the sandbox environment no matter what I do. I can re-call getCustomerInfo or any other method and it will always be false. isSandbox is true, dashboard says sub is active. Confirmed anonymous IDs match.If I use a device:CustomerInfo’s entitlement is null when trying to get it with the entitlement ID.I verified that it is supposed to be active in the RevenueCat dashboard, and it is renewing once or twice. But isActive never becomes true, or on a real device it will always return null for all the entitlements.Yes it is the most up-to-date version.The app has been out for an extremely long time, so it’s not something like “sometimes it takes awhile when releasing an app!” All configuration is correct because everything worked fine before and nothing has changed.This was not happening at some point and nothing has changed on my end.T
I am currently trying to implement family sharing by using tabs on the dynamic paywalls but what I noticed is that the selected package does not change based on which tab the user is on. It remains either the default package on paywall load or until they change it. Is there a way to have a default package for each tab? I really could use someone’s help.
Hi RevenueCat team and community! I would like to animate Buy Now button like its breathing. I saw that it encourages users to buy to product but couldn’t find any method. Can you help me with that? Thanks in advance!Have a great day,Han
I have seen some other posts about this, and tried everything I have read up on - but I continue to get this error. Everything in the business section is filled out on app store connect. I have tried and regenerated this a few times. Any suggestions how to fix this is welcomed!
We are using a hybrid approach for our RevenueCat integration: iOS: We use the react-native-purchases SDK for native In-App Purchases. Mobile Web: We provide an option for users to purchase via Stripe Checkout Links directly in a mobile browser (bypassing the native SDK for these specific transactions). The IssueWe are consistently seeing Error 7746 ("This fetch token is currently being ingested") on the initial delivery of Stripe webhooks for these web purchases.Since we are not using the RevenueCat Web SDK to initiate these transactions, we are confused as to why a "fetch token" would already be under ingestion when the webhook arrives.We're seeing subscriptions sync, but the initial 7746 errors force Stripe to rely on retries, causing a delay in granting entitlements. We're not super concerned with this error, but mainly want to confirm that it is expected.Integration Details Webhook URL: https://api.revenuecat.com/v1/incoming-webhooks/stripe/app1280305636 Configuration: "Track
There’s other posts about this. Tried everything I have read up on - but I continue to get this error. Everything in the business section is filled out on app store connect. I have tried and regenerated this a few times. Any help? Thank you!
We'd like an addition to the close button delay feature that gives a visual countdown as follows:1. Counts down for a configurable duration in seconds (not to a target date, like the current countdown component)2. Displays as a numeric second counter inside a circular progress indicator that animates as it depletesUse caseWe use the close button delay to ensure users see our paywall content for a minimum duration before dismissing. However, we want users to see a visual indicator of when the close button will appear, rather than having it appear without warning. The circular progress bar with countdown number gives users a clear signal that the paywall will become dismissible shortly, which we believe reduces frustration and improves the user experience compared to a button that simply appears after an invisible delay.Desired behaviorConfigurable countdown duration in seconds (e.g., 5 seconds) Visual: numeric countdown ("5", "4", "3"...) centered inside a circular progress indicator th
Hi, Is is possible to create a Web Billing product with the API?I saw in the documentation that the create product endpoint doesn’t allow it but maybe there is another way to do it? Also, could you give me more details on the push a product to the store endpoint please?Is it creating a product on the AppStore Connect for example if we’ve created a product on RevenueCat? Thank you for your help! Damien
Hi everyone,I'm using RevenueCat Flutter SDK v9.15.1 and having issues with subscription upgrades and downgrades on Android (Google Play).Setup:- Single subscription ID: `pro_access`- Base plans: `starter_monthly`, `starter_yearly`, `premium_monthly`, `premium_yearly`, `professional_monthly`, `professional_yearly` if (Platform.isAndroid && oldProductId != null && oldProductId.isNotEmpty) { params = PurchaseParams.storeProduct( newProduct, googleProductChangeInfo: GoogleProductChangeInfo( oldProductId, prorationMode: GoogleProrationMode.immediateWithTimeProration, ), );} else { params = PurchaseParams.storeProduct(newProduct);}Questions:1. Should `oldProductId` be passed as `pro_access:starter_monthly` or just `starter_monthly`?2. Is `GoogleReplacementMode.deferred` the correct mode for downgrades?3. Is there anything specific to v9.15.1 that affects `GoogleProductChangeInfo`?Google Play returns a generic error and RevenueCat logs a replacement mode
I have an app with a few subscriptions that I imported into RC. Then my paywall is shown in the app and you can pay through it. Everything working fine. I also have a website for this app where I have a section talking about the subscription but I can’t show the prices since each country has a specific price. How could I solve this? I don’t want user to pay from website, just check the prices.Right now I’m saying “go to the app to check prices” but that’s awful from a marketing PoV.
Our app offers a single subscription, with a monthly and an annual payment plan (in Google Play terms, one subscription with two base plans). Subscribed users can access the whole content of the app without limitations.For better flexibility, we also offer subscribed users to switch the payment plan. Since this is a single subscription, we have to use the WITHOUT_PRORATION replacement mode. We build our purchase params like so: PurchaseParams.Builder(activity, subscriptionOption) .oldProductId(currentSubId) .googleReplacementMode(GoogleReplacementMode.WITHOUT_PRORATION) .build()Here is the problem: When a user is currently running with a subscription that has been restored (via the Purchases.sharedInstance.restorePurchasesWith(onError, onSuccess) method), it is no longer possible to switch the payment plan. For the “Transferring purchases seen on multiple App User IDs” setting, we use “Transfer to new App User ID”.The Play Store shows an error message “Error: We are unable to
As mentioned in the documentation https://www.revenuecat.com/docs/projects/restore-behavior#share-between-app-user-ids-legacy. I am unable to find any configurations available on RC; dashboard. We can choose between other Transfer Options available but not the legacy one.if I use anonymous login it provide new user without any active subscriptions.
On iOS paywallViewControllerWasDismissed is not called when the paywall gets dismissed.There should also be a way to stop the paywall from being automatically dismissed when the user completes a purchase.No SwiftUI. UIKit.Most up-to-date version. My configuration is fine. Testing on device.
Hey folks - hope you’re well. Wondering if anyone else has run into the issue where apparently the app is giving the ask to buy modal to the user but the parent never receives the notification? From what the parent tells me: other apps seem to notify them just fine so doesn’t appear to be an ios version mismatch.As far as I understand holding the payment is the correct step but unsure if in-app purchases (not subscriptions) need a specific set up in app store connect to get this to work? Unsure if I’m missing something obvious here Thanks!
We have the RevenueCat Meta/Facebook integration set up and CAPI events are flowing — we can see "Start trial" (87 events) and "Subscribe" (80 events) in Facebook Events Manager under Conversions API. Client-side Facebook SDK events (ActivateApp, App installs) are also working fine.Issue:Facebook cannot attribute trial starts or subscriptions back to our ad campaigns. In Events Manager, the "iOS 14.5 ATE True Status Rate" shows "No Rate Displayed" with a warning icon.What we're doing in the app before every purchase```// Right before Purchases.shared.purchase(package:)Purchases.shared.attribution.collectDeviceIdentifiers()Purchases.shared.attribution.setFBAnonymousID(metaAnonymousID) // from AppEvents.shared.anonymousIDPurchases.shared.attribution.setMixpanelDistinctID(distinctID)```We also call `collectDeviceIdentifiers()` and `setFBAnonymousID()` earlier during onboarding via `syncRevenueCatIdentifiers()`.For a confirmed test user (ATT authorized):- IDFA: available and valid- FB Anon
As seen in this answer, there’s supposed to be an option to change the Introductory offer text in the text properties but that option is not available for me. How do i enable it? Attached is my version:
I would like to display yearly price next to the monthly price x12 with strikethrough. E.g.:~59.99~ 29.99 RevenueCat is already doing the math for `relative_discount`. Seems like it should be easy to expose the value used in the calculation. Could call it something like `price_before_discount`. This is very common on paywalls and seems like an oversight on RC’s part. There are many other community posts asking for this. E.g. this one
I understand that, as a developer, we should refund via RC dashboard, not Play Console. However, what about when the customer triggers a refund on the Play Store? How can my app detect this? Or will it actually be reflected somehow in the entitlements?
Hi, I really like the beta of RevenueCat Funnels but I need to integrate authentication as part of an onboarding/payment sequence. I’m currently using FunnelFox which has an in-built integration for Firebase Authentication (with Google, Facebook, and Apple auth providers, and providing a popup flow for previews and a redirect flow for production) and I’ve written some script on that page to allow email signups too through Firebase. I can see the beta can link out to my own sign-up page, but I can’t see how to send / receive parameters so I can record Amplitude and RevenueCat user IDs in that sign-up and return an email address to the funnel so that the email field on the paywall page can get automatically filled out. Does RevenueCat Funnels have anything like support for this, or custom Javascript, or access to Amplitude / RevenueCat user ID variables?
Hi,I’m evaluating Virtual Currencies for my mobile apps. My apps do not have a login/account system for users, but I always assign my own UUID as the RevenueCat App User ID instead of using anonymous RevenueCat IDs.My main question is about reinstall behavior.Scenario: user installs app app is initialized with my own UUID-based App User ID user buys virtual currency and has remaining credits user deletes the app user reinstalls the app app may now generate/store a new UUID and use that as a new App User ID in this case in my other premium based apps, I see a message like “Created a new alias …” in the RevenueCat dashboard From the docs, the balance endpoint is:curl --location 'https://api.revenuecat.com/v2/projects/<YOUR_PROJECT_ID>/customers/<YOUR_CUSTOMER_ID>/virtual_currencies' \--header 'Authorization: Bearer sk_***************************'My questions are: If a new App User ID is used after reinstall, and RevenueCat creates an alias, will querying /customer
purchases_flutter: latest in_app_purchase: latest Platform: Android Framework: FlutterProblem: After adding purchases_flutter to a Flutter project that already used in_app_purchase, this call queryProductDetails() freezes indefinitely and never resolves:final ProductDetailsResponse response = await InAppPurchase.instance .queryProductDetails(productIds);
Hi, I’ve seen a few open issue more than a year ago. Can we expect it sometime soon?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.