Discussion and help from anything related to RevenueCat.
Recently active
I am trying to integrate RevenueCat in Flutter. While I’m testing on iOS with Paywall provided by purchases_ui_flutter in storekit setting, when I first got the paywall, it showed introdutory offers text and button. But after I subscribed, even if I delete the app and rebuild with xcode, Introductory text and button I set in paywall doesn’t show up anymore. How can I reset these situations? I’m trying to see how it looks with various localizationsThanks in advance.
Hi there,I am using flutter to build my app and I have been using the Revenue Cat paywall functionality for making purchases.I have both consumable and non-consumable in app purchases. I am currently testing using the Google Play store. My products are set up like this:Consumables do not have entitlements, non consumables do have entitlements. I have an offering that contains several consumable options and I have separate offerings for each non-consumable option. I present these to purchase using Revenue Cats paywalls. The issue I am having is that once a purchase has been made, it cannot be made again. This is expected for the non-consumables that have entitlements, but how do I allow the consumables to be purchased over and over again?The documentation states that on the Google Play store purchases are consumed by Revenue Cat immediately but that doesn’t appear to be what is happening. Can someone help point me in the right direction?
Hi,I have an annual subscription product with a 7-day free trial.I want to be able to give the user a possibility to get a 20% discount (promotional offer, as they now are a subscriber), after they have started their trial. Like a “You have started a trial period, but if you convert now you can save 20%”. Do you know if this is possible? Br.Jakob
Above is the error message I get when cancelling the purchase (I cancel either pressing back button or by clicking anywhere else to dismiss the pop up). I am not sure why app crashes here. It is within the try catch statement and I have catch statement to handle error cases. Help would be appreciated. Thanks!
While investigating an account I expected to be closed in our system, I noticed that the expiration webhook had failed with a 403 (The dashboard says 6 out of 6 attempts but I only see the last result I assume).What I want to know now is how often this happens and if its a one off or a recurring problem, however I can’t see a centralised place to view webhook events & failures (Unlike Mandril for example that has a dedicated webhook section and shows you all the recent failures).If this data exists then where is it? Or is there a custom report somewhere I can run to get this data?
We set appUserId with custom id and invoke getCustomerInfo each time app is opened and set the state with info of either subscribed or not and unlock the pro content accordingly. So if you had previously uninstalled the app and reinstall, the invoke of getCustomerInfo would solve the issue of knowing whether subscribed or not.However app store wants you have ‘Restore Purchase’. How do I best use of this in this scenario?
Hi,I am trying to fetch APP Store IAP products using the API Purchases.getProducts, however, it is returning no products. After looking at various post it seems that I need to pass second argument to the method Purchases.getProducts as the default value is “subscription” and my product is not Subscription.I am struggling to pass the second argument which is ENUM in the latest SDK and not a simple string like “sub” or “iap”. I don’t know how to import these enum values so that I can use it as argument in the function call.Could you please help me with some sample code to pass the second argument? Thanks in advance. Thanks,Kapil
There are two subscription setups:Identifier: tier1:monthly1, Subscription Id: tier1, Base Plan Id: monthly1Identifier: tier2:monthly2, Subscription Id: tier2, Base Plan Id: monthly2When changing the plan from tier1:monthly1 to tier2:monthly2, the following error occurs for a specific user:PlatformException(4, One or more of the arguments provided are invalid., {code: 4, message: One or more of the arguments provided are invalid., readableErrorCode: PurchaseInvalidError, readable_error_code: PurchaseInvalidError, underlyingErrorMessage: Couldn't find existing purchase for SKU: tier1, userCancelled: false}, null)In testing locally, this error is not reproducible, and the cause of the error is not apparent. The product_id of the subscription for the user where the error occurs is as follows, with tier1:monthly1 set:{ "app_id": "", ... "product_id": "tier1:monthly1", }The code for changing the plan is as follows:final currentEntitleInfo = (await Purchases.getCustomerInfo()).entit
I was able to get correct contents in Koreanbut in Japanses, revenue paywall element(which I can customizing through paywall section on revenuecat) are not localizied. I’m testing with simulator using storekit in xcode.As you can see on the screenshot I attached, price looks right because it’s coming from apple but contents from revenuecat dones’t seem right.Weird thing is that everything in Korean works correct…..I tested with Hindi but it dones’t work eitherAny suggestion or solution would be appreciated. Korean version looks right like below
I’m using the sandbox testing on web, and don’t seem to find any docs on how to test, so I am using stripe’s approach to use a card 4242 4242 4242 4242. However, I end up with this error:Thing is, the screen prior clearly shows that it is in sandbox mode. Why is the request failing?
Is there any way to set up an email notification to be sent to the software vendor (author) any time a purchase or subscription is made via RevenueCat? I already receive the weekly summary, but I am interested in also getting email notifications on every purchase/subscription. Thanks.
Hey everybody,I started to implement RevenueCat today into our existing Flutter app and so far I’m really enjoying is. The only thing I’m wondering right now is, is the following debug message that shows up all the time: [Purchases] - INFO: ℹ️ Purchases instance already set. Did you mean to configure two Purchases objects? What I’m doing so far in my code is to initialize the Purchases like that: Future<void> initSubscriptions() async { await Purchases.setDebugLogsEnabled(true); if (Platform.isAndroid) { // TODO Setup Google // await Purchases.setup("public_google_sdk_key"); } else if (Platform.isIOS) { final bool revenueCatAlreadyConfigured = await Purchases.isConfigured; if (!revenueCatAlreadyConfigured) { await Purchases.setup("<my_api_key>", appUserId: "SIMULATOR-TEST-CLIENT"); print("iOS setup finished"); } else { print("RevenueCat is already configured"); } } else { print("Platform doesn'
I got rejected several times by appstore: We found that your in-app purchase products exhibited one or more bugs which create a poor user experience. Specifically, in-app purchase page loaded and error message occurred. Please review the details and resources below and complete the next steps..What should I do?
hi, I have a question about restoring a purchase.We don't want the B account to be able to subscribe to the service if the A account is subscribed to it.So we set the Transfer setting to 'Transfer if there are no active subscriptions'. Then, when I tried to subscribe to account B in RevenueCat, it threw a 'RECEIPT_ALREADY_IN_USE' error and prevented the payment from going through. Very nice.The problem is that this error code response has no clue as to which account is subscribing (e.g., Account A).From a user perspective, it would be nice to see a message that says "You are subscribed to account A and cannot subscribe" rather than just "You are subscribed to another account and cannot subscribe", but I couldn't find a way to do this. Is there anything in RevenueCat that would allow me to do this?
Hi,I’m getting an error when trying to obtain offerings for a specific platform using the v1 offerings endpoint if I use the secret API v1 key instead of using an app-specific API public key. I’m sending the X-Platform header properly as indicated in the docs.Here’s the endpoint I’m using:https://api.revenuecat.com/v1/subscribers/{app_user_id}/offerings Error:{ "result": { "code": 7000, "message": "Invalid Platform." }}If I set the auth header to the app-specific API key it returns properly.Is that the intended behavior? I’ve obtained the endpoint usage information from:https://www.revenuecat.com/docs/api-v1#tag/offerings/operation/get-offerings Thanks in advance!
Hello,Just asking some quick clarification questions publicly in case they help others, these are specific for Flutter but I would assume that they’re applicable for other SDKs.1. I am invoking:PaywallResult paywallResult = await RevenueCatUI.presentPaywallIfNeeded("Premium", displayCloseButton: true);I would assume that the only thing I can do to “react” to whatever the user did would be to switch on the enum - no other subscription details bar PaywallResult (notPresented, cancelled, error, purchased, restored) are returned?2. Related but I also noticed that you can hook into subscription changes like this: Purchases.addCustomerInfoUpdateListener((customerInfo) async { });Would you do this in a centralised place (like where we are initialising the SDK), to listen for all subscription changes for a user and then “observe” these using a ChangeNotifier or similar?
It would be amazing to be able to add different images for a paywall on iOS when the app is on iPads vs iPhones (compact width (iPhone) vs regular width (iPad)) . I am looking at doing my first A/B test where i will be using a Paywall (template 4) vs my own custom view and unfortunately whilst looking great on iPhones, the image and template are pretty poor on iPads. Keep up the great work.
I've developed a Flutter app tailored for both Android and iOS platforms. Within the app, we've implemented a subscription mechanism utilizing RevenueCat to manage our in-app subscriptions. One of our primary goals is to provide our users with a seamless experience, such that their subscription status remains consistent across multiple devices or platforms. To put it simply, if a user subscribes on an Android device and later logs into their account on an iOS device, their subscription status should be synchronized, reflecting their active subscription.With this intent in mind, we've configured RevenueCat to utilize a custom user identifier, specifically using the user's Firebase authentication ID. We believed that this would facilitate the synchronization of subscription status across platforms.Our next endeavor is to introduce promo or offer codes into our application. These codes, when redeemed, should be tied directly to a user's account, ensuring they benefit from the promotion re
My application got rejected due to:Guideline 1.1.6 - Safety - Objectionable Content We noticed that your app’s in-app purchase products are mislabeled as Apple Pay, which could confuse and mislead users.To clarify this further, when they tapped to purchase the item, my app initiated Apple Pay [payment sheet] instead of In-App purchasing!!!I have updated my app to Revenue Cat, I am not doing anything about this the sheet is showing automatically by the app store, not from my side. I have tested via Test Flight and it shows the right sheet: any idea why this happened?
I use RevenueCat in apps developed with Flutter. It does not show up inside the IOS Runner Privacy Report. I use the last version purchases_flutter: ^6.25.0Is this an issue or is as intended?
The image aspect ratio recommended for the Template 4 - Persian Paywall is stated as 19.5:9 - https://www.revenuecat.com/docs/tools/paywalls/creating-paywalls#uploading-images Is this correct? the image width is over twice as big as the height?
I have just published on stores my Flutter app with the new subscriptions, but it is still on sandbox, and when i try to make a purchase, the bottom modal has the Testflight text.How to switch to release env?thanks
// or if you need to present a specific offering:const paywallResult: PAYWALL_RESULT = await RevenueCatUI.presentPaywall({offering: offering // Optional Offering object obtained through getOfferings});This code is not working properly , always return the default offering
I want to further clarity on my understanding. I hope to get a response.My question is regarding the 1% commission when sales are above 2500 USD. Does this revenue sum only apply to the products i link to revenue cat? I have only linked my subscriptions and not my one time payments where I handle them myself.any help and clarification on this will really be appreciated. Thank you!
I'm trying to refund a user's subscription, but I can't seem to find such an option. What could be the reason for this?Of course, it’s from Play Store
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.