Get help with anything related to RevenueCat.
Recently active
Hi all,I’m launching a subscription service that consist of a premium subscription with the possibility to purchase it monthly, 3-monthly and annual.I’d like to offer also two intro promotion:single purchase of a month subscription for a very discounted price, if you have a promo code single purchase of a month, 3 month or year subscription for a discounted price + a free trial of 1 week, otherwiseI’d also like to offer the second option to the people who bought the first one after their month finished.These offer are not renewing, so at the end the base price will show up. The problem is that I cannot figure out how to configure these subscription on both google and app store.Any help is appreciated.
Hye, I want to ask if it’s possible for other organisation app to have in-app purchase that is directly tied to my organisation payment profile? for Android & IOS, develop using react-native
I have an app that has monthly and annual subscription options. A company wants to use the app for their 10-50 employees. They don’t want every employee to make the purchase individually. Instead the company wants to make single purchase for all employees. Also I want to provide some discount since they are making a large purchase. Is there any way in Revenuecat SDK to handle that? Or is it supposed to be handled differently from Play store or app store?
Hello, I'm encountering an issue with my app.In my application, users have the option to upgrade to support the app, essentially making a donation without receiving any additional benefits. Users can choose the amount they wish to donate monthly, ranging from 1€ to 10€.Now, I'd like to consolidate all these options into a single offering, but it appears that I'm unable to do so. Whenever I try to add a package, I receive the message: "The package's display name or identifier already exists for this app."Although i can attach just Product to a Package.Is there a method to combine all donation amounts into one offering instead of having four separate offerings?P.S.: I'm pursuing this because it would streamline the implementation of the UI and simply display the revenuecat title/description in the app rather than coding it myself.
I configured a webhook using Revenucat and linked it to my Laravel backend. When I tested it with Revenucat's "send test with webhook" option, the request was sent to the backend and returned a 200 status code. However, when I tried it with our application on the Play Store, the webhook didn't work, and the request wasn't sent to the backend. I'm developing the mobile app using Flutter. What could be causing this issue?
Hello.Apple - App Store Connect.I added new subscriptions to my app. The status for subscription itself and App Store Localization shows “Waiting for Review” since 5 days now.The app was approved within 24 hours is not functional as designed due missing subscriptions.Is there anything I can do?App Store Connect changes sometimes design and setup. Is there possibly a common mistake I could have made?Many thanks,
I worked on 2 different flutter projects. Some of them pulled the purchase packages from purchaseStoreProduct, some of them pulled them using purchasePackage, how do we determine their usage area?
This is the scenario.I develop with Flutter.I have a subscription that is automatically renewed monthly or annually.My app can safely work with all the features even off-line.Of course, to subscribe, you need to be online.But I wonder: if after the first monthly subscription, the user always uses my app off-line (he must of course remember to put the device off-line before using it), how can I check if the subscription has been deleted?Can there be a way?Thanks for any suggestion.
Hello I have the problem that when I make a payment to a subscription within the application I get an error INVALID_CREDENTIALS this happens when I download the TestFlight application. I was testing locally on a physical device with SandBox accounts and it works fine and I don't get the INVALID_CREDENTIALS error, which causes me confusion because it doesn't work in TestFlight. To be sure that I use the necessary API Keys, I recreated a second project with new Apple Store Connect API Keys and I still get the error in TestFlight. What could be the problem?
when TRANSFER webhook is called, i’ve checked the event payload comes as below.{ "event": { "app_id": "1234567890", "event_timestamp_ms": 78789789798798, "id": "CD489E0E-5D52-4E03-966B-A7F17788E432", "store": "APP_STORE", "transferred_from": ["00005A1C-6091-4F81-BE77-F0A83A271AB6"], "transferred_to": ["4BEDB450-8EF2-11E9-B475-0800200C9A66"], "type": "TRANSFER", "environment": "PRODUCTION" }, "api_version": "1.0"}Using the payload, I’d like to transfer subscription info in my server RDB. However, transferre_from and transferred_to does not guarantee its order and the array length may not match. How can i find out accurate app_user_ids that are transferred from and transferred to?
Hey, we wanted to add some customers with subscriptions that are neither from Stripe nor App/Play Stores. Does revenue cat support this? Please advice if case there is a feasibility. Thank you.
I have an app that currently only supports lifetime purchases, and now I would like to add another annual subscription purchase and use RevenueCat to manage them.My question is, can RevenueCat recognize users who have previously purchased lifetime and entitle them?Some users who have purchased lifetime before this have had refunds, but their entitlement still exists, is it possible to use RevenueCat to automatically recognize previous users who have had refunds and cancel their entitlement?Any helpful responses would be appreciated!
I am attempting to use my Express server to verify subscription status of users who purchased their subscription on mobile using the RevenueCat API V2. “There is no way to import RevenueCat into NodeJS, we don't make any such modules or sdks. The best option is to use our APIs directly using Node fetch. In our API docs you should use our JavaScript language to do so.” REFERENCEOk so I’ll use the API then. But theres a catch for v2/projects/{project_id}/customers/{customer_id}/subscriptions:“This endpoint currently only returns subscriptions made on the web using the RevenueCat Web SDK and RevenueCat Billing. We are planning to add information for other supported stores soon.” REFERENCEIf thats the case how am I supposed to check on the subscription status through API? Should I use API v1/subscribers/{app_user_id} and parse out subscription info from the CustomerInfo object? I am a little concerned about using the older API as this is a critical part of our application.
Hello, I just started adding a subscription to an android app using java for the first time.Following the getting started guide, I got to the “Making a purchase” section. I want to use the code example from this section in my app but there is one parameter I’m not sure where is coming from.This is the code:Purchases.getSharedInstance().purchase( new PurchaseParams.Builder(this, aPackage).build(), new PurchaseCallback() { @Override public void onCompleted(@NonNull StoreTransaction storeTransaction, @NonNull CustomerInfo customerInfo) { if (customerInfo.getEntitlements().get(<my_entitlement_identifier>).isActive()) { // Unlock that great "pro" content } } @Override public void onError(@NonNull PurchasesError purchasesError, boolean b) { // No purchase } });The missing parameter is aPackage in the second line. What should I put there?Additional info: The app has only one product which is a subscription, it is connected to an entitlement, and there are no offering
we need to add a pay wall for an Hebrew appany way to support rtl
Hi everybody,my App (opti*Map for Android and iOS) offers in-app purchases. Up to now I used the SDKBOX IAP library which unfortunately is not supported anymore.Therefore I would like to migrate to RevenueCat!Has anybody in this community successfully implemented RevenueCat in a Cocos2d-x Project which is mainly programmed in C++?Thanks for your answers and best regards,Jens
“””> To remove the app - do we simply unpublish it from the stores? Will it automatically cancel subscriptions of existing users and refund them?That should work and will cancel everyone's subscriptions but Apple and Google recommend a more gradual wind down, similar to what I described above. You can avoid more issues like many customers requesting refunds all at once by doing it gradually (it sounds like you have 12 months to wind it down which is great.)“””This is an existing answer which I have a follow up on. If you unpublish the app and existing subscriptions get cancelled, do users also receive a refund? Or are cancellations not the same as refunds? For iOS, can a user get a refund only when they proactively request it?
SOLVED IGNORE-----------Anyone had an issue with the leading icon for your product feature not showing in the paywall. Seems like it should be simply choosing the icon but it’s not displaying for me. Am I missing a next step to ‘enable’ the choice? Is there a variable embed call I need to encode?Specifically this is the ‘Bengal’ paywall template. Thanks.
Trying to test subscriptions here in the UK, I’m getting times that are an hour earlier than they should be.Eg. in the below, “event_timestamp_ms: 1715095053830” is 3:17 pm UTC but it was purchased at 4:17 PM BST). This means that my test subscriptions have already expired as soon as I’ve bought them.I’ve been testing and using this app on RevenueCat for many years now, I haven’t noticed this before?Is this expected (i.e. do I need to write some test code to adjust the time)??{"app_id": "app4ba6172f87","app_user_id": "$RCAnonymousID:6e4c865677794230bf7135217c28374f","country_code": "GB","currency": "GBP","entitlement_ids": ["TPBDCore","tpbdinno"],"environment": "SANDBOX",“event_timestamp_ms": 1715095053830,"expiration_at_ms": 1674173448000,"is_family_share": false,"new_product_id": "TPBDInNoMonthly","offer_code": null,"presented_offering_context": null,"presented_offering_id": null,"price": 67.89584611756514,"price_in_purchased_currency": 54.99,"product_id": "TPBDIaYhAnnually","purchas
I want to send a reminder to users when their subscription is about to renew. On a daily basis, I need to determine the users whose subscription will automatically renew in the next X days.I know I could do this with the Customer Lists feature, but to my understanding, that would require manual effort. I am looking for a way to programmatically query Revenue Cat.Is there a REST API I could use?Or, is there another way I can do this?
Sometimes my customers get the following error while attempting to make a purchase: “There was an unknown backend error. The API key is not intended for the Platform.” with the error code 7810. I can’t find any solutions online so I decided to ask how I should handle this here.
Dear Suuport team, As per check ‘getCustomerInfo’, it work for: - “Test card, always approves” / “Slow test card, approves after a few minutes” and “Test card, always declines” but for “Slow test card, declines after a few minutes”, there is no response status of that case. May you advise in this case? Please kindly check the code below: Future<void> makePurchase(context, String numberOfEgg) async { Map<String, dynamic> payload = {}; List<Map<dynamic, dynamic>> filteredItems = []; bool slowCardApproval = true; try { filteredItems = filterById(numberOfEgg, Platform.isIOS ? products : googleProducts); if (filteredItems.isNotEmpty && !isPurchasePending) { ref.read(purchaseInProgressProvider.notifier).setInProgress(true); payload = { 'identifier': filteredItems[0]['identifier'], 'description': filteredItems[0]['description'], 'title': filteredItems[0]['title'],
On latest Expo and react-native-purchases, as far as I can tell everything’s still active and I had a purchase back in February so this used to work. Works fine on iOSconst productIds = Object.values(Constants.expoConfig.extra.products[Platform.OS]);console.log('productIds', productIds); // Array of products output correctly// No console.log() or console.error() gets firedtry { const products = await Purchases.getProducts(productIds); console.log('products', products); // Never outputs setProducts(products);} catch (error) { console.error('Failed to get products', error); Sentry.captureException(error);}
I am setting up a one-time purchase with RevenuecatI have set up subscriptions before, but never a one-time purchase like the “coins” I am attempting to sell now. I am logging “currentOffering?.availablePackages and see the correct product I want to sell. When I run: const { customerInfo } = await Purchases.purchasePackage(currentOffering?.availablePackages?.coins); I get this error: [TypeError: Cannot read property 'identifier' of undefined] Please let me know if you can see what I am doing wrong. Please see the attached screenshot to see what is logging out for my currentOfferings
Hello,I'm currently working on automating an email notification system where users who are on a free trial receive an email automatically 5 days after their initial sign-up. I'm using webhooks for this purpose. Below is the implementation snippet using Node.js, Express, and Nodemailer: require("dotenv").config();const express = require("express");const bodyParser = require("body-parser");const nodemailer = require("nodemailer");const app = express();const port = 3000;app.use(bodyParser.json());const transporter = nodemailer.createTransport({ service: "gmail", auth: { user: process.env.EMAIL_USER, pass: process.env.EMAIL_PASS, },});async function sendMail({ to, from, subject, html }) { try { let info = await transporter.sendMail({ from: from, to: to, subject: subject, html: html, }); console.log("Message sent: %s", info.messageId); return "Email sent successfully"; } catch (error) { console.error("Error sending email: %s", error); return
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.