Discussion and help from anything related to RevenueCat.
Recently active
Hello everyone,We've been experiencing a decline in MRR since 1st of April, despite a normal rate of cancellations.On 20th of March, we introduced an upsell option in our paywall, allowing users to upgrade their subscriptions.While we haven’t made any changes on the Stripe side, we’ve noticed that the price value in Product Change events is now appearing as $0. As a result, these upgraded subscriptions are not being counted toward our MRR and ARR.Any insights on why this might be happening would be greatly appreciated.
For my new app (having no login support), I want to support a few coins to use the pro features to every user, post that they will be prompted to purchase more. I don’t want the user to be able to get those coins again and again by reinstalling the app. I also need to update the available coins via revenue cat if possible.Is there any such support in revenue cat? Need to know how does RC is able to store the user identifier on its own which is persistent across reinstall or restart of the phone.
I’m trying to implement web billing on my site but the documentation is extremely sparse. As far as I can see it only outlines the javascript sdk calls but I can’t find anything on how to integrate it into my site. If someone is going to sign-up using a credit card how do I pass that information. The documentation completely skips over this. Do you have a clear example of how this whole thing works? How do I integrate stripe and apple pay and google pay to actually use Web Billing. It seems to only option at this point is to use the hosted page.
I’m creating a webbapp (web + ios + android) and I’m setting up a minimal subscription support, using Revenuecat as source of truth.My implementation:The bakend receives a webhook call both from RevenueCat or for the frontend (when subscription succeeded). It just tates revenuecat app_user_id field OR the user_id (if is a frontend call, which is the same as app_user_id), and checks against RevenueCat the user entitlements, updating the associated entitlement object in the backend database. We dont care about different fields for each event kindSummary: Each time something happens (event), my backend doesn’t even care about the payload of the call, it just update entielements expiration in the database. This allow me to be completely agnostic to the platforms: IF SOMETHING HAPPENS → UPDATE ENTITLEMENTS.The problem comes to present a Manage Subscription button in the frontend. Because I don’t know or store the platform through the user has subscribed to my App.That leaves me to the quest
I was using API v2 to get customer info in order to get their entitlementsresponse = await fetch( `${apiUrl}/projects/${projectId}/customers/${userId}`, { headers: { Authorization: `Bearer ${apiKey}`, 'Content-Type': 'application/json', }, })Sometimes though I noticed that active_entitlements.items would be empty, even though the user did indeed have an active subscription. So I figured I’d try using the v1 endpoint insteadresponseV1 = await fetch(`${apiUrlV1}/subscribers/${userId}`, { headers: { Authorization: `Bearer ${apiKeyV1}`, 'Content-Type': 'application/json', },})And there it is! In this response the entitlement is included. v2 response, no active entitlements:{ "active_entitlements": { "items": [], "next_page": null, "object": "list", "url": "https://api.revenuecat.com/v2/projects/proj6e8ba871/customers/823211fd-6c1f-4d10-8b1f-de9718832140/active_entitlements" }, "experiment": null, "first_seen_at": 1741892521463, "id": "823211fd-6c
Hi,I have a blind spot when users delete their account from my Flutterflow app. That is, any paid subscriptions stored in RevenueCat remain live. Currently, only the anon Apple ID is attached to the RevenueCat record (this isnt stored in my auth users database though). The simple solution would be to also set the Apple email in the RevenueCat Customer record - then I can find a match with my auth users record. How can I have RevenueCat store the email (aswell as the Apple ID) when a purchase is made please? I’m not a coder and so I was hoping it was a settings adjustment, but I can’t see this anywhere. Many thanks for your time.
When I try to pay for a subscription in the app, and then I cancel the subscription.When I log out of the account and switch to a new account, and want to retest the paid subscription function, the following error is displayed.And the terminal shows those error: 🤖‼ BillingWrapper purchases failed to update: DebugMessage: Account identifiers don't match the previous subscription.. ErrorCode:: DEVELOPER_ERROR.nullE/[Purchases] - ERROR( 7251): 🤖‼ PurchasesError(code=PurchaseInvalidError, underlyingErrorMessage=Error updating purchases. DebugMessage: Account identifiers doon't match the previous subscription.. ErrorCode: DEVELOPER_ERROR., message='One or more of the arguments provided are invalid.')And no matter which account I switch to, the same token is used when creating an order? In other words, when using this app, the user's Google Play account will be bound to the first paid account by default. After that, no matter which account this app switches to, an error message will be d
Is there a broad timeline for adding Catalyst Support to the v2 paywalls?
When using the new paywall editor (not the v1 ones) and new templates, when I try to edit the product button I see an $rc_monthly and $rc_annual product but I only have an $rc_weekly and $rc_annual product set up, not a monthly one. These products are currently live and being sold via a v1 paywall so we’re fairly confident they are set up correctly.I am also unable to publish the paywall because no offering is selected, the offering drop-down is grayed out and says “no available offerings” in the sidebar under “General paywall properties”.Separately I’m wondering if there is a way to take a template which is designed for a single product, and add the product toggle (i.e weekly vs annual) there does not seem to be a button for this in the paywall editor.
So, I’m pretty sure this is a bug, but I wanted to post this here first. I have this working successfully in Android. But in iOS my pay flow hangs.In my pay flow, subscriptions are retrieved successfully, but when I go to purchase the selected package, it fails: Purchases.purchasePackage({ aPackage: packageToPurchase })Showing configured productsAt this point it should present the pay flow, but hangs.In android, it looks like this..
I’m creating a Flutter app with subscriptions. I’m using product priceString to get formatted price of the subscription. For some reason I get two different strings when I debug on device and on simulator (“4.99 USD” and “$3.99” respectively). 4.99 is the correct price for this subscription and I want it to be displayed with dollar sign ($) Instead of “USD”. How can resolve this issue?
RevenueCat subscription events are not showing up on Facebook ads manager. Can someone please help? Also how can I get them to show up regardless of whether someone accepted ATT?
I noticed in the docs that the new Facebook Conversions API has the option to send events even when ATT content has not been given by the user. However, a few screens above the docs say that the iOS IDFA is still required. We would prefer to skip using IDFA and asking for permission for UX reasons. Are we still required to try to collect the IDFA with Conversions API or can we completely ignore it?
Hi,I’ve had two instances so far with this Subscription cancelled due to a billing error:There’s no more info about the billing error in details. How do I debug this? What could have been the cause? Thanks ahead!
I created an app in a RevenueCat account (info@mycompany.com). However, to rapidly release in app store, I released it under my personal App Store connect account (myself@gmail.com). Since we’ve started getting paid subscriptions, I now want to transfer the app to my company’s App Store connect account (info@mycompany.com). I’ve moved the app to my company’s App Store connect account (info@mycompany.com) but I’m not sure how the RevenueCat migration would work since the RevenueCat account is already under my company’s email (info@mycompany.com) In summary:There is 1 RevenueCat account (info@mycompany.com) Initial App Store account which was used to create api keys, certificates, etc. (myself@gmail.com) Company App Store account which now has the app after I moved it. (info@mycompany.com) Should I re-create the api keys, certificates, etc. from within my company’s App Store connect account? Do I need to change the webhook urls, etc in RevenueCat? Will it affect the existing paid custom
Hey,We recently integrated Customer Center and are offering promotional offers in our when a user tries to cancel. I’m trying to evaluate the efficacy of the offer.Question 1: Is there any place to in RevCat to evaluate the efficacy/performance?Question 2: I see two ways to track promotional offer conversions, either by segmenting on the Active Subscriptions chart by “Offer Type” or by checking the “period_type" on webhooks. The question is do these track or fire, respectively, when the user converts on the promotional offer paywall, or when the promotional offer goes into effect, which could be many months from when they see the paywall? An example of the latter would be a user tries to cancel an annual with 6 months left on it, sees an offer for the next year at half off, accepts this offer, but that next year will not start for another 6 months and my not show up in the char or fire a webhook.Thanks!
Hi everyone,I'm integrating Facebook Ads with RevenueCat for ads analytics purposes and adding the Stripe Billing integration to RevenueCat.In my React Native Expo (Android app) subscription flow, users will complete the payment via the Stripe Customer Portal opened in an in-app browser. If I integrate Stripe with RevenueCat and the subscription events are successfully tracked in RevenueCat, will these Stripe-based subscription events be forwarded to Facebook Ads through RevenueCat's integration?I want to ensure that my ad campaigns can accurately track conversions from Stripe subscriptions.Thanks in advance for your support!
Your OpenApi yaml files:www.revenuecat.com/docs/redocusaurus/plugin-redoc-0.yamlwww.revenuecat.com/docs/redocusaurus/plugin-redoc-1.yamlwww.revenuecat.com/docs/redocusaurus/plugin-redoc-2.yamlwww.revenuecat.com/docs/redocusaurus/plugin-redoc-3.yamllack format specifier for integers explained in OpenAPI standard:https://spec.openapis.org/oas/v3.1.0.html#data-typesThis causes problem for Auto-generation of API layer for languages like C# (ASP.NET). E.g. in file plugin-redoc-0is a field `purchased_at` specified as:purchased_at: description: The date when the purchase was made in ms since epoch nullable: false type: integer example: 1658399423658This field is too long for integer (int32). Please specify the missing `format` attribute: `int64` into fields like this. You already closed similar issue without any explanation and reasoning. Can you please keep this opened or ideally fix it ? Thank you. PS: I am maintainer of .NET MAUI RevenueCat library https://github.com/Kebechet/Maui.Reve
Hey.I have configured Mixpanel integration on RevenueCat for tracking different purchase events. Can someone guide me, how can I set a custom property for these revenue cat purchase event - which are being tracked on Mixpanel.
In our iOS app we have a RevenueCat paywall to allow purchasing a subscription.If a user has an active subscription with account A, logs out, logs into account B, and tries to purchase a new subscription → then the following “You are currently subscribed to this” alert pops up.We want to allow the user to transfer their account if they wish. Is there any way to change the copy of this alert to mention that they’re about to transfer their account? Right now it’s very unclear that pressing “OK” will transfer their subscription.Thank you!
In my Android app I have a hard paywall and I’m getting problems with app review.Given the hard paywall there is a requirement that the user is logged in to Google Play on the device, there is no login in the app itself. App review did not like this even though I display a descriptive error when a ConfigurationError occurs, saying that they need to login to a Google account on device. They only see this as a crash/non-working app.Even worse, the app is only targeted for Sweden and thus requires a Google account set to the Swedish region. I have however opened this up to all markets just to try to get through app review but they don’t seem to want to login to the Google account I’ve provided in the Google Play console. Is there a built-in way to properly check if the user is signed in to Google Play. When they are not, is there a built in prompt for this I can use? If not, how is this usually handled?
I have a KMP app that is done except for billing. How does revenue cat handle promo codes for both Google and IOS? For marketing I plan on having 6 month free codes. We also want to offer our Beta testers 1 year free for participating. Will a separate set of codes have to be generated for IOS and google or can revenue cat create 1 pool of promo codes that will work on both platforms? It seems like this would be possible using entitlements I just don't see a way to enter a 1 time use code into the entitlements. Thanks,Kurtapa
I have added an offer to my currently Active and Approved subscription in app store connect. But after 1 day when I go to purchase my subscription, that 3-Day Free Trial does not show up.I have another subscription that does show it but that was added when I created it and before importing it into RC, thus RC imported it with all that info. So my question: How long does it take to reflect to users if you add an Introductory/Promotional offer to an existing live and approved subscription?
I’m liking the new Paywall builder a lot but I am facing several issues:When adding a product that is only configured on iOS the Paywall display seems to fail on android and some very ugly fallback Paywall is being displayed. If I remove the product and only include products working on both Platforms it works fine. The desired behavior would be just to leave out the not supported package instead of having the paywall fail completely. I tried to duplicate a paywall that I have created and wanted to attach it to a different offering. This does not seem to work, it appears that the offering of the original paywall gets duplicated as well. This is a big drawback, since I would then have to create every Paywall from scratch (I intend to have similar looking Paywalls throughout the app but displaying a different selection of products depending on the customer journey). Am I missing something here or is this not implemented yet? I could not find any place to detach the paywall from the offeri
We’re using AWS and our API is behind an API Gateway. AWS API Gateway provides API key authentication via the `x-api-key` header. Is there a way to customize the header RevenueCat uses when making webhook calls so that RevenueCat can integrate with APIs in AWS? Thanks a lot!!!Patrick
Already have an account? Login
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.