Discussion and help from anything related to RevenueCat.
Recently active
I am upgrading from Legacy to V2 paywall and am using the React Native Paywall UI component to display my paywall inside a route view. The docs suggest having an `option` Prop passed `displayCloseButton: true` in order to render the close button: <RevenueCatUI.Paywall onDismiss={onPressDown} onPurchaseCompleted={handleContinue} onPurchaseError={handleError} onRestoreCompleted={restoreComplete} options={{ displayCloseButton: true, fontFamily: 'Inter_400Regular', }}/>However, there is no close button visible in my UI anymore. Any suggestions for debugging this?
Hello, I'm trying to purchase an inapp purchase product on production, but it's taking a long time to load. Can someone help? I downloaded my app at https://apps.apple.com/eg/app/sumizeit-daily-book-summaries/id1327646115 and clicked on Upgrade Now. When I tried to buy the monthly in app purchase product, it's taking a long time to show the payment screen. What is going on?
We noticed a weird issue that is happening to some users. When we present the paywall we are using the loaded offerings and if they are not loaded we wait for them to be refreshed. In our code we first fetch customerInfo and then the offerings. By looking at the logs from one of our users call to the customerInfo() never seems to end - it doesn’t return nor throw an error.public func refreshData() async throws { logger.log("Refresh data") try await refreshCustomerInfo() try await refreshProducts()}inside the refreshCustomerInfo() we are logging everything but only Begin refreshing customer info seems to be included in the logs.public func refreshCustomerInfo() async throws { logger.log("Begin refreshing customer info") do { customerInfo = try await purchases.customerInfo() logger.log("Refreshing customer info succeeded. Bought: \(purchased)") } catch let error { logger.error("Refreshing customer info failed", error) throw PurchaseError(erro
I tested fresh version of my app via TestFlight - I opened app from it and purchased yearly subscription.It was my real device and the account was my real account (not a sandbox one).After I made a purchase I don’t know how to cancel it:in the sandbox account section (inside settings → Developer, etc) there is no any subs, because I didn’t purchase from sandbox account in the real Account Settings → Subscriptions there is only my real subs for others app.I see that sandbox purchases still coming to RevenueCat every day (renewals).How to cancel subscription made on real acc in app started from TestFlight? Where else I can check?
https://pub.dev/packages/purchases_flutter/changelog#900 broke restoring some purchases. I’m trying to find a solution for it, so I wanted to ask:Does RevenueCat plan to somehow automatically fix this? I saw this comment mentioning RC working on some permanent fix? Is it possible, with any version of the SDK, to detect which purchases won’t be restored in version 9+ ? If it was, then developers would be able to ship such detection and store user’s info (locally or on server) about their purchases. App could be running with this logic for XXX time, before finally updating to version 9+. It’s not ideal, but it would save a considerable percent of users. AppendixI have an account where I made first ever purchase in my app using https://pub.dev/packages/in_app_purchase. After I migrated to RC, restoring the purchase always worked fine, but stopped after updating to version 9.0. I double checked my git history and I used `buyNonConsumable()` method back then. In RC dashboard the product wa
Hello everyone :)The behavior I describe below happens in open testing.Context:I’m using RevenueCat for subscriptions in my Flutter app.Users must have an account linked to my backend in order to subscribe.That’s why I’m using the option “Keep with original App User ID” in RevenueCat.Since the stores require a “Restore Purchases” button, I added one, and on click I run:final user = await Purchases.restorePurchases(); Problem:Each time I click on my restore purchases button, I get this error:PlatformException(7, There is already another active subscriber using the same receipt., {message: There is already another active subscriber using the same receipt., readableErrorCode: RECEIPT_ALREADY_IN_USE, code: 7, underlyingErrorMessage: There is already another active subscriber using the same receipt., readable_error_code: RECEIPT_ALREADY_IN_USE}, null)Which has no sens because, if the user tries to purchase a subscription, the payment modal does show up, and they can successfully subscribe t
I’ve created a paywall with a “redeem code” button. It has a “Navigate to” “Offer code redemption” action. However, the button doesn’t show up in my app.I’ve added all translations. When adding a plain text label with the same string it shows just fine.Anything I’m missing here?
I was wondering if there is any chance to add a add an endpoint to get the list of all payments (i.e. activities) of a customer? Currently, it’s shown in the dashboard under Customer History box.Checking on the Network tab of my browser, it seems like the data is coming from api.revenuecat.com/internal/v1/developers/me/projects/:project_id/subscribers/:customer_id/activity which is an internal endpoint. So, the data and the formatting is there–It’s just a matter of exposing it as the external API.Is there any chance that it will happen anytime soon? Is this against the rules and Terms of Service to call that internal endpoint programmatically (and occasionally) to get the data for our own internal dashboard?Thanks,
Hi, I am trying to finalise testing my app on TestFlight before submitting, however, my paywall keeps loading non stop after user signs up. I tried the same flow with local development and everything works as expected. What am I doing wrong here? I am using Expo btw.
I set up my products in the RevenueCat dashboard back in 2021. In the changelog for the new Flutter v9 package, it specifically warns:please make sure your one-time purchase products have been correctly configured in the RevenueCat dashboard as either consumable or non-consumable. If they're incorrectly configured as consumables, RevenueCat will consume these purchases. This means that users won't be able to restore them from version 9.0.0 onward I double-checked my “lifetime_no_ads” product, and right now it’s set up as a “Non-renewing Subscription.” But honestly, “Non-consumable” seems like the more accurate choice. This issue only exists on iOS — on Android it’s already set correctly as a non-consumable.So here’s my question: if I switch it from a non-renewing subscription to a non-consumable, will existing customers run into any problems, or should it be a smooth transition?
I am using RevenueCat and Superwall. In Superwall, I open an in-app browser to purchase Stripe products, and then the receipt is submitted to RevenueCat. My question is: if I integrate RevenueCat’s Meta integrations by implementing the Conversions API, will the purchase events be successfully sent to Meta?
Hi,I have a mobile app using the RevenueCat SDK for in-app payments. We recently developed a WebApp where users will be able to sign up and purchase a subscription directly from the web using Web Purchase Links.I’d like to clarify one point: to avoid using Redemption Links, I understand that I need to provide an app_user_id. What’s the best way to create a new RevenueCat customer with an app_user_id directly from my WebApp? Is there an API endpoint or recommended approach for this flow?Thanks for your support!
The latest version of cordova-plugin-purchases 7.x.x includes an upgrade to “Google Play Billing Library 8”.Is this the same library described in the plugin’s home page stating that “Billing Client v7 will be the latest version this SDK will ever support“ and that Google will not allow changes after August 31st 2026.I’m trying to figure out is Google Play Billing Library 8 in the plugin’s release 7.0.0 is the same thing as the Warning message calls “Billing Client” on the plugin’s home page. Thanks
I am trying to set up multiple pricing tiers. For example, I want a paywall that has a toggle to switch between the ‘Plus’ tier and the ‘Pro’ tier. Each tier has an annual and a monthly option. On the paywall page, it only lets me select one offering. But for an offering, I can only assign one product per period (For example, I can only have one product for Apple under the monthly package).Anyways, I want to be able to have the paywall that switches the offering depending on the toggle. Is this possible? How can I achieve this?
We are playing with the idea of introducing an affiliate program that revolves around using offer codes to track purchases. Very much in the same way that you see podcasts doing it by telling their listeners to enter code “PODCAST” to get 10% off, which in turn allows the company to track sales and measure campaign performance. I know that iOS and Android both have offer codes, but I think this type of thing would require a more custom solution. Has anyone done this before? I know we could easily build our own system that generates codes, and let users enter a code in the app, which we verify, then display alternate pricing and tag the user with the offer code. But then we have to figure out the best way to track sales, retention, life time value, refunds, etc. to determine how to pay affiliates. Would we be able to utilize any of the integrations for this purpose? Has anyone done this in combination with a promotional service like https://www.talon.one/?Any insight here would be appre
I am experiencing an issue with my Google Play Store integration. I have successfully configured the service account and uploaded the key as per your documentation. However, the RevenueCat dashboard shows a red "failed" status for "Permissions to call subscriptions API," while the other two APIs are successful.My app is currently live on the Google Play Store, andit seems to be retrieving some subscription information correctly.I have a few questions regarding this issue: Why does this error appear even though the key is uploaded and the service account has the necessary permissions? Is this a common issue, and if so, what could be the root cause? What is the recommended solution? I have already verified the permissions on my Google Play Console and Google Cloud IAM. Could there be a delay in permission propagation? Does RevenueCat consider users who are in their free-trial period as "purchased" users? I am trying to understand if a user in a free trial would be properly reflected
I’m using the flutter SDK.I have a simple screen that loads the current offering, iterates over each availablePackage, and outputs some details about the package.In RevenueCat, the offering has 6 packages, and each package has a subscription product. The products are for a Web Billing provider, and each is clearly configured as a subscription (the billing cycle shows as “Yearly” or “Monthly” on the product page).However, each of the packages has a “nonRecurring” recurrenceMode (via package.storeProduct.defaultOption.fullPricePhase). Shouldn’t that be “infiniteRecurring”?Code for the flutter widget below:import 'package:flutter/material.dart';import 'package:flutter_riverpod/flutter_riverpod.dart';import 'package:purchases_flutter/purchases_flutter.dart';import 'package:pz_common/common/widgets/async_value_widget.dart';import 'package:pz_common/localization/string_hardcoded.dart';import 'package:pz_common/subscription/application/subscription_service.dart';class SubscriptionDebugScreen
For some reason, the `{{ product.price_per_month }}` has a different currency symbol than `{{ product.price }}` Does anyone has an idea how to fix it?
Recently i have seen that lot of renewals from billing retry. These users are like June or July month users. After getting charged these users are asking for refunds and apple is approving it. This is causing issue in total refund rate for us. We already received notice from apple for higher refunds rates. But this issue keep increasing day by day. Anyone can help me in this?
Hello guys I recently installed revenuecat for capacitor to create in app purchase model to get the approval for apple with the subscription topic. both of my products are in the status Waiting for Review and still can’t see into simulator o xcode the modal.. can someone help me or have any example that products in this state can be tested in xcode or simulator?
My app uses credits as consumable in-app purchases. What I want is to restore users' credits after they reinstall the app. Is there a way to maintain the same user ID so that I can use them to restore users' credits in the back-end?
Hi all,I’m testing a retention promotional offer configured in App Store Connect and mapped in RevenueCat Customer Center (React Native SDK). When I go through the cancel subscription flow, Customer Center correctly presents the promotional offer, and I see the native price sheet.After confirming with Face ID, though, the purchase fails and I get the system alert:“Unable to Purchase. Contact the developer.”It looks like this happens right after authentication. From what I understand this might be related to promotional offer signing or configuration.Setup details: RN SDKs: react-native-purchases + react-native-purchases-ui (current versions) Customer Center is showing the offer correctly Promo offer is active in ASC, mapped to the right subscription in RC Using an account with a Live Subscription in product env (Live App Store) Has anyone else run into this error when redeeming a promo from Customer Center?Thanks!
Image changes are not propagating to paywalls in production. This is happening for 3-4 days now across multiple paywalls and multiple test devices (physical and sim). I’ve tried removing the image, republishing, re-adding the image, republishing, but there’s no change to the image content at all. Text changes to the paywall in immediate and working as expected. I’m not sure if it’s related, but I did upgrade to the 5.35.1 iOS SDK last week. I already created a support ticket a couple of days ago, but wanted to raise here in case there was a workaround anyone is aware as this is blocking me from releasing a new subscription option.
Hello,I’m trying to integrate Revenuecat Paywall into my Flutter app and getting an error like below :Xcode build done. 60,5sFailed to build iOS appCould not build the precompiled application for the device.Swift Compiler Error (Xcode): Type 'Bundle' has no member 'module'/Users/username/Desktop/projects/projectname/ios/Pods/RevenueCatUI/RevenueCatUI/Helpers/PaywallData+Default.swift:116:47 Swift Compiler Error (Xcode): Type 'Bundle' has no member 'module'/Users/username/Desktop/projects/projectname/ios/Pods/RevenueCatUI/RevenueCatUI/Helpers/PaywallData+Default.swift:116:762 Error launching application on Mustafa1. Exited (1). On line 116:47 in PaywallData+Default.swift is : static let defaultTemplateBaseURL = Bundle.module.resourceURL ?? Bundle.module.bundleURLSo I changed every module to main and it worked. But I know this is temporarily solution. What should I do or what I’m missing ?
For the life of me I cannot figure this out! I have a year and half of app dev for my app Chip In, everything is tested out perfectly, but this last subscription issue, which is keeping me from going live. I am testing in Sandbox and 100% logging out of my main apple account michael***@gmail.com completely, logging in to the test phone (latest OS) with a new apple test account setup in sandbox test**@chip***. So 100% the phone is not logged in with this first account. No matter what I do, it keeps saying receiptAlreadyInUse when I try to make a purchase of one of my two subscriptions setup in apple. My app connects to PLAID financial and i get billed for daily webhook synchronizing one or more of their banks/credit card accounts. So I can’t just transfer subscriptions to new IDs as they could bounce back and forth between multiple users, while I get charged $$$ in the background from PLAID synchronizing all those accounts with their bank transactions, al though they are effective
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.