Discussion and help from anything related to RevenueCat.
Recently active
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
I setup RevenueCat recently to deal with a subscription IAP for my app. It all works perfectly.I noticed that my consumable & non-consumable IAPs (which were setup years ago and have nothing to do with RC) are also appearing in my transaction reporting. My question is this: Do these transactions count towards the £2,500 per month free usage? And if so does anyone know how to remove them from RC? I tried deleting these products but it complains they have transactions against them. All my ‘checks’ in the apps that users have these consumables/non-consumables are done through Apple Directly, not involving RC.
Hi I’m having the following problem:I cannot add additional fonts to the paywall designer or additional font styles (e.g. bold).I already uploaded a Custom font (Display fair) and it only registered regular and italic.Now I want to add additional styles for this font but besides uploading the fonts and styles and seeing the process bar filling up they are not added.I can also not delete the fonts I already uploaded. What can I do ?
BackgroundI posted an earlier, slightly incoherent ,version of this on the Shipaton livestream discord during the Paddle web payment event, without anyone having time to answer.These ideas may be interesting for anyone debating complex business models and associated payments.Martial arts domainMy app is for clubs and instructors for martial arts (I’m deeply into kung fu and tai chi) & I’m pushing to get it wrapped well enough for Shipaton (unsurprisingly).It will be international from day one and needs to be cross-platform because of SE Asian Android dominance.Whilst initially pitching the idea very much at clubs with members attending in-person, there’s a lot of scope for them to profit more from online sales.DefinitionsThe proposed monetisation model is around teachers and students. Teachers may be associated with a club but, at least for now, “teacher” as a proxy for the club works to, uhh, simplify this.I’m using the term “course” in a very broad sense - it may encompass a sing
Im getting this error:ERROR: 😿‼️ RevenueCat SDK Configuration is not validYour app's Bundle ID 'com.yh.que.watchapp' doesn't match the RevenueCat configuration 'com.yh.que'. This will cause the SDK to not show any products and won't allow users to make purchases. Please update your Bundle ID in either your app or the RevenueCat website to match. In the app store my bundle Id is: com.yh.quemy app bundle id: com.yh.quewatchos: com.yh.que.watchapp if I change the App Bundle ID in the RevenueCat dashboard to “com.yh.que.watchapp” it works however but “In app purchase key configuration” will throw error saying the bundle error doesn’t exist in app store connect. Has anyone faced this problem?Thanks
Hi, I’m currently trying to integrate this APIhttps://www.revenuecat.com/docs/api-v2#tag/Customer/operation/list-subscriptionsIn the response example, it shows `entitlement` with `product` details of that entitlement. But, from my testing, the `product` field is not in the response. I've tried experimenting with `expand` parameter with multiple values, but the `product` field is not showing. Is the documentation wrong? Can you tell me how can I get the `product` details? "entitlements": { "items": [ { "created_at": 1755827296320, "display_name": "Premium", "id": "entl861f....", "lookup_key": "premium", "object": "entitlement", "project_id": "proj8d....." } ], "next_page": null, "object": "list", "url": "https://api.revenuecat.c
Hi all, i’m very new to revenuecat paywall UI. i have implemented it succesfully in my flutter app for android, but i’m failing to use these listeners. onPurchaseStarted onPurchaseCompleted onPurchaseError onRestoreCompleted onRestoreError onDismissWhere do i listen for them? because when i click the restore button on the paywall ui, not is happening.
Context1I have an existing iOS app using RC for subscription and lifetime purchase of Pro features.I am about to roll out a Mac version (part of Shipaton).For both, I would like to implement virtual currencies. This is a long-planned feature to be used to buy content where a portion of the payment would be forwarded to content authors. I’ve implemented most of the local document model including content rights tracking all the way down, was holding off hoping you’d solve the rest for me.I have also considered allowing coins to be used to purchase short-term access to Pro features, for people who hate subs and don’t want to commit to the size of the lifetime purchase.These products (Touchgram) emphasis user privacy and preserve anonymity, requiring accounts only for people who will be submitting content for re-sale. Context2As a separate Shipaton submission, I’m building a Compose Multiplatform app. However, if virtual currencies prove problematic, I think the business model can work wit
I’ve been working with the API and noticed that in several endpoints where active_entitlements or similar objects are returned in a lightweight format, we only get the internal entitlement_id, like this: { "entitlement_id": "entl498b7a7b44", "expires_at": 1755783769000, "object": "customer.active_entitlement"}However, it would be extremely helpful if the lookup_key was included as well in these responses.For example, in:GET /v2/projects/{project_id}/customers/{customer_id}GET /v2/projects/{project_id}/customers/{customer_id}/active_entitlementsWe only get the internal ID, and in order to know which entitlement this refers to (e.g. "Pro", "Premium", etc.), we have to make an additional API call to:GET /v2/projects/{project_id}/entitlements/{entitlement_id} This adds unnecessary complexity and overhead, especially when managing entitlements for multiple users at scale.Would it be possible to include the lookup_key directly in all entitlement summaries across the API?It would make inte
I’m building an app where the user can make a purchase without creating an account. In this case, RevenueCat associates the purchase with an anonymous App User ID. Later, I prompt the user to create an account, and I call:await Purchases.logIn(newUserId)(Using Flutter SDK)This correctly links the original anonymous user to the new App User ID (an alias is created in the dashboard), but no TRANSFER webhook is fired.I’m relying on RevenueCat webhooks to keep my backend subscription data in sync, but in this case no webhook is triggered — so my backend doesn’t get updated.Questions: Is this expected behavior when logIn() creates an alias rather than transferring the purchase? If so, what’s the recommended way to update my backend in this flow?
Hello,Two of my customers have downgraded from an Annual (Trial conversion) to Monthly.It is my understanding that the down grade would only ‘apply’ at the end of the current subscription period (therefore in 12 months time for these candidates)However the screenshot here in RC is showing an immediate change and the Total Spent reflects the Monthly subscription price. When i check ‘View Details’ to see the events, i only see PRODUCT_CHANGE, i don’t notice any refunds. Can someone explain what is happening? Why is Total Spent reverted to a monthly value. I’d expect it to be for the Annual Tier (which is $99.99)
I am getting the V2 Paywalls setup. I have it working on my Simulator just fine. Now I am testing an actual device & my Paywall gets stuck.the `applicationId` is the same on both. I was originally calling `await Purchases.getOfferings();` so I could show my custom loading instead of the loading paywall UI. But that was getting stuck also.There are NO errors in my logs. I do have `MISSING_METADATA` warnings, but isn’t that OK because it’s a “DEV” bundle and will never actually be submited for approval. Plus, it renders on the simulator. That being said, I have added screenshots so they’re now “Ready to Submit”. Is there something different about my physical iPhone compared to simulator? Android is OK on both simulator & device
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?
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.