I have a ChatGPT kind of application, which is a, which has a subscription tier and a top-up tier. And the users can basically subscribe to these plans, different plans. And it's basically an AI chat assistant. Now we have developed the app and we want to publish it to App Store and Play Store. And while we are, you know, sending it for review, they are asking us to enable in-app purchases. But we use Stripe payment gateway for our web application. So like, how will things go within this, in this kind of scenario? Will we have to manage separately Stripe in-app purchases of Apple and then the same for Google Play Store for Android? Just guide me.
| Your Product | Must Use IAP? |
|---|---|
| Subscription plans (monthly/annual) | ✅ Yes — Apple & Google mandatory |
| Top-up credits/tokens for AI usage | ✅ Yes — these are digital consumables |
| Physical goods | ❌ No — Stripe is fine |
| B2B invoicing (outside the app) | ❌ No — but you can't trigger it in-app |
[iOS App] → StoreKit purchase → Apple validates → Apple webhook → Your Backend
[Android] → Play Billing → Google validates → Google webhook → Your Backend
[Web App] → Stripe → Stripe webhook → Your Backend
Your Backend → grants/revokes subscription access & top-up credits
| Library/Service | What It Does |
|---|---|
| RevenueCat | Wraps StoreKit + Play Billing, sends unified webhooks to your backend, handles receipt validation. Most popular choice. Has a free tier. |
| Adapty | Similar to RevenueCat, also has A/B testing for paywalls. |
| Qonversion | Similar, slightly cheaper. |
| Manual (StoreKit 2 + Play Billing 6) | Full control, no third-party dependency, but significantly more dev work. |
What is this revenuecat? Tell me more about it. And also prefer using doing web search to find information.
RevenueCat what is it features pricing 2025 2026
RevenueCat how it works SDK integration iOS Android
Your iOS App
└── RevenueCat SDK ──→ Apple StoreKit 2 ──→ Apple
──→ RevenueCat Backend ──→ Your Backend (webhook)
Your Android App
└── RevenueCat SDK ──→ Google Play Billing ──→ Google
──→ RevenueCat Backend ──→ Your Backend (webhook)
Your Web App
└── Stripe ──→ Your Backend (webhook)
↓
Unified Entitlement Check
Purchases.shared.getCustomerInfo() → has entitlement "pro_access"? → show premium featuresINITIAL_PURCHASE, RENEWAL, CANCELLATION, REFUND, BILLING_ISSUE, PRODUCT_CHANGE, etc.| Monthly Tracked Revenue (MTR) | Cost |
|---|---|
| Up to $2,500 MTR | Free |
| $2,500 – $10,000 MTR | ~$99/month |
| $10,000+ MTR | 1% of MTR (roughly) |
| Enterprise | Custom |
| Your Product | RevenueCat Type | Notes |
|---|---|---|
| Monthly/Annual subscription | Auto-renewable subscription | Fully managed — renewals, cancellations, billing retries all handled |
| Top-up credits | Consumable in-app purchase | RevenueCat tracks the purchase event; your backend grants the credits |
We use React Native, so is using RevenueCat still valuable? And if you want to, I want to know like if there's something like promo codes and all that we give. So right now we manage it through Stripe only and then update subscription or, you know, manage subscriptions and all because we have different tiers. So how will that, you know, kind of play a role into this? How will that fit in this whole scenario?
react-native-purchases). It's officially maintained by RevenueCat, not a community wrapper. This means:import Purchases from 'react-native-purchases';
// Initialize once at app start
await Purchases.configure({ apiKey: Platform.select({
ios: 'appl_xxxx',
android: 'goog_xxxx'
})});
// Fetch your offerings (subscription plans you configured in dashboard)
const offerings = await Purchases.getOfferings();
const monthly = offerings.current.monthly;
// Trigger purchase
const { customerInfo } = await Purchases.purchasePackage(monthly);
// Check entitlement
if (customerInfo.entitlements.active['pro_access']) {
// unlock premium features
}
purchasePackage() call for plan changes, but the underlying platform rules still applyUser subscribes on iOS
→ Apple charges them
→ RevenueCat receives Apple webhook
→ RevenueCat sends unified webhook to YOUR backend
→ Your backend updates user record: { platform: 'apple', tier: 'pro', status: 'active' }
User subscribes on Web
→ Stripe charges them
→ Stripe sends webhook to YOUR backend
→ Your backend updates user record: { platform: 'stripe', tier: 'pro', status: 'active' }
Your AI app (mobile or web) checks access:
→ Calls YOUR backend: "does user X have pro access?"
→ Backend checks the record — doesn't care which platform
→ Returns yes/no
subscription_platform per user in your DB and check the right source accordingly| Feature | Web (Stripe) | iOS (RevenueCat + Apple) | Android (RevenueCat + Google) |
|---|---|---|---|
| Subscription tiers | Full control | Platform rules apply | More flexible than Apple |
| Upgrade/downgrade | Instant + prorate | Deferred or prorated (Apple rules) | Multiple modes available |
| Promo codes | Stripe coupons | App Store Connect codes only | Play Console codes, redeemable in-app |
| Billing control | Full | Apple owns it | Google owns it |
| Platform cut | 0% | 15–30% | 15–30% |
| Cancellation/refund | You handle | Apple handles | Google handles |
Is this revenue cat free or paid and i dont understand it properly can you explain in simple words with example which does not include any code
| Your Mobile Revenue Per Month | What You Pay RevenueCat |
|---|---|
| Less than $2,500 | Completely free |
| $2,500 to $10,000 | About $99/month |
| More than $10,000 | Roughly 1% of that revenue |
Important: This is only for mobile revenue (App Store + Play Store). Your Stripe / web revenue is separate and RevenueCat doesn't charge you anything on that.
RevenueCat is a middleman service that sits between your app and Apple/Google, so instead of building two complex billing systems yourself, you build one simple integration and RevenueCat handles the rest. It's free until you're making real money.