Discussion and help from anything related to RevenueCat.
Recently active
My app is a paid app, and I’m transitioning the pricing model to the same model as Due app (https://dueapp.zendesk.com/hc/en-us/articles/360053244591-What-is-the-Upgrade-Pass). The difference is instead of using a subscription, I use a consumable in-app purchase.Each feature in the app has its own release date. To determine if a feature is unlocked, I compare its release date with the upgrade end date. If the release date is the same as or earlier than the upgrade end date, the feature is unlocked. I calculate the upgrade end date from the CustomerInfo object returned from Purchases.shared.getCustomerInfo:Purchases.shared.getCustomerInfo(fetchPolicy: .notStaleCachedOrFetched) { customerInfo, error in if let customerInfo { let purchaseDate = customerInfo.purchaseDate(forProductIdentifier: productIdentifier) ?? customerInfo.originalPurchaseDate let endDate = Calendar.current.date(byAdding: .month, value: 12, to: purchaseDate) // Further logic here } else if let
Hello,I’m trying to use custom display logic in my android’s paywall dialog.I use “setShouldDisplayBlock” according to the documentation, however it seems it’s being ignored.Let’s use an exaggerated example:val paywallDialogOptions = PaywallDialogOptions.Builder() .setShouldDisplayBlock { false } .setRequiredEntitlementIdentifier(PurchaseManager.premiumEntitlementId) .build()PaywallDialog(paywallDialogOptions = paywallDialogOptions)It should never be displayed according to the documentation, yet it’s being shown the moment the screen is open.Did I get something wrong?I created a simple project that it can be tested on - https://github.com/kmalyshev/purchases-paywall-problem. You’d need to add a revenuecat’s api key and the entitlement identifier
We have found an issue during Live App Testing on the Amazon App Store. In the Amazon Developer Console we have set up one subscription in-app items with two terms: Monthly, paid subscription, no free trial, no promotional price Annually, paid subscription, free trial (1 month), no promotional price. When testing our app with Amazon Live App Testing, we found that the annual subscription package object from RevenueCat does not have a period set (it’s “period=null”), however, the monthly subscription has a period set as expected (“period=Period(value=1, "unit=MONTH", iso8601=P1M)”). The main difference between the two is that the annual subscription has a free trial period. This hinders us from displaying our available packages as desired with the proper subscription period. We’re using RevenueCat v8.1.0. My device is a Amazon Fire HD 8 (12th Generation), running Android 11 (SDK 30). Here are the RevenueCat Package objects, logged from a Live App Testing build of our app from the Amazon
I am testing my application. I can make purchases and test them in the simulator, but whenever I share testflight, it gives error number 23 on the real device. Can you help me, I'm sure I'm doing everything right?
Hi,We are trying to use the OpenAPI spec available on your website but if you run a linter against it, you can see that many of your examples do not align with the specification:v1:npx @redocly/cli@latest lint https://www.revenuecat.com/docs/redocusaurus/plugin-redoc-3.yaml v2:npx @redocly/cli@latest lint https://www.revenuecat.com/docs/redocusaurus/plugin-redoc-0.yaml This will show things like:Example value must conform to the schema: `refunded_at` property type must be string.238 | period_type: normal239 | purchase_date: '2019-07-26T01:02:16Z'240 | refunded_at: null241 | store: promotional242 | unsubscribe_detected_at: null It would be great if the RevenueCat development team could please fix these errors and publish a valid spec that would help us confirm we are calling the API correctly.
I’m building an app in FlutterFlow so no code app and i integrate RevenueCat that i would make app on subscription on monthly basis. I look and i do like tutorial say and every step one by one, but when i put in FlutterFlow test mode and press button nothing happen and i don’t know where is problem?Does anybody know some good tutorial or is open to help?
Android development using Flutter.When the system language is set to English, the paywall looks the same as in the preview screen as expected.However, when the system language is set to Japanese,the paywall looks different.Below is the preview when I set the Localization to Japanese on Paywall Editor.The same behaviour was observed in the emulator and on the actual device.The Japanese paywall cannot be set up correctly, even though this app will be released primally in Japan.Please help.
Hello, I am using revenuecat in my three apps. I have a problem with attributions for the first app.When the first subscription starts I see some attributions (ip, idfa, idfv, appslyerid, onesignalid ) but after renewal subscriptions I don't see any attributions. My other two apps have all citations after renewal and there is no problem.In all my applications; Firebase, Fb, AppsFlyer, SearchAds integration is available. Also, revenuecat plugin is installed on Firebase. I don't understand a problem with these integrations. Does anyone have any idea?Translated with DeepL.com (free version)
I am currently porting a Java Android app that doesn’t use RevenueCat to a Flutter Android app that does use RevenueCat. I have a single IAP for “pro mode” that is marked as consumable in Google Play but not consumable in RevenueCat.Once I launch this update I don’t want all my users to have to manually click my restore purchase button. I tried using syncPurchases() during first launch, but it takes two launches for this to take effect. I was able to make it work with restorePurchases(), but there are warnings in the documentation that this might prompt a login and I shouldn’t use it.What is the best practice here?
In our old question there was a reply stating we’ve duplicate products & some of them has no entitlements. Unfortunately, the question’s comments were blocked for some reason so we couldn’t reply there. It’s true that we had duplicate products but those products were never connected through the dashboard nor we used the API to add them.They appear after we successfully submit stripe subscription id as fetch_token to https://api.revenuecat.com/v1/receipts. While product with same stripe product id already exists in the RC dashboard. We’re not sure why and how that’s happening. But it may be worth mentioning, we’re listening to the invoice.paid as we’re using stripe checkout session which automates a lot of stuff. But it shouldn’t matter because we’re submitting the correct subscription id. For further clarification, this is how we’re handling creating stripe session:And this how we’re sending the Stripe subscription id to RC servers
Hi, I attached line of codes below, how can I send the email I get from Firebase to RevenueCat as the user’s email attribute.
Maybe I didn’t fully understand the purpose of packages in offerings. I would like to have one offering, with 1 package, which contains 2 different products. Both should have annual renewal, but are linked to different entitlements, since one gives full access, and one only reduced (read-only). How to do this? When I try to add a second product, the first one is replaced.Do I have to create 2 offerings? I cannot have another package with “Annual” identifier...
There are some users that seem to have access to a discount offering with no apparent mechanism to getting that discount. We want to be able to see how many users have this offering to understand how they are getting it and fix the issue
I’m hoping to get some clarification on how the Meta Ads Integration works. Our app consists of only subscriptions and we currently have the integration set up where we can see the events Trial Start and Subscription in the Meta Datasource. We have configured the events for SKADNetwork in the settings in the meta platform and I can see that the idfas and idfvs are properly being collected in the customer list on revcats platform. Our code (swift ios15+ app) in the application(didfinishlaunching:) has the ApplicationDelegate.shared.application(...) function then Purchases.configure(...) , collectDeviceIdentifiers(),setFBAnonymousId(...). I can see that we are successfully getting both subscription and trial start events, but why will our campaign not show any conversions in ads manager? What am I missing?
Hi, I’d like to use the purchase_ui library in flutter but as stated in the docs you can only pass a offering as parameter to the Paywall widget.For my use case I need more customization, is there a way to pass a list of StoreProductDiscount (Apple) or SubscriptionOption (Android) ?
We’ve activated the Branch MMP integration in RevenueCat. The RevenueCat documentation mentions:In order to attach attribution data to the correct user, make sure the App User Ids for RevenueCat and Branch match. The easiest way to do this is to set the Branch SDK identity to match the Purchases App User Id whether you're providing your own ids or using our randomly generated ids. The issue is users can start a subscription before we identify them with our ID’s. This means when the trial start event gets sent to Branch it looks like this:{ "name": "rc_trial_started_event", "user_data": { "app_id": "XXXX", "developer_identity": "$RCAnonymousID:ETCETCETC" }}Then when later events come in, the identity is different:{ "name": "rc_expiration_event", "user_data": { "app_id": "XXXXXX", "developer_identity": "OUR IDENTIFIER" }}Will the RevenueCat Branch integration handle this and correctly match up the identifiers as the same user?
Is it 30 days?
I want to show like this I already setup at paywall
Hi guys.I am encountering a crash in my Expo React Native application when attempting to make a purchase using the RevenueCat Purchases module. The error occurs when calling the purchasePackage method. The error message is: Attempt to invoke interface method 'java.util.HashMap com.facebook.react.bridge.ReadableMap.toHashMap()' on a null object reference. This is how i built:1, eas build --profile development --platform android2, Copied the generated .apk onto my phone3, npx expo start --dev-clientThe package itself working, because i am getting back products, and i can display them on the screen. But when i click on a package, and want to make a purchase, i am getting this error, and the app collapse. import Purchases, { PurchasesOffering } from 'react-native-purchases';const ANDROID_API_KEY = 'my_key';const TokenScreen = () => { const { t } = useTranslation(); const { balance } = useBalance(); const [products, setProducts] = useState([]); useEffect(() => { Purchases.setL
We are using RevenueCat Paywalls (Android, ios) for our subscriptions.Upon a successful purchase, a "PaywallResult" response is returned, from which we can retrieve the "CustomerInfo".Since a customer can theoretically have multiple entitlements, is there an easy way to identify the currently purchased subscription?Background: We need to1. send this subscription_id to our backend after the purchase2. on backend: fetch the subscription details using the RevenueCat API v2 beta,3. on Backend: save the subscription in our database, and provide the user with access to the purchased product.4. Send response back to app
I'm new to RevenueCat and am currently using RevenueCat with Flutter.As the title says, the first time I make purchase in iOS, it asks for my email address and password.In other apps, they don’t ask for them and you can pay with one tap.Is it possible to implement the same functionality in RevenueCat?Regards
Hi, Why is free trial offer is not showing up? Previously I created a base plan without any offer. Now I created a free trial offer in the base plan but it is now showing up in my flutter app. I waited a day in order to propagate changes but still nothing showing up.
Google play won't let me download my app bundle. He writes that the unsupported version of billing We found that at least one App Bundle from this release uses the following versions of the Play Payments library:AIDL Unity 2022.3.15RevenueCat version: 6.9.7
Hello! I am new to RevenueCat and I’m hoping to get some assistance on the best way to set up in-app purchases for my Flutter app (ios and android). I won’t have a version for subscriptions for 1-2 months, so my focus is on in-app purchases for the services that I provide. I want the user to be able to purchase a service before we chat in the app or online. After that chat takes place, the user will need to purchase a service again if they need to chat. Is this considered a consumable?I read this online: “Although RevenueCat is primarily used to handle subscription purchases, our SDK will track all purchases, including consumable and non-consumable in-app purchases (IAPs).” Are there any specific instructions on how to set this up? Any help would be much appreciated. Thank you!
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.