Get help with anything related to RevenueCat.
Recently active
Hello,I sent my app for review but it got rejected due to Error 23, Guideline 2.1 - Performance - App Completeness.In-app purchases are in the “Ready to Submit” state. Paid Applications Agreement is Active. Tax forms are Active. A bank account has been added.
I’m working on a subscription enabled app, I have enabled monthly and yearly subscriptions on apple dashboard for my app do I still need to enable in-app-purchases? I don’t have consumable, non-consumable items.In xCode I have added in-app-purchases capabilities but I’m not sure if I need to setup In-App Purchases.Thanks
Is it necessary to perform additional integration based on the documentation from https://developer.amazon.com/docs/appstore-sdk/integrate-appstore-sdk.html ? I did not find any mention of this in the documentation, either in RevenueCat Documentation or in react-native-purchases. Also, the questions already posted on this forum do not have a logical conclusion. The fact is that after setting everything up perfectly and testing the build in production, I have:SKUs are identical
I have a monthly subscription that gives 40 virtual credits each month. It seems that each renewal, it adds another 40 credits. Is there way to make sure the credits don’t roll over each month?
Hello,I am wondering if it is possible for stripe checkout metadata to be propagated from the revenue cat webhooks that get sent to my server. I understand how we can set the app_user_id ( a combination of setting the metadata in checkout.sessions.create ) but is is possible to set other metadata on the stripe session that will propagate to my server? This feature would be useful in cases where the I have a ton of different products and I could link it the db identifier on my end to avoid looking up the product from stripes api.Thanks!
For anyone who has had to create a secondary Firebase project to support a Production environment seperate from Development. I would love some advice or testimony on what you did.I am currently assuming that I will create a new environment for prod assumign the one i have setup already is devhave to create a secondary project in firebase with 3 new apps (1 web,1 ios, 1 android) I have to create a secondary project in revenueCat linked to the new firebase project I have to create a new set of ios app/google/stripe play app and recreate the subscription products.I am a bit unsure if 3 is correct and was wondering if anyone had success using the same apps/purchase products created for both environments in a dual firebase/revenuecat sitch.Cheers,Onyaga
I am upgrading from Legacy to V2 paywall and am using the React Native Paywall UI component to display my paywall inside a route view. The docs suggest having an `option` Prop passed `displayCloseButton: true` in order to render the close button: <RevenueCatUI.Paywall onDismiss={onPressDown} onPurchaseCompleted={handleContinue} onPurchaseError={handleError} onRestoreCompleted={restoreComplete} options={{ displayCloseButton: true, fontFamily: 'Inter_400Regular', }}/>However, there is no close button visible in my UI anymore. Any suggestions for debugging this?
Hello, I'm trying to purchase an inapp purchase product on production, but it's taking a long time to load. Can someone help? I downloaded my app at https://apps.apple.com/eg/app/sumizeit-daily-book-summaries/id1327646115 and clicked on Upgrade Now. When I tried to buy the monthly in app purchase product, it's taking a long time to show the payment screen. What is going on?
I tested fresh version of my app via TestFlight - I opened app from it and purchased yearly subscription.It was my real device and the account was my real account (not a sandbox one).After I made a purchase I don’t know how to cancel it:in the sandbox account section (inside settings → Developer, etc) there is no any subs, because I didn’t purchase from sandbox account in the real Account Settings → Subscriptions there is only my real subs for others app.I see that sandbox purchases still coming to RevenueCat every day (renewals).How to cancel subscription made on real acc in app started from TestFlight? Where else I can check?
https://pub.dev/packages/purchases_flutter/changelog#900 broke restoring some purchases. I’m trying to find a solution for it, so I wanted to ask:Does RevenueCat plan to somehow automatically fix this? I saw this comment mentioning RC working on some permanent fix? Is it possible, with any version of the SDK, to detect which purchases won’t be restored in version 9+ ? If it was, then developers would be able to ship such detection and store user’s info (locally or on server) about their purchases. App could be running with this logic for XXX time, before finally updating to version 9+. It’s not ideal, but it would save a considerable percent of users. AppendixI have an account where I made first ever purchase in my app using https://pub.dev/packages/in_app_purchase. After I migrated to RC, restoring the purchase always worked fine, but stopped after updating to version 9.0. I double checked my git history and I used `buyNonConsumable()` method back then. In RC dashboard the product wa
Hello everyone :)The behavior I describe below happens in open testing.Context:I’m using RevenueCat for subscriptions in my Flutter app.Users must have an account linked to my backend in order to subscribe.That’s why I’m using the option “Keep with original App User ID” in RevenueCat.Since the stores require a “Restore Purchases” button, I added one, and on click I run:final user = await Purchases.restorePurchases(); Problem:Each time I click on my restore purchases button, I get this error:PlatformException(7, There is already another active subscriber using the same receipt., {message: There is already another active subscriber using the same receipt., readableErrorCode: RECEIPT_ALREADY_IN_USE, code: 7, underlyingErrorMessage: There is already another active subscriber using the same receipt., readable_error_code: RECEIPT_ALREADY_IN_USE}, null)Which has no sens because, if the user tries to purchase a subscription, the payment modal does show up, and they can successfully subscribe t
I am trying to set up multiple pricing tiers. For example, I want a paywall that has a toggle to switch between the ‘Plus’ tier and the ‘Pro’ tier. Each tier has an annual and a monthly option. On the paywall page, it only lets me select one offering. But for an offering, I can only assign one product per period (For example, I can only have one product for Apple under the monthly package).Anyways, I want to be able to have the paywall that switches the offering depending on the toggle. Is this possible? How can I achieve this?
We are playing with the idea of introducing an affiliate program that revolves around using offer codes to track purchases. Very much in the same way that you see podcasts doing it by telling their listeners to enter code “PODCAST” to get 10% off, which in turn allows the company to track sales and measure campaign performance. I know that iOS and Android both have offer codes, but I think this type of thing would require a more custom solution. Has anyone done this before? I know we could easily build our own system that generates codes, and let users enter a code in the app, which we verify, then display alternate pricing and tag the user with the offer code. But then we have to figure out the best way to track sales, retention, life time value, refunds, etc. to determine how to pay affiliates. Would we be able to utilize any of the integrations for this purpose? Has anyone done this in combination with a promotional service like https://www.talon.one/?Any insight here would be appre
For some reason, the `{{ product.price_per_month }}` has a different currency symbol than `{{ product.price }}` Does anyone has an idea how to fix it?
Recently i have seen that lot of renewals from billing retry. These users are like June or July month users. After getting charged these users are asking for refunds and apple is approving it. This is causing issue in total refund rate for us. We already received notice from apple for higher refunds rates. But this issue keep increasing day by day. Anyone can help me in this?
My app uses credits as consumable in-app purchases. What I want is to restore users' credits after they reinstall the app. Is there a way to maintain the same user ID so that I can use them to restore users' credits in the back-end?
Image changes are not propagating to paywalls in production. This is happening for 3-4 days now across multiple paywalls and multiple test devices (physical and sim). I’ve tried removing the image, republishing, re-adding the image, republishing, but there’s no change to the image content at all. Text changes to the paywall in immediate and working as expected. I’m not sure if it’s related, but I did upgrade to the 5.35.1 iOS SDK last week. I already created a support ticket a couple of days ago, but wanted to raise here in case there was a workaround anyone is aware as this is blocking me from releasing a new subscription option.
For the life of me I cannot figure this out! I have a year and half of app dev for my app Chip In, everything is tested out perfectly, but this last subscription issue, which is keeping me from going live. I am testing in Sandbox and 100% logging out of my main apple account michael***@gmail.com completely, logging in to the test phone (latest OS) with a new apple test account setup in sandbox test**@chip***. So 100% the phone is not logged in with this first account. No matter what I do, it keeps saying receiptAlreadyInUse when I try to make a purchase of one of my two subscriptions setup in apple. My app connects to PLAID financial and i get billed for daily webhook synchronizing one or more of their banks/credit card accounts. So I can’t just transfer subscriptions to new IDs as they could bounce back and forth between multiple users, while I get charged $$$ in the background from PLAID synchronizing all those accounts with their bank transactions, al though they are effective
I setup RevenueCat recently to deal with a subscription IAP for my app. It all works perfectly.I noticed that my consumable & non-consumable IAPs (which were setup years ago and have nothing to do with RC) are also appearing in my transaction reporting. My question is this: Do these transactions count towards the £2,500 per month free usage? And if so does anyone know how to remove them from RC? I tried deleting these products but it complains they have transactions against them. All my ‘checks’ in the apps that users have these consumables/non-consumables are done through Apple Directly, not involving RC.
Hi I’m having the following problem:I cannot add additional fonts to the paywall designer or additional font styles (e.g. bold).I already uploaded a Custom font (Display fair) and it only registered regular and italic.Now I want to add additional styles for this font but besides uploading the fonts and styles and seeing the process bar filling up they are not added.I can also not delete the fonts I already uploaded. What can I do ?
BackgroundI posted an earlier, slightly incoherent ,version of this on the Shipaton livestream discord during the Paddle web payment event, without anyone having time to answer.These ideas may be interesting for anyone debating complex business models and associated payments.Martial arts domainMy app is for clubs and instructors for martial arts (I’m deeply into kung fu and tai chi) & I’m pushing to get it wrapped well enough for Shipaton (unsurprisingly).It will be international from day one and needs to be cross-platform because of SE Asian Android dominance.Whilst initially pitching the idea very much at clubs with members attending in-person, there’s a lot of scope for them to profit more from online sales.DefinitionsThe proposed monetisation model is around teachers and students. Teachers may be associated with a club but, at least for now, “teacher” as a proxy for the club works to, uhh, simplify this.I’m using the term “course” in a very broad sense - it may encompass a sing
Hi, I’m currently trying to integrate this APIhttps://www.revenuecat.com/docs/api-v2#tag/Customer/operation/list-subscriptionsIn the response example, it shows `entitlement` with `product` details of that entitlement. But, from my testing, the `product` field is not in the response. I've tried experimenting with `expand` parameter with multiple values, but the `product` field is not showing. Is the documentation wrong? Can you tell me how can I get the `product` details? "entitlements": { "items": [ { "created_at": 1755827296320, "display_name": "Premium", "id": "entl861f....", "lookup_key": "premium", "object": "entitlement", "project_id": "proj8d....." } ], "next_page": null, "object": "list", "url": "https://api.revenuecat.c
Context1I have an existing iOS app using RC for subscription and lifetime purchase of Pro features.I am about to roll out a Mac version (part of Shipaton).For both, I would like to implement virtual currencies. This is a long-planned feature to be used to buy content where a portion of the payment would be forwarded to content authors. I’ve implemented most of the local document model including content rights tracking all the way down, was holding off hoping you’d solve the rest for me.I have also considered allowing coins to be used to purchase short-term access to Pro features, for people who hate subs and don’t want to commit to the size of the lifetime purchase.These products (Touchgram) emphasis user privacy and preserve anonymity, requiring accounts only for people who will be submitting content for re-sale. Context2As a separate Shipaton submission, I’m building a Compose Multiplatform app. However, if virtual currencies prove problematic, I think the business model can work wit
I’ve been working with the API and noticed that in several endpoints where active_entitlements or similar objects are returned in a lightweight format, we only get the internal entitlement_id, like this: { "entitlement_id": "entl498b7a7b44", "expires_at": 1755783769000, "object": "customer.active_entitlement"}However, it would be extremely helpful if the lookup_key was included as well in these responses.For example, in:GET /v2/projects/{project_id}/customers/{customer_id}GET /v2/projects/{project_id}/customers/{customer_id}/active_entitlementsWe only get the internal ID, and in order to know which entitlement this refers to (e.g. "Pro", "Premium", etc.), we have to make an additional API call to:GET /v2/projects/{project_id}/entitlements/{entitlement_id} This adds unnecessary complexity and overhead, especially when managing entitlements for multiple users at scale.Would it be possible to include the lookup_key directly in all entitlement summaries across the API?It would make inte
I’m building an app where the user can make a purchase without creating an account. In this case, RevenueCat associates the purchase with an anonymous App User ID. Later, I prompt the user to create an account, and I call:await Purchases.logIn(newUserId)(Using Flutter SDK)This correctly links the original anonymous user to the new App User ID (an alias is created in the dashboard), but no TRANSFER webhook is fired.I’m relying on RevenueCat webhooks to keep my backend subscription data in sync, but in this case no webhook is triggered — so my backend doesn’t get updated.Questions: Is this expected behavior when logIn() creates an alias rather than transferring the purchase? If so, what’s the recommended way to update my backend in this flow?
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.