Discussion and help from anything related to RevenueCat.
Recently active
Hello,We are currently using the React-Native SDK. The getCustomerInfo() method provides a PurchasesEntitlementInfo object that contains both the originalPurchaseDate and latestPurchaseDate.originalPurchaseDate: The first date this entitlement was purchased, in ISO8601 format. latestPurchaseDate: The latest purchase or renewal date for the entitlement, in ISO8601 format.Does the originalPurchaseDate refer to the start date of the current subscription cycle? Or does it represent the very first date the subscription was ever started?For example, if Customer A initially began a 1-month premium subscription on 2024-03-01, canceled in 2024-06, skipped payments in 2024-07 and 2024-08, and then resumed the same 1-month premium subscription on 2024-09-01, what would be considered the originalPurchaseDate?In this case:If the originalPurchaseDate is 2024-03-01, is there a way to identify the start date of the current subscription cycle? If the originalPurchaseDate is 2024-09-01, is there a way t
I’m trying to add payments on FlutterFlow but whenever I click a button it doesn’t show the information but instead a white wall that covers the site and nothing appears there. I have tried adding the payments and accepting the paid agreements of Apple and Google Play but the screen is still white.Can you help me solve this problem please? Any help is appreciated!Here is the video of the problem:https://imgur.com/a/AmCtAdT
Hi all, I’m testing the possibility of extending a subscription.For Apple I managed to get it work by using the https://api.storekit.itunes.apple.com/inApps/v1/subscriptions/extend/ endpoint. This also produced a webhook event. For google I used the https://api.revenuecat.com/v1/subscribers/{app_user_id}/subscriptions/{product_identifier}/defer endpoint. Now, the subscription correctly got extended by the amount specified; using the https://api.revenuecat.com/v1/subscribers/{app_user_id} endpoint to fetch subscriber data I can see the updated expires_date, but I did not received any webhook events. I would like to receive that event so that the user transaction list is updated as well. Since I integrated ETL export so i can fetch all user transaction data and pour it in my database, missing this event information can produce inconsistent data. Is this normal?
I am using Unity version 2021.3.29f1 and I am making subscription purchases with IAP version 4.12.2. IAP version supports android payment library version 6.2.1. So I am using RevenueCat sdk 6.10.0. When I try to get a build after sdk installation, I get an error as “com.android.build.gradle.internal.tasks.Workers$ActionFacade”. When I uninstall the SDK, the problem is solved. What should I do?
Hello,I’ve read all the other community posts for this issue and can’t seem to get to the bottom of it. I’ve also been through the Why are offerings or products empty? post.I’m running a Capacitor app with NextJS using @revenuecat/purchases-capacitor 9.0.4. I have configured Purchases with an apiKey and confirmed with Purchases.isConfigured() and Purchases.getCustomerInfo() - both coming back as expected.When calling Purchases.getProducts({ productIdentifiers: [‘my-product-id] }) I’m just getting back an empty array, no errors.My Service Account Credentials JSON is verified and I even imported the subscription product from Google Play, so I know the connection is working ok. When viewing the product within the RevenueCat dashboard I see “Store status: Ok”. The subscription is both active and backwards compatible within Google Play.I have a closed track release with a tester added (myself) and still no luck when trying on a device. I have also tried using Android Studio with a physical
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
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.