Discussion and help from anything related to RevenueCat.
Recently active
I followed that documentationhttps://www.revenuecat.com/docs/subscription-guidance/subscription-offers/google-play-offers I have a renewable subscription in my app and I created a bunch of promo codes. Then I redeemed that code which offered me 14 free days of usage of my app.The problem is that in the overview chart it shows that purchase as a normal oneAccording to the docs it should be a trial? I can deduce that promo code was used by looking at revenue column, not sure that’s the correct way to identify promo codes? Additionally I thought that offer_code field is going to be populated, but it’s not.That’s the json, I have received via web hook{ "api_version": "1.0", "event": { "aliases": [ "<removed>" ], "app_id": "<removed>", "app_user_id": "<removed>", "commission_percentage": 0.122, "country_code": "PL", "currency": "PLN", "entitlement_id": null, "entitlement_ids": [ "full_access_subscription" ], "environment": "SAND
Hi Folks,I really want to love RevenueCat since it comes so highly recommended by so many people, but I'm having a few issues that are making that hard. The first is that the Customers List page (https://app.revenuecat.com/lists/) is very slow - a fresh load takes ~6 seconds before any information is shown. Looks like there are 2-3 requests that are queuing in the backend to me (me, subscriber_lists and manifest). These requests are taking nearly ~2s each.The `query` request can also be slow, around ~1s. Timing from Safari: And query:Note that I have less than 10 customers, I am a little worried about what might happen when I (hopefully) have hundreds.The second problem is that (unless I’m doing something wrong, which is very possible) even after I’ve waited for the list to load it doesn’t appear to accurately reflect the state of my subscribers. For instance, if I register a new customer via AnonymousID it doesn’t appear in any of the lists, I need to search specifically for that ID
Hi team,As the title states I’m curious if I need to implement a restore purchases function if I’m only offering a monthly subscription with no login on front-end. I’m building an iOS app using react native and have no login implemented, and am calling the purchaserInfo on app start. The scenarios I’m trying to cover are: the user upgrades their phone and the app is re-installed, and the user uninstalls the app then reinstalls. As long as the subscription is active and they are under the same apple login/info, wouldn’t their info be pulled be pulled from Purchases.getCustomerInfo()?Thanks in advance
Hi everyone,I am implementing in-app subscriptions on iOS using RevenueCat and testing in the sandbox environment. I have a subscription group with two products:Monthly 1 Monthly 2If a customer subscribes to Monthly 1 and later upgrades to Monthly 2 mid-cycle, Apple is supposed to issue a prorated refund for the unused period of Monthly 1 (as per Apple's documentation). However, I am not receiving any refund-related event in RevenueCat.I have a few questions regarding this:Does RevenueCat detect and provide an event for refund transactions related to subscription upgrades within the same group? Is there any way to determine how much Apple has refunded to the customer through RevenueCat, or would I need to fetch this information elsewhere?I would appreciate any insights from the community or if someone has encountered a similar issue during sandbox testing.Thanks!
Hello RevCat team :)I have seen a couple of posts related to this issue on this forum but just wanted further clarification on the commitment to an action. If I am misinformed and there is a service for obtaining the desired data then feel free to inform me and close the article.The question is when calling the /v2/projects/{project_id}/customers endpoint. The documentation states the return responses provides: active_entitlements, experiment, attributes objects, of which are not actually returned.Two Workarounds: Obtaining a list of users and then polling their attributes one by one via the endpoint: /v2/projects/{project_id}/customers/{customer_id}/attributes. The issue is that we have hundreds of thousands of users daily and we would need to call this endpoint for every user. Another work around is to export the list of customers from Customers List table. The issue with that is it is manual and the exports tend to be very large, containing all user information. Viable solutions
Hey guys,is it possible to collect customers billing address via RC-Web.When using stripe its usually just one variable that you pass to the checkout.Yet we have not found a way to do it with RC-Web.ThanksBestPhil
Hello RevenueCat Support Team,I'm experiencing an issue with one-shot payments in my Flutter app using RevenueCat. When a payment does not require additional bank authorization, everything works perfectly and the premium content is delivered as expected.However, when the bank requests additional authorization (for example, via 3D Secure), the user is redirected out of the app to complete the authentication. This redirection causes the payment process to be interrupted and ultimately cancels the transaction.Could you please advise if there is a recommended solution or configuration to handle these authorization flows without forcing the user to leave the app, and thereby preventing the cancellation of the payment?Thank you in advance for your assistance. I look forward to your guidance.Best regards,
Hello,I updated prices for my subscriptions in App Store yesterday (my app is not in production yet), and in RevenueCat on a Paywall page I still see old prices. How do I force RevenueCat to refresh prices from App Store? Is there something like “refresh cache” on a RC web site? Also, I see that my App Store products in MIssing Metadata status all the time. I am not planning to upload any screenshots to the subscriptions yet, is there anything I am missing? Perhaps this is because my app is not in Production yet? Thank you!
Hi, I am integrating a web hook for the purchase. I have setup secret key and setup a webook URL. But I am not getting x-RevCat-Signature in header. Will it work in test events?
Hello,My app has 2 plans: yearly and lifetime.I’m trying to understand what happens when:1. First a user buys the yearly one,2. Then the user buys the lifetime one.Will the yearly one be canceled automatically in each platform: Android and iOS?
I am working on my paywall which will detect when a customer purchased an older version of my app so that I can offer them a 50% discount or a free period on the subscription of the new app, depending on when they purchased the old app. I’m trying to figure out how to get the prices I’ve set on the offer codes that I will use. I’ve got a button that will take the user to the App Store to complete the purchase and when they come back from the App Store, I’ll sync their purchase and dismiss the paywall. Right now for the 50% discount offer, I’m just diving the subscription price by 2. However, Apple’s offer codes don’t work like that. You have to select specific prices for each offer code. I do display the original subscription price and also a “Your price: $24.99” label just below the button that takes them to the App Store to complete the purchase.But I realize now that the prices I display will be wrong because it’s not always a divide by 2 price. For example, one of my prices is $44.
PaywallFontProvider does not have any affect on iOS v2 paywalls. I’ve implemeted a custom PaywallFooterProvider as below: class MyPaywallFontProvider: PaywallFontProvider { func font(for textStyle: Font.TextStyle) -> Font { switch textStyle { case .largeTitle: .custom("PlayfairDisplay-Regular", size: 34, relativeTo: .largeTitle) case .title: .custom("PlayfairDisplay-Regular", size: 28, relativeTo: .title) case .title2: .custom("PlayfairDisplay-Regular", size: 22, relativeTo: .title2) case .title3: .custom("PlayfairDisplay-Regular", size: 20, relativeTo: .title3) case .headline: .custom("Jost-Semibold", size: 17, relativeTo: .headline) case .subheadline: .custom("Jost-Regular", size: 15, relativeTo: .subheadline) case .body: .custom("Jost-Regular", size: 17, relativeTo: .body) case .callout: .custom("
Hello, in my android app using jetpack composed i implemented revenue cat. Everything seems to be ok apart from the fact that the paywall showing is the basic paywall. I have Designed paywall using the V2 of the paywall editor , but the basic paywall is still showing. I checked my logs and everything seems to be fine: [Purchases] - DEBUG D 👤 Logging in from $RCAnonymousID:b831970ef3294aa19a10b4ddf59fc251 -> tNQh1DwjRTU9zJZIk08oEGnLHBo2[Purchases] - DEBUG D ℹ️ No subscriber attributes to synchronize.[Purchases] - DEBUG D API request started: POST /subscribers/identify[Purchases] - DEBUG D API request completed with status: POST /subscribers/identify 200[Purchases] - DEBUG D 👤 Logged in successfully as tNQh1DwjRTU9zJZIk08oEGnLHBo2. Created: false[Purchases] - DEBUG D ℹ️ Found 0 unsynced attributes for App User ID: $RCAnonymousID:b831970ef3294aa19a10b4ddf59fc251[Purchases] - DEBUG D ℹ️ Deleting subscriber attributes for $
I have tried literally everything. Products where being shown in TestFlight then I updated the app in Flutterflow to apple connect with new version and now nothing is showing. All the data matches up and I have been thru every option I have found in questions. any suggestions?
HiI have 3 packages in a paywall. I wanted to add badges two of them and I am guessing I am supposed to use product.relative_discount for this. But in the app I can’t see the value. Badge appears empty. Do I need to set it somewhere?Cheers,Ulaş
I am stuck in a loop—RevenueCat requires the products retrieved from the App Store to be reviewed. However, Apple can’t review these items because the screen where they appear is throwing Error 23: "There is an issue with your configuration." How can I get the subscription reviewed and displayed in the app?
Hi. We’ve recently deployed a new version of our app with revenuecat api and our Google Play Android Developer API usage has skyrocketed. Usage of androidpublisher.SubscriptionPurchasesService.Get and androidpublisher.SubscriptionPurchasesServiceV2.Get is in millions and failure rate for the first is 100% and for the second it’s 43%. We cannot continue operating like that as we are not fully rolled out yet and Google does not allow us to increase our usage quota any more so you can imagine there’s no way for us to move forward with our roll out.We would like to receive some help in resolving the issue. Our service account credentials are set up correctly and overall the service works properly. We do not experience any issues on the customer end.
I am having issue with my app icon disappearing.We had our apps available to public for awhile now, and today, the app icon stopped showing and grayed out. Everything is still connected properly, and we havent changed anything.Have anyone experienced the same issue before?
Hi, is customer center available in the purchases_ui package yet? I looked into the api reference and couldn’t find anything. Let me know if there’s any way to integrate it with my flutter app that I am missing.
RevenueCat webhook returns a 401 error, and the user ID is missing only in the case of redeeming a subscription. However, regular subscriptions are working fine.
I have an application with payments implemented using Web SDK. I'm looking for ways to allow users to submit refund requests directly within the app. Are there any options available such as a refund link in the customer portal, or Rest API endpoints that I could use to build a custom UI for refund requests?
I’ve been seeing a weird behavior recently on my iOS Swift app.Sometimes a user subscribes to the free trial for annual and it is successful (it shows up on RevenueCat dashboard), but in my logs, RevenueCat shows a Canceled error. In my app, if a user cancels a purchase, it shows a special annual offer. Since it was detected as a cancellation, the user then sees the special offer view and subscribes to that. This leads to the user being subscribed to BOTH the free trial and special offer, and they end up paying for both.Why might RevenueCat show cancelled if the purchase actually went through?
Hello. I would like to ask for help. I have a problem integrating purchases with RevenueCat in FlutterFlow. I searched the documentation, but it is very poorly and unclearly covered regarding sales. For subscriptions, I found a lot of information, but for sales, it is very sparse and unclear. My app is already running on a website, and I use Stripe for payments there, which works fine. When I started with RevenueCat to set up the app on Google Play, I thought it would be similar, but it does not work. I am selling credits, like lives in games that get consumed later. After a purchase, the credits should be added to the profile of the user who made the purchase. I am using Firebase as the database. My main problem is with sales. I have connected RevenueCat and Google Play Console, and I think that part is okay. I believe the problem is on the FlutterFlow side, but there is very little documentation, or it is too general. Does anyone know where I could look? Has anyone had a similar prob
Hello!I want to use RevenueCat to centralize subscription management (code) across different platforms (Web, Android, etc.) for the same app.I want to get the native local Stripe products (ids) or prices (ids), and use the Stripe native checkout paywall.I set my native and local products for my Stripe app in the RevenueCat project setting page - see the attached screenshot below.I can use the local Stripe product / price to generate a sessioned Stripe paywall.Do you know how to get the Stripe products (ids) (using RevenueCat SDK or API)?Thanks in advance for your help. PS: Stripe features trial subscription enrollement without requesting a payment method upon; RevenueCat does not.See more in the post at the following link:
Hi All,I have built a Flutter app and used the purchases_flutter package. In the official release environment on the Google Play Store, one of my users encountered an error with the following steps:The user made a purchase before logging in (Purchases.login) with AppUserID = $RCAnonymousID:.... After that, the user logged into the system, and their AppUserID was assigned as their system userId. The user attempted to restore the purchase (Purchases.restorePurchases), but it did not work. The app could not retrieve the previous purchase information ($RCAnonymousID) and sync it with the current user (userId in the system). The Google Store account used for the purchase is still active and retains the purchase history.I checked the Google Store console, and the purchase history is recorded there. When checking the Order ID in the RevenueCat console, and the system recorded the payment with AppUserID = $RCAnonymousID, which was created at the time of the initial purchase. For this issue, I
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.