Discussion and help from anything related to RevenueCat.
Recently active
I’m using RevenueCatUI and have configured the restore button action correctly in the RevenueCat dashboard. It used to work fine, but recently the onRestoreCompleted modifier is no longer being triggered when I tap the restore button that i configured remotely Here’s the code:PaywallView(displayCloseButton: false) .ignoresSafeArea() .onAppear { print("paywall onAppear") } .onDisappear { print("paywall onAppear") } .onPurchaseStarted { package in print("onPurchaseStarted") } .onPurchaseCompleted { transaction, customerInfo in print("onPurchaseCompleted") } .onPurchaseCancelled { print("onPurchaseCancelled") } .onPurchaseFailure { error in print("Purchase failed with error: \(error)") } .onRestoreStarted { print("Restore started") } .onRestoreCompleted { customerInfo in print("Restore completed, checking subscription status") } .onRestoreFailure { error in print("Restore f
I am an administrator on this project, and I connected the RevenueCat extension on Stripe. The Stripe App Integration on RevenueCat was selected by the owner of the project. I am still getting this error:{ code: 7103, message: "The receipt is not valid." }whenever I try to post a call to curl -X POST \ https://api.revenuecat.com/v1/receipts \ -H 'Content-Type: application/json' \ -H 'X-Platform: stripe' \ -H 'Authorization: Bearer strp_XXXX' \ -d '{ "app_user_id": "XXX", "fetch_token": "sub_XXX" }'I also tried using server to server notifications, and the same error occured. What could be other possible issues for this to happen? I have not tried deleting the Stripe integration and doing it again yet.Thank you for your replies,Calda
Hi Revenuecat!Actually I have an issue with my setup . I get a grey screen while testing on my phone (android) . I wanted to know If someone can help? And do I should only one product per entitlement ?What I don’t understand is when I test on iPhone everything works (no grey screen )!
There are ‘price_per_period’ options for original & 1st offer price,but not for secondary offer. It is really needed, because I set my offerings in Google Play like this:7-day Free Trial (1st offer) 1st Year 50% discount (2nd offer) And then original price In this case, 1st offer price is of course Free ($0), which is unnecessary.But for 2nd offer, there’s no variable for ‘price_per_month’, so the price in blue rectangle could not be presented with 2nd offer's ‘price_per_month’ price normally. Please fix this issue and implement the new variables as soon as possible.Thanks.
When using V1 API, when we GET the subscriber endpoint, information about purchased subscriptions is returned under the subscriptions object.original_purchase_date purchase_date store_transaction_idvalues are returned, is there a chance you can add original_transaction_id to these values? I think this is a serious need.
Hi everyone,This issue is still not resolved, and unfortunately I haven't received any response so far.Here is my previous question for context: According to the documentation, when a purchase or other important event happens, I should see some logs under the “View Detail” section of the integration, confirming that the AppsFlyer connection is working. However, even after successful trials or purchases, I see nothing under that section.As shown in the second screenshot, the AppsFlyer integration is active, yet the system still tells me to "connect your integration". So what could be the problem here?I’d sincerely appreciate it if someone could guide me on this. Thanks a lot!
Hello, is there a way i can save my own paywalls as a template that I can use across multiple apps. i'm not talking about default paywalls. But a paywall that i made myself. Thank you
Hi,We recently had a customer reach out and report that he can’t successfully complete a flow involving SCA (Strong Customer Authentication) making a purchase through the ios App Store. Specifically:“Each time, I click the necessary buttons, approve the payment through my bank, and then… nothing. The app simply returns to the “Unlock Deglaze Pro” page without any confirmation, and I remain on the free version.Then, several minutes later, I receive a message saying I didn’t approve the payment in time—even though I had already approved it immediately when prompted by my bank.” And then: I have tried all of the suggested methods and nothing works. I have even deleted the card from my phone and it still defaults to that card for payment.From what I can see the app isn't waiting from the response from the bank. As soon as I leave the app to authorise the payment in my banking app the Deglaze app switches back to the previous screen and then I get the payment wasn't authorised in time messa
I’m looking to test my webhook implementation but I don’t seem to be able to find a way to do it?Stripe has tools that let you proxy the webhook to a local server running, which is great. Iterating faster and fixing small issues and testing edge cases with a deployed web server isn’t really feasible imo for developing payment integrations.Does RC not support anything similar? Do I need to to setup something like ngrok myself to do this?
I recently have met two problems with my app:1. I ran an the Experiment about my new purchase page design with two Offerings. And the result was pretty good, so I applied the new page design to all my users in the next app update. But after a few weeks I found the result differed greatly with the Experiment. It differed in the Conversion to Paying, Trial Conversion, Revenue…, which leads to a completely different conclusion.2.I became very confused, so I wanted to check the data with the filter of Offering. And I found no matter what offering I selected, all the data is 0.I wonder if there is anything wrong with the way I use Offering or what.
Even though I haven’t applied any discount on my monthly or annual packages, it’s showing 84% off on my annual plan. I’m using Paywall, and everything is set up correctly. However, this discount is still appearing on the annual plan. I need your help — is this just visible during development, or will it persist after deployment?
Hi RevenueCat team and community!How about paywalls that come alive? Animations could breathe life into paywalls and encourage users to buy. I’ve even whipped up a quick Android prototype – just take a look!SDK tech solution - use Lottie animations. This seems to be possible since all platforms (?) are covered:Android: lottie-android (https://github.com/airbnb/lottie-android, Apache 2.0) iOS: lottie-ios (https://github.com/airbnb/lottie-ios, Apache 2.0) Web: lottie-web (https://github.com/airbnb/lottie-web, MIT) React Native: lottie-react-native (https://github.com/lottie-react-native/lottie-react-native, Apache 2.0) Flutter: lottie-flutter (https://github.com/xvrh/lottie-flutter, MIT) Kotlin Multiplatform: compottie or similar (https://github.com/alexzhirkevich/compottie, MIT) Capacitor: Web?Component payload example:{ "fit_mode": "fit", "id": "someid", "margin": { "bottom": 0, "leading": 0, "top": 0, "trailing": 0 }, "name": "", "padding": { "bottom": 0, "leading": 0, "top": 0,
Dear RevenueCat team and community,I’m currently exploring the most robust and scalable approach to integrate RevenueCat into my app’s architecture, and I would greatly appreciate your insight.Specifically, I’m looking for a way to use RevenueCat as the payment processor, while managing subscription logic and access control entirely within my own backend.I’ve reviewed the documentation and several community examples, but I haven’t come across a setup that fully aligns with this approach. Below, I’ve outlined the different options I’ve considered — along with the challenges and trade-offs associated with each — in the hopes of receiving your feedback on what might be the most appropriate and future-proof solution.ObjectiveManage all access control and feature restrictions (e.g., premium functionality, group boosts) internally, while using RevenueCat for purchase handling and subscription lifecycle management.Option 1: RevenueCat as the Source of Truth (via API)This follows the conventio
Hi,I am implementing a paywall for our iOS app. The problem is that we are two devs, so our Developer team is not an organization - which means that I need to use different bundle id and team than him. This does not effect other functions of the app, such as api calls to firebase and other, but it seems to affect Revenue Cat. When testing the paywall, do I need to have same bundle id as is set in App Store? Thanks for help! Edit: Also, I should add that the paywall simply crashes (does not retrieve offerings), but on the revenue cat dashboard a new “customer” appears.
Is there a way to filter out specific product from the revenue chart? Basically I want to see the revenue from all my projects and products excluding only product x.
Hi,How i can change the bottom color (gray bar) under "restaurar compras" using Flutter?Im using the demo flutter code from docs, but don't have option to change that part.Thanks.
Tbh im super super paywall editor won't support centering vertically and surprised example paywalls are basically hardcoded heights and won't look good when switched to tablet screen preview. The paywall editor is lacking option to centre element in available screen height. Take any example of the paywall, switch to tablet screen preview and you'll see everything anchored to top of the screen instead centred vertically to take full available screen height...Reproduce easily: create empty paywall → add features element and try to center it vertically in available space - theres no way to do it as element spacing cannot be set to fill height because “can't fill width - parent element set to Fit”. But parent element is simply paywall element without option to adjust this setting. Setting height to pixels. Without feature of entering element in available space its not possible to build properly reactive UI adapting to different screen heights
I would love to get access to a create project api. This will take out a manual step within our internal process. Any plan on releasing it soon? Thanks!
I would really prefer to test and build as much as I can before having to deploy to the app stores and do the whole build process. Is there really no way to test in editor in sandbox mode?
We are currently using RevenueCat in Observer mode on Android. We would like to create a Paywall and show it. Is that possible in observer mode though? I couldn’t find anything in the documentation.It seems that the Paywall handles the purchase itself and only provides callbacks for a finished purchase. But we would need to process the purchase ourselves.
I’m using purchases_ui_flutter 9.0.0-beta.3 with Flutter web support, and trying to get a rough idea of how much effort I should be putting into building a custom paywall, or whether I can wait for support in the SDK.Is there a rough timeline for this that can be shared, or is this not being actively developed? Thanks!
I’m using RevenueCat latest paywall. Right now the “Cancel” button scroll through the content. If the content is long enough, the cancel button is hidden when the user scroll down. Some user would miss the cancel button and thought that the paywall is not dismiss able. I had complaint either the paywall is broken because they can’t dismiss it or it’s a hard paywall when it isn’t.I know I can add a cancel button inside the footer component but I don’t want to put it so close to the subscribe button.Is there a way to make cancel button sticky to the top like other paywall?
Hi there,I’m trying to get custom fonts working on a Paywall V2 within an Expo project. After following the RC instructions, things work fine on iOS - however I’m not sure what I’m supposed to do to get Android to use the custom fonts. On Android, my Paywall just defaults to a system font rather than the custom fonts (and all variants end up looking the same).My Expo config is as follows:Expo config This creates the following structure my `android` folder when I build the project - which appears right (as in, the fonts are being copied and an xml file is being generated by expo-font):Generated android folder structure from ExpoThe generated XML file looks like this:Generated xml_hind.xml file I’ve also uploaded the fonts to the Paywall of course. However what I’m unsure about is what am I meant to set as my Android resource names in RC? I’ve tried a combo of various things, but none seem to work. In addition the “Learn more” text doesn’t actually link to anything in this dialogue - so
I recently started using multiple app variants workflow as described here https://docs.expo.dev/tutorial/eas/multiple-app-variants/ So basically for development and production it will have have different bundle identifier.For exampleDevelopment Build: com.yourname.stickersmash.devProduction Build: com.yourname.stickersmashI had configured everything and it worked great for com.yourname.stickersmash . So the question is to support both dev/production build with same codebase, how should I configure revenuecat? What’s the good practice?Do i need to create another app in revenuecat dashboard , everything exactly same except the “Google Play package” and “App Bundle ID” ??Note: after building with com.yourname.stickersmash.dev I’m having error, ofcourse it should have error as in revenuecat dashboard is configured as com.yourname.stickersmashThe error : [RevenueCat] 😿‼️ Error fetching offerings - PurchasesError(code=ConfigurationError, underlyingErrorMessage=There's a problem with your co
Does the web SDK does not support in-app purchases, user management, or most of the methods ?
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.