Get help with anything related to RevenueCat.
Recently active
Trying to update an IAP price on Google Play Store and I'm locked from making any changes because I need to migrate to wards the OneTimeProduct REST API (away from the current InAppProduct resource).Taking a look at the RevenueCat Google Play Store configuration docs, it looks like it still uses the inappproducts API.Is there any plans to migrate to the new OneTimeProduct API so that we can migrate away from the old and be unblocked to manage our prices?
My app offers a subscription that awards in-app credits on a recurring basis. These credits when used in the app cost me operational costs, with a relatively low profit margin. Occasionally a user will subscribe, use most or all of their credits incurring me significant charges, then request a refund which so far has been granted in full every single time by Apple.I have enabled sending consumption data to Apple, as well as tried setting the refund preference to decline refunds to avoid incurring further cash loss. I then contacted Apple, and they directly told me there is nothing I can do, and they do not have any suggestions. Perhaps this abuse is allowed by Apple, and we just have to price it in to our service cost, but I was wondering if anyone else has experienced something similar or if you have any genuine suggestions Apple isn’t sharing with me?
I had the design I wanted for phone and then switched to a tablet thinking that you all saved the phone version. I went to adjust that because it didn’t fit right on a tablet, and it messed up my phone design. Do you all not have a way to do phone and tablet separately? I’m not well versed with the design but on varying platforms, when I switch it has a separation for phone and tablet and one doesn’t affect the other.
Hi guys/gals, Does anyone know if I have to have a mobile app in order to use RevenueCat? I have a React/Node web app that I want to use RevenueCat has my paywall provider but I dont’ have a mobile app at the moment. Please advise or ask more questions about my situation. Thanks!-Colin
Hey! I’m exploring a system in my app where users can either pay a one-time fee to unlock a single specific article in a news app, or subscribe (monthly) to unlock all articles in the app.The subscription is easy. Product => Entitlement, check for the entitlement, badaboom, done.I am however not 100% sure on the best way to “unlock a single article”.I understand how to trigger the purchase, and I understand I need to implement a webhook against NON_RENEWING_PURCHASE to confirm receipt. What I’ve yet to nail down is the method in which my server knows which article to unlock.Is there a way to attach any form of metadata in the purchase? (`article: 123456`). I can’t seem to spot it.Alternatively, is the flow to have the app itself (after the purchase goes through) call an “unlock” API on my server with transactionId and article ID, which then looks for a corresponding webhook?With this flow, how would folks recommend handling the race condition between the webhook (which per docs can
I need help with some reports and the AI model here provide different answers everytime I ask some info.I have sent multiple emails and unfortunately - no response yet.Hoping to have someone from RevenueCat to help me, asap.
Hi team — I have a production iOS app launched 5 days ago, zero subscriptionsbecause Purchases.getOfferings() returns null current. Confirmed via REST APIV2 that subscription.duration is null in your database for our products(project proj7ea33d78). Sent a detailed support ticket 12h ago, no responseyet. This is blocking revenue on a launched app. Can someone from engineeringtake a look? Reference our support ticket about project proj7ea33d78.
I’m trying to set up an integration with the v2 API. I will need to create a RevCat customer if one does not already exist for this person, so I will need to search for a customer by app user id (and create a new customer if one is not found). But I can’t find any API that allows me to find customers by app user id (which is the only thing we have on our backend). How can I do this?
Hello, I’d appreciate some advice about adding another subscription duration to a released app.The app currently has a published paywall that contains only 1 package for an approved monthly subscription. I'd like to submit a weekly subscription to Apple for review and add the weekly option to the paywall alongside the monthly one.I’ve done the following so far:added the weekly subscription in App Store Connect to the subscription group with the same level as the monthly subscription it's now in "Ready to Submit" status imported the new weekly subscription as a product in RevenueCat attached the same entitlement as the monthly subscriptionThe app uses the “current” offering from the SDK to display the paywall, so the released version should be able to show the new subscription with an updated offering/package/paywall.I’m not sure whether I should modify the existing offering and paywall or create new ones.Can I modify the existing offering and paywall in place to add the weekly option w
Hello,I am experiencing an issue where the Introductory Offers displayed in my app (via RevenueCat SDK) do not match the configuration in App Store Connect.Variable: product.offer_period_in_daysCurrent Configuration of Introductory Offers in App Store Connect: Product A: 7-day Free Trial Product B: 3-day Free Trial Observed Behavior in TestFlight: RevenueCat returns a 365-day period and a 7-day period for these products instead of the configured trials. Environment: SDK: React Native Environment: TestFlight
Hi all,I've launched a privacy-first companion app — no sign-up, no login, no email collection. All data stays on-device by clinical design.Verified healthcare professionals apply via my website for free access. I want to grant them a 1-year promotional premium entitlement via the dashboard. The catch: I can't search for their customer record because email isn't indexed (and isn't passed via the SDK).What's the recommended pattern?Custom App User ID via logIn() with an opaque token I email them?Or a different approach for apps without sign-up?Anyone built something similar - all advice is very welcome!Thanks!
Hi RevenueCat team,I’m using RevenueCat Virtual Currency for subscription-based credits where credits expire at the end of the subscription billing period. The normal spending behavior works well for this model: expiring credits are consumed first, and unused subscription credits do not roll over into future periods.I’m running into an issue when consumed credits need to be refunded.Flow:A subscription grants expiring credits for the current billing period. My backend spends credits through the virtual currency transactions API. In some cases, that spend needs to be reversed/refunded. Today, the only option I see is to create a positive virtual currency adjustment through the API.The problem is that this positive adjustment appears to behave like a new non-expiring/admin adjustment, rather than being tied back to the original credit bucket that was consumed. So if the original spend used expiring subscription credits, the refund can effectively turn those credits into non-expiring cred
Hi everyone,My yearly subscription is not appearing in the production paywall, while monthly works correctly. Both products work as expected in TestFlight. The app has been live for ~40 hours since approval and the issue persists.Products:Working in production: monthly subscription Missing in production: yearly subscription Both products: Status "Approved" in App Store Connect, "Approved" in RevenueCat, Cleared for Sale, all countries selected, in the same subscription groupRevenueCat config:Both products are attached to the current offering as $rc_monthly and $rc_annual Both share the same entitlement Using the components-based PaywallWhat I've verified:Live API key (not sandbox) is in the production build — confirmed because monthly works Paywall renders both packages correctly in TestFlight using the same build Pricing is set on both products in App Store Connect Console.app on a production device shows the app is hitting Apple's production storefront for the correct bundle IDHas an
I went through the whole Troubleshooting checklist. I haven’t even submitted a new release since December, so nothing has changed. I have only one Offering, one Entitlement, and 3 Products, 2 of which I’m using. It’s a SwiftUI app in XCode. It’s as simple a configuration as possible. And it started randomly giving me Error #23 recently. The only thing I can think of is that my Apple Dev Subscription did renew during that period. But all the numbers stayed the same. I even re-generated the API and In-App keys in the store. I've tried updating all the client libraries and running it from XCode as well. Nothing gets rid of the error. Any ideas?
i have lost my authenticator app, and i want to enable authentication on my official app, how to change it, i need urgent help
I'm having an issue where my monthly and annual products are displayed with weekly attributes in my paywall.I already have other products with annual and monthly types, so I have to use custom type for these.How do I display the proper periods in the paywall?
Hi, google play - I have a subscription called premium, under that 3 base plans, premium7days, premium30days, premium90days. On the app the 3 products all show up as: Premium Access (myapp) $xx.xx. the only difference being the price. I have figured out the value that is shown comes from google play Subscription, Name field. How is this supposed to work, do I just need to manipulate it in code? Or have I missed something somewhere.
Hello,I have 2 subscription options, a monthly and a yearly.I'm running an iOS app with auto-renewable subscriptions managed through RevenueCat (SDK 5.67.1, StoreKit 2, default config — Purchases.configure(withAPIKey:) with no builder options). I have two products in the same subscription group: wingman_yearly and wingman_monthly, both with a 3-day free trial. Yearly trial conversions are debiting users normally and showing as posted charges in Apple's Purchase History. Monthly trial conversions are not — the in-app purchase modal returns success, RevenueCat marks the entitlement Active and emits a RENEWAL event with is_trial_conversion: true, period_type: NORMAL, expiration_at_ms correctly set to +31 days, AUD 19.99 in price_in_purchased_currency, and no expirationIntent / is_in_billing_retry_period / cancellation_reason flags — but Apple's iOS Purchase History (Settings → Media & Purchases → View Account → Purchase History) shows the same transaction as Pending, and no debit has
I’m running into a RevenueCat/App Store setup issue and wanted to see if anyone has seen this before.Scenario:- iOS app using RevenueCat with App Store subscriptions.- Subscriptions are created in App Store Connect and currently in `Ready to Submit`.- RevenueCat dashboard shows a `default` offering with multiple packages configured.- Each package has the correct App Store product attached.- Products are also attached to entitlements.- App Store Connect API key and In-App Purchase key both validate successfully in RevenueCat.- Bundle ID and RevenueCat public SDK key match the app configuration.However, when the app calls `getOfferings`, RevenueCat returns the current offering with **zero packages**.SDK error is essentially:```textOffering 'default' has no packages configuredYou have configured the SDK with an App Store API key, but there are no App Store products registered in the RevenueCat dashboard for your offerings.```I also tested direct StoreKit 2 product lookup from a TestFlight
``` mcp Error: Error calling create-product: Unknown error. HTTP status: 422 Full response: object: error type: parameter_error message: A duration is required to create a Test Store subscription product retryable: false doc_url: "https://errors.rev.cat/parameter-error" param: simulated_store_durations Expected parameters: project_id (string) *required* - ID of the project store_identifier (string) *required* - The store identifier of the product. - For Apple App Store products this is the product ID of the subscription or in-app product. - For Google's Play Store, it should follow the format 'productId:basePlanId' for subscription products and SKU for one-time purchase products. - For Stripe, the product identifier that always starts with "prod_" - For Amazon, if it's a subscription, the term SKU of the subscription. If it's a one-time purchase, the SKU of the product. - For Roku, this is the product identifier of the subscription or one-time purchase product. Example: com.revenu
Our paywall looks broken if the user has increased the iOS accessibility dynamic type sizes for fonts to the largest values. Adding the .dynamicTypeSize modified to the RevenuCat Paywall SwiftUI view does not seem to have any effect. Any way to set this to specify the allowable ranges of font sizes?
Hi team,I’m using RevenueCat Paywalls with a Flutter app and Google Play subscriptions.I have configured an introductory offer in the Play Console (₹150/month initially, then ₹250/month). This works correctly in the Google Play purchase screen.Revenuecat always displays the base price (₹250/month), not the introductory price.I cannot find any variables for:intro price discounted price offer pricingSo currently my paywall shows ₹250/month, while Google Play shows ₹150/month for eligible users. This creates a mismatch and poor user experience.Questions:Does RevenueCat Paywalls support displaying introductory pricing for Google Play subscriptions? If yes, which variable should be used to show the intro price? If not, is this a known limitation or planned feature?Would appreciate clarification, as this directly impacts conversion and pricing transparency.Thanks.
If I create or modify a paywall to support the new Rules and Custom variables, and publish it, what will users with older versions of the SDK see?In my example Paywall, I have multiple headings that are hidden/shown by some Rules, based on custom variables. What happens then? Will all my layer/components appear at once?Also there seems to be a new ‘Hide this component’ feature in the Layers list. Is that supported by all versions?I’m not sure I understand fully the implication of using new features that require a new SDK, and what will be the outcome. The editor has this mention: SDK version detailsThe minimum SDK version required has increased due to Rules.We've seen this paywall served to users on older SDK versions who may see your default paywall if you publish these changes. But I don’t quite understand what it implies. My ‘default’ paywall will look ok if the ‘hide’ feature is supported. But it will be a mess of duplicated content if not.
I’m trying to allow multiple users in my app (each with their own account) to subscribe using the same Apple ID.I’ve set up multiple subscription groups in App Store Connect and matching offerings in RevenueCat. In my app, I’m selecting different offerings depending on what’s already been purchased.But no matter what I do, I keep getting:“You’re currently subscribed to this.”Even when I should be hitting a different subscription group.In RevenueCat I can see the correct entitlement (like a different plan/group), but the app still seems to be using the default offering.Has anyone successfully implemented multiple subscriptions under one Apple ID with RevenueCat? Would anyone be willing to help me? I am more than willing to pay for help at this point 😞
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.