Discussion and help from anything related to RevenueCat.
Recently active
Can I know if a subscription is cancelled using the Flutter sdk? I only found allExpirationDates property. Does the expiration date refer to the date when the subscription will end if not being renewed in the meantime? Does it also refer to the date when a canceled subscription ends its current active interval and becomes inactive? Thanks!
'">hacker
Hi,We are implementing webhooks and would like to know if there is a specific order the id’s come back in the `transferred_from` and `transferred_to` arrays. During our testing, they seem to be a little inconsistent *Update*I should probably clarify that I am referring to the transfer webhook jic someone is reading this, down the line and it isn’t clear.
Hello!I am testing my flutter application on Sandbox environment. I useaddCustomerInfoUpdateListener in order to get customer info ( I call it on app initialization) and then I listen to any changes that may occur. However, if user is offline and subscription expires it does not trigger listener. User has still has access to app. I would expect, that user should loose access to app if subscription expiration date is before now. Should it work like that?From : Michael suggest to call getCustomerInfo. Is it necessary if I’ve just got all the customer information from listener?If it’s not a bug, but feature, what is your recommendation? Should I set timer myself in a code in order to take access away if expiration date passes?Thanks in advance for your help!
In my iOS app, if I click multiple times before the purchase window appears, the purchase window appears. several times. And if I managed to click 5 times, in the window that appeared I bought the purchase, after hiding the purchase window 4 times I will see a message that the purchase has already been purchased. I expected the following message in the console:INFO: 💰 Purchasing Product 'product_id' from package in Offering 'default'INFO: 💰 Purchasing Product 'product_id' from package in Offering 'default'INFO: 💰 Purchasing Product 'product_id' from package in Offering 'default'ERROR: 😿‼️ The operation is already in progress for this product.ERROR: 💰 Product purchase for 'product_id' failed with error: Error Domain=RevenueCat.ErrorCode Code=15 "The operation is already in progress for this product." UserInfo={NSLocalizedDescription=The operation is already in progress for this product., source_function=addPurchaseCompletedCallback(productIdentifier:completion:), source_file=Revenu
Is there a way to provide a callback in Flutter for the warning: 'WARN: User is already subscribed to this product. Ignoring.'? I tried using .onPurchaseError, but my callback was not triggered.https://github.com/RevenueCat/purchases-flutter/blob/main/purchases_ui_flutter/lib/views/paywall_view.dart#L31
Hi,do you have in plans to fully support Google Play Pass? I don’t see clear solution how to manage it using Revenuecat. Previously I used approach described here with .reset() and restoreTransactions() approach, but it caused really strange problems and user ids multiplications. If the app relies on a purchase management solution that takes 24 hours to sync entitlements, the app either needs to use a different product management solution. It's not acceptable for Google Play Pass to have a 24 delay for entitlement revocation.
I am testing Stripe integration with RevenueCat and have everything configured and working per your documentation. However, I am running into an issue with Stripe checkout and initial billing failures. When using Stripe checkout, if the initial payment fails the Subscription is automatically placed in an ‘Incomplete’ state. In this scenario, Stripe still emits a customer.subscription.created event which, per your documentation, I handle and post the token to RevenueCat. This subscription immediately fails and Stripe sends an invoice.updated event which I have configured to be sent to RevenueCat. I am then listening to Webhooks emitted by RevenueCat on my own server to do some minimal state management locally.This series of actions causes 3 events - Initial Purchase, Billing Issue, and Cancellation - to be sent to me by RevenueCat. All 3 events have identical event_timestamp_ms and purchased_at_ms timestamps. In other words, all 3 events appear to be emitted simultaneously.The problem i
Our app implements renewable subscriptions for Monthly and Annual. We are also implementing a “Day Pass” where users can purchase this and have access to locked content for 24 hours. The user can repurchase after it expires. We manage the expiration on our own servers.I created the “Day Pass” products as in-app purchases and added them to their own entitlement in RevenueCat. After some thought, I think I shouldn’t have added them to an entitlement.What’s the recommended setup?
Hi! I've encountered an issue where the dashboard displays an incorrect price. I setup a base plan and an offer with a discounted price with a 4 repeating periods . I subscribed to the offer then I disabled it, for the periods following the first periods the dashboard started showing the normal price(not discounted) but I was charged the actual discounted price on the play store. So the dashboard showed an erroneous price. Might be wrong, but I guess the system is looking at the current base plan and if an offer is active or not then displays the price? If so, is it an expected behavior?
Is it possible to(1) customize the package title? Just Annual or Monthly is displayed but I want to add something like “Annual (2 months free)”(2) customize font size, family, etc?(3) create my own paywall widget in flutter? and just return it instead of the one created in the rc dashboard?Regarding (3):People who use RC typically already build an entire app. Creating a paywall screen on their own is usually very easy and quickly done. However, the process becomes frustrating when trying to fetch product details from Apple and Android. It would be extremely helpful if the RC SDK offered APIs for directly retrieving product details from these platforms. This would simplify the creation of custom paywalls a lot.. creating ones own paywall from scratch with the native language one uses would be very nice.. Please consider adding this feature, and if you do, it would be great to prioritize Flutter since that’s what I use. ^^
Hi there,I am currently display my default paywall using .sheet & PaywallView() however I am having issues with the view refusing to compile if I attempt to add PaywallView(offerings:) parameter.In my class that connects to the sdk I have tried adding: Purchases.shared.getOfferings { (offerings, error) in if let packages = offerings?.offering(identifier: "experiment_group")?.availablePackages { self.display(packages) } } but with this I just get the error that no member “display” exists, no matter what I do.Have I missed something? I’m still very new to paywalls so please excuse my lack of experience. I should add, I am targeting iOS 17 & using SwiftUI. Many Thanks, Billie
By default, our app's billing grace period is turned off. However, we're considering turning it on to retain customers who may be experiencing temporary billing issues or errors. Should we make this change, we're wondering whether we need to make any modifications within the app, or if RevenueCat will handle it automatically. Additionally, if we activate the billing grace period through the AppStore portal, are there any potential issues we should be aware of?
I am using Revenuecat for my APP to handle payments and paywalls. I am using purchases_flutter: ^8.1.0purchases_ui_flutter: ^8.1.0I am seeing 100% failures on payment made through UPI on Google Play Store in India. Do I need to do anything on my end to make it work?
When adding an iOS In-App Purchase key to prepare for StoreKit 2 support, I see that in the docs it says You can use the same in-app purchase key for all of your offers. Can someone confirm that you can also use the same IAP Key for all of our RevenueCat Projects? We have multiple apps in the App Store, and each is configured with a different RevenueCat project. Can we use the same IAP key for all of these projects, or do we need to create one for each Project? The key is created in App Store Connect at the account level, not tied to any specific app, so it seems plausible that we are intended to use the same key for multiple projects / apps within RevenueCat.
Is there any way to test different end-user currencies to see how the UI handles different storeProduct.priceString values for different countries? (Obviously, without needing to open actual Google accounts in different countries.)Does storeProduct.priceString always show the actual/local currency symbol & price of what the user will see in the Play Store or App Store after Purchases.purchasePackage is callled?Thank you.
Since last month my display prices from the class store product displaying wrong currency and prices. I’m currently in the netherlands, so my currency should be EUR, but instead it’s showing RY - currency from turkey. I have not changed anything in my default phone settings. I have been investing this issue for the last 2 weeks, but there are no similar cases. Is there anyone who could help me? I’m testing in sandbox mode on revenuecat and have some information about this my sdk version is 6.5.0:Last Opened In the last dayUser Since 2023-06-15 at 07:31 AM UTC (22 minutes ago)Last Seen Platform Version android 33Last Seen SDK Versionnative 6.4.0Last Seen Locale en-NL Purchase information:"country_code": "TR","currency": "TRY","environment": "SANDBOX","event_timestamp_ms": 1686815472617,"expiration_at_ms": 1686815808143,"is_family_share": false,"is_trial_conversion": false,"offer_code": null,"price": 15.90344831154524,"price_in_purchased_currency": 374.99,"product_id": "subscription_3_m
I have set my consumable products on Revenu-cat and also set them as multi-quantity on google-play. However when try to purchase on the revenuecat no-code paywall, I see debug log with following info. D/RevenueCatUI(17244): Ignoring purchase request for already subscribed package Not sure what’s going on
We want to be able to offer a free trial to our new users when they onboard. If they don’t convert in a timeframe, we want to offer a discount to convert them. I thought targeting would help us to achieve this, but apparently not! What would you recommend?
I'm experiencing an issue with the paywall on our React Native app when viewed on an Android tablet in landscape mode. As shown in the attached screenshot, the paywall image fills the entire screen, making it non-scrollable. This issue prevents users from seeing or interacting with the subscription options, essentially rendering the paywall unusable.We are using the following versions"react-native-purchases": "7.28.1","react-native-purchases-ui": "7.28.1"I saw a similar issue reported a while back, but it was for the Android SDK. It seems like the React Native version hasn't been updated to utilize the fix for this problem? Here’s the link to the previous discussion: Android paywalls in landscape are not displayed correctly.
Hi!I’ve been trying to add RevenueCat to my App, I’ve managed to successfully setup subscriptions, and test them using the StoreKit Configuration file. Works like a charm.I’m now working on adding a Lifetime non-consumable in app purchase. Purchasing works well. But I can’t make the refund works.Here is my flow:- Start the app- Buy the Lifetime IAP- Wait a bit- Issue a refund via the Xcode StoreKit test panel.The refund seems to be process correctly, I see this in the dashboard for the user:Unfortunately the Entitlements for the user is still active.<EntitlementInfo: "identifier=Pro,isActive=true,willRenew=false,periodType=PeriodType(rawValue: 0),latestPurchaseDate=Optional(2024-08-29 12:36:23 +0000),originalPurchaseDate=Optional(2024-08-29 12:36:23 +0000),expirationDate=nil,store=Store(rawValue: 0),productIdentifier=#####.#######,productPlanIdentifier=null,isSandbox=true,unsubscribeDetectedAt=nil,billingIssueDetectedAt=nil,ownershipType=PurchaseOwnershipType(rawValue: 0),verificati
Hi,we have internal test servers where we would also like to develop our webhook endpoints on so we can test receiving events from the RevenueCat API. Those servers are obviously only accessible from our internal network by default.To make the webhook URLs accessible for RevenueCat, I’d like to know what IP range the requests would be coming from, so I can configure our firewall accordingly.Thanks a lot,Markus
I have a customer that has purchased a subscription in the sandbox, and when I call the V1 get subscriber endpoint, it does not return this subscription entitlement: { "request_date": "2023-12-15T19:43:21Z", "request_date_ms": 1702669401141, "subscriber": { "entitlements": {}, "first_seen": "2023-12-15T19:32:20Z", "last_seen": "2023-12-15T19:32:20Z", "management_url": null, "non_subscriptions": {}, "original_app_user_id": "823d3d4b-1760-f789-709a-48e47cf96b4e", "original_application_version": "1.0", "original_purchase_date": "2023-12-15T19:32:46Z", "other_purchases": {}, "subscriber_attributes": { "$attConsentStatus": { "updated_at_ms": 1702668767953, "value": "notDetermined" } }, "subscriptions": {} }} I’m assuming that this is returning the non-sandbox data. This was working as expected before and seems to have started failing recently.
Hey,I am very new to everything involving in-app purchases, so sorry if this is a somewhat confused question. I am building an app (iOS/macOS only) that involves making calls to some AI tools through a custom backend that I am building as well. I would love to not force users to create accounts at all, since purchases are done and identified through the user’s Apple ID anyways, so there’s no immediate need to. I could just let them use the app as anonymous users. However, I need some way for the backend to know if an incoming request is made by a user with an active subscription. I searched online for quite a bit, but haven’t found this exact problem yet. From what I read in the documentation, there might be a way to do this, by sending the users App ID (generated by the RC SDK) to the backend on each request and have the backend call the RC API with that App ID to check the subscription status. I have not tested this because I am not at the stage of development yet. I just wanted t
Hi allLooking at potentially doing a campaign where group of users get X days free access to app. Many of these are previous subscribers or trials that no longer have an active subscription. I know on the customer level we can manually apply a single entitlement. Is there a way in the RevCat console to do this in bulk? e.g. all customers in a list (from RevCat customer list) get an entitlement applied? Thanks
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.