Get help with anything related to RevenueCat.
Recently active
I’m close to releasing a flutter app. I would like to handle payments using your paddle integration for web (and possibly show a button for mobile checkout because of the recent ruling against Apple). It seems that paywalls don’t support paddle and you can’t customize a paywall button to link to a url hosting paddle checkout. I don’t think I have an option but to create my own implementation of a paywall on web that looks like the revenuecat paywall for mobile which seems like a lot of effort and is not ideal..Are there plans to add a native Paddle integration or at least allow customization of that buttons action with revenuecat paywalls?
I have an iOS app, using SwiftUI, and effectively latest version of everything. I am using RevenueCat 5.23.0, minimum deployment iOS 18.1, XCode 16.3. I am facing an error which appears to only happen in production - not the sandbox. It’s extremely frustrating because it results in an RC error, even though the credit card transaction or trial start was successful. The user will tap my payment button, double click on the iOS native payment sheet to confirm w/ Face ID. The credit card payment or the trial start will succeed, and then iOS shows another prompt with the title “Turn off renewal receipt emails?” with the body “Get fewer emails by turning off renewals receipts for subscriptions. Your receipts will still be available in App Store settings > Purchase Hisotry” with two options to either turn on or off renewal emails. No matter which option is being selected, RevenueCat is populating the error object in the completion callback! This is happening even though my user is being bi
what is revnew cat appplease guide me THANKS
This is more of an apple app store question as opposed to any issue with RevenueCat…I recently changed the annual subscription price for my iOS app from $4.99/year to $9.99/year. This change went into effect approximately 4-5 days ago. If I look in the app store, it shows the correct price. However, when I view my transactions in RevenueCat, all of my renewals continue to show $4.99. All new annual subscriptions come with a 30 day free trial so I won’t know what price they will be charged until the end of their trial. Can someone please explain to me why this is happening? Thanks!
Has anyone else’s app been rejected because: Apps offering auto-renewable subscriptions must include all of the following required information in the binary: - Title of auto-renewing subscription (this may be the same as the in-app purchase product name)- Length of subscription- Price of subscription, and price per unit if appropriate- Functional links to the privacy policy and Terms of Use (EULA)Our app admittedly doesn’t include links to our PP nor our EULA but thats a separate issue. I’m worried that we are getting rejected because we are using the React Native Paywall UI package to pull our paywall from RevenueCat to display it which probably means the things apple is rejecting our app for are not included in the binary.
Hello,I have a custom paywall and I would like to programmatically open a web browser from my app to direct users to the revenue cat external checkout page. Given the recent changes allowing external payments for U.S. users, I want to confirm the safest way to implement this.What is the recommended approach to determine whether I can open an external payment link—particularly to ensure compliance with Apple’s guidelines and avoid any risk of App Store rejection?Thank you for your help.Best regards
Hi RevenueCat team and community,I’ve recently integrated RevenueCat Web Billing into my project. It’s a fantastic product—thank you! It allowed me to eliminate a lot of legacy billing code. However, I’ve run into a critical issue: the automatically generated invoices aren’t compliant with German regulations and don’t even include my company’s address.For the German market, invoices must include: Full company name and address VAT breakdown (net amount, VAT rate, VAT amount, gross amount) EU VAT ID in the footer (or equivalent) Could you please help me with the following: Invoice customization: Can I customize the invoice template, or at least enable Stripe Invoicing to generate fully compliant invoices? Invoice retrieval: Where can I access the generated invoices for archiving and submission to the tax authorities? Customer name capture: Is there a way to collect the customer’s name during checkout so it appears under “Issued to”? Thanks in advance for your assistance!Best rega
Hi! I have a Flutter app using RevenueCat for subscriptions.When a user activates a promo code via the App Store (outside the app), RevenueCat sends a webhook with an anonymous app_user_id (e.g., RCAnonymousID:abc123).The problem is that my backend expects a known user_id to associate the subscription with a user. Since the user hasn’t logged in yet, there’s no way to identify them based on this anonymous ID, and the webhook ends up being ignored.Later, when the user logs in to the app, I call:await Purchases.logIn(customUserId); But by that time, the webhook has already been processed (or missed), and there’s no connection between the anonymous ID and the logged-in user. What I want: To be able to process the first webhook, even if the subscription was activated anonymously (via promo code). My questions: What is the correct way to associate an anonymous RevenueCat ID with a custom user ID? How can I reliably process the first webhook and link it to the right user? Is there a way
When submitting the receipt, I passed in the user ID but returned an anonymous ID,
anyone has similar issues today? tested in both simulator and sandbox. I'm new to Revenucat. My question is: is this issue on my end or theirs? it seems paywall works fine for me yesterday,
Hi. I’m doing some development in the sandbox to add auto-renewing subscriptions to my app. I already have some consumable in-app purchases in production, and I have a webhook set up for “non-renewing purchase” to hear about those. I’ve noticed that when I use Xcode/StoreKit to test the purchase of my new auto-renewable subscription, the “non-renewing purchase” webhook is being called. Why is that?In Xcode StoreKit config I’ve checked that the subscription I’m purchasing in set up as an “auto-renewable subscription”. In RevenueCat the product is set up as a “subscription” (not a “not-renewing subscription”).Thanks
Why can't I use an offering on more than one paywall? What's the reason for this?
When I call Get List of Customers endpoint I get only 6 fields of information for every customer. The documentation shows that should be more fields.URL: https://api.revenuecat.com/v2/projects/proj_id/customersYour API v2 response (just for Item object):{ "experiment": null, "first_seen_at": 1744314095343, "id": "123456789", "last_seen_at": 1744314095367, "object": "customer", "project_id": "proj_id"}The documentation show that i should get this:{ "object": "list", "items": [ { "object": "customer", "id": "19b8de26-77c1-49f1-aa18-019a391603e2", "project_id": "proj1ab2c3d4", "first_seen_at": 1658399423658, "last_seen_at": 1658399423658, "active_entitlements": { "object": "list", "items": [ { "object": "customer.active_entitlement", "entitlement_id": "entla1b2c3d4e5", "expires_at": 1658399423658 } ], "next_page": "/v2/projects/proj1ab2c3d4/customers/19b8de26-77c1-49f1-a
If an expired iOS customer redeems a custom offer code (e.g. one month free), would the RevenueCat webhook send an event? If so, which event should we listen to (e.g. Renewal?) We have a backend that listens to the RevenueCat webhook to track some customer data, and are thinking of implementing offer codes (so we’d also want to listen for that)
Hi there,We have been using RevenueCat for our subscriptions since November last year, and have several internal users on lifetime memberships.Just this morning, several of our lifetime users (but not all) have been having issues. Their active entitlements are returning as existing, which is correct, but for some reason it is returning some as a trial period type (I think) because in the app it is detecting their trial as being expired, which is only does if the entitlement is period type trial and the expiry date is passed. This only happened since this morning, and it only happens for some users. Is there perhaps an issue going on with such entitlements? As soon as I revoke and re-add the lifetime membership for these users it works for them as expected.Thanks in advance for any help!
I’m trying to test my app before sending it out for beta in TestFlight. I need to make sure the paywall works properly, but there seems to be an issue.I built my app in Flutterflow. The way I have things set up:A user can add one project and do whatever they want with that project If they try to add more than one project (numProjects !=0), I trigger the Revenuecat “Paywall” action, providing the entitlement ID I then have forking logic that checks if the user has that entitlement If the user has the entitlement, they should be able to move forward and add a project without interruption If the user doesn’t have the entitlement, they should see the paywall component I builtBut I’m testing in my local environment (on my iPhone via XCode) with a Sandbox user, and the paywall component displays every single time, even though I can see in Revenuecat that this user has the entitlement. The first time I went through the flow, I was able to make the purchase with the Sandbox user, and I see the
Apple has appealed, but for the moment out-of-app purchases seem to be allowed in the US. From the updated App Store terms:3.1.3 Other Purchase Methods: The following apps may use purchase methods other than in-app purchase. Apps in this section cannot, within the app, encourage users to use a purchasing method other than in-app purchase, except for apps on the United States storefront … Fantastic news, at least on the surface. I’m holding off until we see how using external payments affect search placement. My app is new and I need user numbers more than $$, so I’m going to stick with App Store payments for the moment.WDYT? Are you considering switching your iOS app over to web payments? Let us know how it goes!And if the RevCat team has any guidance here, I’d love to see another blog post like this one about the earlier ruling. (Thanks!)
Hi, is there a way to not show text depending on if introductory offer is selected?In my purchase button when introductory offer is selected I’m showing a stack of two text elements, and when no introductory offer is selected I want to show only one text element.Currently I can only set the second text element to be empty with font size of 1, but it still occupies space, and the ‘continue’ element is not centered. When I set the font size to 0, it takes even more space. introductory offerno introductory offer (in prod, continue is not centered)purchase buttonbottom text element
Hi!We see that on iOS 18.4 was increased error rate. This problem is on StoreKit 2 and StoreKit 1.Description of the error on iOS 18.4 is “The operation couldn’t be completed. (StoreKit.InvalidRequestError error 1.)” I found this error in new API: https://developer.apple.com/documentation/storekit/invalidrequesterrorDo you have the same problem? How you handle it or maybe you added any fix?Thank you!
I'm building a Flutter mobile app that uses RevenueCat with anonymous user IDs — there is no authentication or login system.On first app launch, I store the user's anonymous appUserID securely. If the user makes a purchase, I save their credit balance and subscription status in Firebase, keyed by this RevenueCat ID. I also call setAttributes to store this ID (e.g. firebase_user_id) as a RevenueCat customer attribute.Now, my question is:If the user uninstalls the app or switches to a new device (but uses the same Apple ID or Google Play account), and then taps restorePurchases() (which creates a new anonymous App User ID), will the customer attributes from the original App User ID be automatically synced and transferred to the new user?I would like to rely on that attribute (e.g. firebase_user_id) to reconnect the user with their Firebase data — without requiring login or using a custom App User ID.Alternatively:Is there any way to access the original App User ID (i.e. the ID that Reven
Hi,when I look at the charts I have a “Proceeds” and “Transactions” row for every product. If I divide proceeds by transactions I get a per-unit proceeds value of 11 up to almost 17 USD. (for an in-app purchase for 22 USD) Why is that? Should that not be consistent?Of course there can be some currency variations but they can’t be so big that 14.28 € (proceeds from Apple for a purchase of 19.99 € in Germany / small business) is 11.50 USD, which would amount to more than 4 € difference.I checked very thoroughly and could not find any proceeds number per unit that would come close to the 14,28 € from Apple. I assume the numbers I get from the charts are correct and they seem to match what we get from Apple & Google, I just need to understand why this seems to vary so much every day. Thanks!
Hello, this is a follow up on a problem we have on iPhone 7 that is still unresolved: It’s been over 4 months that the issue has been escalated to the engineering team and the issue still persists. Can-we have a status update?
When I tried to set the Google Developer Notifications Topic ID, I noticed that the project shown in the selector below was incorrect.I suspect this happened because I accidentally uploaded the wrong Service Account Credentials JSON.As a result, the project path displayed in the dropdown menu is clearly different from the GCP project I intended to use.I have already re-downloaded the correct Credentials JSON and uploaded it to RevenueCat,but the Google Developer Notification Topic below still shows the wrong project path.How can I resolve this? (The new JSON uploaded and approved) The path projects/devsparkslab3... is pointing to the previously uploaded incorrect Credentials JSON, not the expected one.
Hello,We’re looking at the behavior of RevenueCat when using promo-code in the device store (Google Play, Apple Store) and would like the community to confirm or correct these statements:When a promo-code is entered in the device store, our app isn’t active and thus can’t look in our code for the App User Id. RevenueCat save some attribute (IP Address? MAC Address?) from the transaction to recognize the user. If only one existing App User Id has this attribute, it link the promo-code to this id. If several existing App User Id have this attribute, it link the promo-code to the latest active id. If no App User Id has this attribute, RevenueCat create a new App User Id with the promo-code If the promo-code has been assigned to App User Id X but the user log in with App User Id Y, they’ll not get paid access and will see the paywall. In this case, the user can click on Restore purchase in the paywall to get access without login with App User Id X. This however will take 1-2 minutes before
when i want to save my offerings, nothing is happening.if i save android product to offer, it’s okay.but when i wanna try with apple product, nothing happening.this console logs shown when i press save6sense JS Hit MAX_ITERATIONS in getNameOfClosestParentindex-BldvizOr.js:436 6sense JS Form Element: <fieldset aria-hidden="true" class="MuiOutlinedInput-notchedOutline css-1gocwb">…</fieldset> cannot have a name determined from parents, skippingindex-BldvizOr.js:436 6sense JS Hit MAX_ITERATIONS in getNameOfClosestParentindex-BldvizOr.js:436 6sense JS Form Element: <button class="MuiButtonBase-root MuiButton-root MuiButton-text MuiButton-textPrimary MuiButton-sizeMedium MuiButton-textSizeMedium MuiButton-colorPrimary MuiButton-disableElevation MuiButton-root MuiButton-text MuiButton-textPrimary MuiButton-sizeMedium MuiButton-textSizeMedium MuiButton-colorPrimary MuiButton-disableElevation css-12rgzh1" tabindex="0" type="button">…</button>flex cannot h
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.