Discussion and help from anything related to RevenueCat.
Recently active
As shown in the picture, I have configured the subscription push in the Google backend, but I also want to synchronize the message to the server to update the user information.Can I do this by configuring the webhook, because revenuecat does not provide the Apple Server Notification Forwarding URL function like iOS?
Hi, I want to show amount on revenue cat paywalls dollars always, for all regions i want to show dollars only how is it possible?
Im using React Native and have setup my Paywall to include an introductory offer if eligibleFor example - {{ sub_offer_duration }} Free then {{ price_per_period }} Unfortunately my Paywall does not show the introductory offer, even though I am eligible.This is true on TestFlight & SandBox. New users and existing. When I start the Apple Payment Dialogue, Apple actually shows me the introductory offer - So this seems to be a problem with RevenueCat. Does anyone have a solution for this?
Hi everyone,I'm currently using RevenueCat with React Native Expo and I have a question about how the email attribute is handled.In my app, I'm initializing RevenueCat as follows:await Purchases.configure({ apiKey: APIKeys.apple,});Purchases.setEmail(userData.email);Purchases.setDisplayName(userData.name);I want to know if the email attribute will be sent to my webhook when a purchase event or subscription change occurs. I’m specifically setting the email after configuring RevenueCat, but I'm unsure if this will be passed to the webhook.I didn’t see an email attribute in the body of a POST request for webhook events when I read the documentation here.Has anyone else implemented something similar or can confirm how this works?Thanks in advance!
I’m not seeing any specific error codes to try and troubleshoot the issue. I’m building a Play Store (and eventually App Store) app and when I tried to upload my JSON, it just tells me Permissions to call (xyz) with an x. I’ve tried multiple times to adjust permissions in my cloud project and my play console. What am I missing? RC has monitoring viewer and Pub/Sub admin permissions, it’s in my service accounts, my in-app purchases are in the play store. Also, I’m an indie dev and this is my first time building an app at all. My app is currently undergoing internal testing and will soon move to closed testing and i want to have everything set up and ready to go before publishing.
Hi Everyone,In the case that a user has a payment problem or their payment is past due, I would like to help them navigate to a place where they can manage their payment info (in case they need to update their credit card number or something similar). The managementURL property just sends the user to a general area for managing subscriptions, but there is no way to manage payment details from there.Is there any way to send the user some place where they can view and update their payment details?TIA!-Mike D.
Hi there, I am currently looking into integrating monthly subscriptions into an app that was originally going to be a one-time-purchase. Im looking to have a short trial followed by a subscription. The key thing here is that I am trying to avoid integrating a login system for my users. I do not need to store any account data myself, and the app has no cross-platform functionality (nor would that be relevant), so ideally I can avoid the extra dev-time and bloat of a login system and rely on unique identifiers provided by the play/app store. Based off my reading so far, I believe I can do this by not passing any user id to the sdk upon initialization. In this case the sdk would rely on the apple app user id (and google equivalent?). I am just looking for some guidance on whether I am on the right track, in addition to any info that might be relevent here- or maybe pitfalls of this approach. Additionally, my understanding is that the subscriptions themselves are managed through the app an
'm developing a subscription-based app on Flutter for Google Android and have run into a challenge with the platform's limitations on subscription management. Specifically, Google Play does not allow developers to programmatically cancel or modify subscriptions on behalf of users. Users must manage their subscriptions directly through the Google Play interface, which complicates the process of upgrading to a new subscription tier within the app.Challenge: Google Android’s policy requires users to manually cancel or modify their subscriptions, which can disrupt the user experience and reduce conversion rates for subscription upgrades.Proposed Solution: To address this, I am considering a hybrid approach using RevenueCat's customizable paywall feature. The idea is to still use the RevenueCat paywall for managing subscriptions but to augment this with additional UX elements that guide users through the necessary steps to manually cancel their current subscription before upgrading.Implemen
Hi,I have subscription started at 2024-10-08 06:52:27+00 and will renewable at 2024-11-08 06:26:27+00and currend date is 2024-10-23.I defer the subcription via POST https://api.revenuecat.com/v1/subscribers/$app_user_id/subscriptions/$product_identifier/defer to one day so the body['expiry_time_ms' => 1731133587000,]if we convert this ms we will get “2024-11-09 06:26:27.0 UTC (+00:00)”the api response is HTTP request returned status code 400:{"code":7258,"message":"The desired expiry time for the subscription is not valid."}what is the wrong ?
HelloI'm looking to introduce "prepaid" or "non-renewing subscriptions" for my app. I plan to start by adding this option to our website. To implement this, I’m creating one-time payment products for the following durations: 1 month, 3 months, and 12 months.So far, everything is set up on the website side. However, I’m facing a challenge when it comes to informing RevenueCat that these one-time payment products should have a fixed duration. For instance, I need to configure the 3-month product to grant access for exactly 3 months and the 12-month product for 12 months.Does anyone know if this is possible in RevenueCat? If so, what would be the best approach to set this up?Any insights or guidance would be greatly appreciated!Thanks in advance!
Probably related to Using React Native PaywallFooterView. There is a general lack of flexibility to control what happens behind this component.I attached a picture of my paywall running on an iPhone 6s simulator running iOS 15. There is no way to control the font scaling for this view, rendering it completely unusable for users who have bigger font sizes. As you can see, my custom paywall design is hidden behind this huge footer.I read that you are currently working on improving paywall design, but still wanted to report this use case so it’s taken into account.
A user requested a refund direct from the Play Store.RevenueCat detected this refund, it is included in the customer history and the event was sent to our webhook.However this refund is not included in the Scheduled Data Export, or in the Charts.Furthermore, a refund made on Stripe does appear in the data export and the charts.Can someone explain what is the expected behaviour here and what can be done to include Play Store refunds in our charts and exports.Kind regardsChris
Hello, `ERROR - The receipt is not valid. The purchased product was missing in the receipt. This is typically due to a bug in StoreKit`.I was recently rejected from app store review due to this weird RevenueCat bug ("react-native-purchases": "5.13.0") that I sometimes experience.I believe that I have set up all of my code correctly, but when clicking on a subscription purchase (using the purchaseProduct method - `const purchase = await Purchases.purchaseProduct(identifier, null, Purchases.PURCHASE_TYPE.SUBS);`) the request can fail and throw the following error. “The receipt is not valid. The purchased product was missing in the receipt. This is typically due to a bug in StoreKit.” It seems that this error will happen in patches 5-10 times in a row, then once I see one success, they are all successful from there forward (the purchase modal shows up with the product, and the user can subscribe to my subscription). Now when I go back into the app, I cannot reproduce the bug as it will be
Hi there - Since this topic has been brought up multiple times and left unanswered; I’d like to raise it again for Unity SDK. Android/iOS Native applications might be easier to add/remove code snippets, but with Unity wrappers accessing native code, it is much trickier and opens up potential pitfalls. Currently - our single source of truth for subscription revenue tracking is Adjust. We are using Unity’s IAP Package to complete the purchase and afterwards passing following data points to Adjust from the Client so that they can keep validate/track and attribute the revenue to the right marketing source.Apple transactionId originalTransactionId GooglePlay orderIdReference Adjust SDK Doc: https://dev.adjust.com/en/sdk/unity/v4/features/subscriptions#record-the-purchase-region-ios-onlyI’d like to retain Adjust still as single source of truth - my priority concern Revenue - Marketing attributions. However, RC SDK doesn’t give any option to access these variables and I need to find workaroun
I have an application on React native Expo. In this application I want to show Paywall.I use expo@51.0.36 and expo-router@3.5.23. OS - android. Same problem on physical device and emulator. import { View } from 'react-native';import RevenueCatUI from 'react-native-purchases-ui';const PaywallPage = () => { return ( <View style={{ flex: 1 }}> <RevenueCatUI.Paywall /> </View> );};export default PaywallPage;When I open a page with Paywall component, everything works, the component is displayed correctly. But if you go to another page and go back to the page with Paywall, the component disappears. What could be the problem?
I'm facing a crash on Android while using RevenueCat's Remote Paywall in my Flutter app. The error I’m getting is:com.revenuecat.purchases.Purchases$Companion.getSharedInstance kl.h0 - No singleton instance. Make sure you configure Purchases before getting the default instance. This doesn't happen on iOS, only on Android. I’ve followed the docs to initialize Purchases, but the issue persists and it’s causing a lot of crashes.Anyone else experienced this or know how to fix it?Thanks!
so basically, I have a bare minimum paywall that is only set in English, and I want anyone viewing the paywall to view it in English. now the problem is when the device language is English everything works fine. but once the device language changed for example arabic the paywall packages will not show.device in english:device in Arabic: the issue only happen in old iPhone device (iPhone 7, ios 15.8.3)tried it on new iPhones it works I am no sure if it’s going to happen to other iPhon models what could be the problem?
Added this packages:purchases_flutter: ^8.1.6purchases_ui_flutter: ^8.1.6 Error: Purchases instance already set with the same configuration. Ignoring duplicate call.D/[Purchases] - DEBUG(21300): ℹ️ Listener setE/PurchasesUIFlutter(21300): Paywalls require your activity to subclass FlutterFragmentActivityI/flutter (21300): ----------------FIREBASE CRASHLYTICS----------------I/flutter (21300): PlatformException(0, Make sure your MainActivity inherits from FlutterFragmentActivity, null, null)I/flutter (21300): #0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:648:7)I/flutter (21300): #1 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:334:18)I/flutter (21300): <asynchronous suspension>I/flutter (21300): #2 RevenueCatUI.presentPaywallIfNeeded (package:purchases_ui_flutter/purchases_ui_flutter.dart:41:20)I/flutter (21300): <asynchronous suspension>I/flutter (21300): #3 _configureSDK (package
I’m trying to implement Restore purchase for my first app using RevenueCat for Apple device. Want to understand how Restore Purchase work in RevenueCat When we call restore purchase, Does it check based on Apple account ID associated with that device / sandbox environment, or does it check based on the App User ID that we set for that session when initializing RevenueCat SDK? My paywall appears only after user has logged in if there is not any active subscription for that user, so RevenueCat SDK is always initialized with a valid App User ID. Let say a user login with email a@mail.com, make a subscription, then logout. He then sign up with a new email and log back in with email b@mail.com on the same device that uses the same Apple account ID. Would my understanding be correct that: He will see a paywall when logging back in with b@mail.com , since he is now being identified with a different App User ID which RevenueCat has not associated with any subscription yet If user clicks on Re
I have a revenue cat payment wall in my flutter app - all works fine in testing taking test subscriptions etc.. My question is - do I need to do anything to make it ready for ‘production’ ? want to make sure it can take real payments etc once I promote these releases to public production etc..Thank you in advance
This has wasted so much of my time, I am starting to think it was a total mistake to go with revenue cat if they can’t even prune their repo and make it small and convenient for developers. https://github.com/revenuecat/purchases-iosI put that into Swift Package Manager and it sits for hours.
I’ve been using RC in my Flutter iOS and Android apps and it’s working beautifully. I’m now looking to add web support w/ Stripe and am hitting a road block. In Stripe, we can create a single product with multiple price points. This seems to be the suggested way to do things, according to RC documentation. However, it appears I should use the product ID to create a single product in RC. This precludes me from putting my Stripe products in different RC packages for the offering.For instance, I have ‘Lifetime’, ‘Yearly’, and ‘Monthly’ packages in the default offering. I added those as price options for the Stripe product. But RC requires the ‘prod_######’ ID to link to a product in Stripe, which doesn’t differentiate for the price options.Should I split it up into different products in Stripe? Or am I missing something?Thanks!
Hi there, We have a meditation app, that has a 7 day free trial, initially we had the paywall after the initial login during onboarding, we noticed we were getting a 20% conversion from app download to trial, we recently updated the app, to remove the paywall during the signup and onboarding. So now users download app and automatically go into the trial, where they dont have to choose monthly or yearly plans until after the 7 day trial…Hope this is making sence…. :-)I have noticed now there are no metrics in the ‘Trial Conversion’ charts, is there a way I can monitor the download to conversion with the new version of the app? Thanks Gordon
Hey all.I have a paywall that just displays a single IAP, which I imported to RC from Google Play as a consumable. The problem is - once that consumable was bought once it can’t be bought again. Checkout/payment google pay widget just doesn’t appear, I can press on CTA button as much times as I want - nothing really happens. My guess is that it can be caused by not consuming consumable but I would think that expected behaviour would be a widget appearing to say ‘You already have this item’, plus from what I see on this forum, it seems that RC automatically consumes any non-subscription IAP from Google Play, so I’m really confused here.Please, let me know if you can help in any way
i have a flutter app about daily horoscope and tarot cards i’ve done sandbox tester and all the other revenuecat settings when i try to test it in my iphone i come up to this error in my logs[configure] DEBUG: ℹ️ Configuring SDK using RevenueCat's UserDefaults suite. [identity] DEBUG: 👤 Identifying App User ID [configure] DEBUG: ℹ️ Debug logging enabled [configure] DEBUG: ℹ️ SDK Version - 4.25.6 [configure] DEBUG: ℹ️ Bundle ID - com.josephmp5.seeryuso [configure] DEBUG: ℹ️ System Version - Version 16.6 (Build 20G75) [configure] DEBUG: ℹ️ Not using a simulator. [configure] DEBUG: 👤 No initial App User ID [configure] DEBUG: ℹ️ Purchases is configured with response verification disabled [configure] DEBUG: ℹ️ Delegate set [offering] DEBUG: ℹ️ Offerings cache is stale, updating from network in foreground [network] DEBUG: ℹ️ GetOfferingsOperation: Started [network] DEBUG: ℹ️ There are no requests currently running, starting request GET /v1/subscribers/$R
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.