Monetisation: in-app purchases & subscriptions
Overview
Emergent supports native in-app purchases (IAP) and subscriptions for both iOS and Android, letting you monetise mobile apps with minimal setup. Revenue flows through Apple App Store and Google Play Store, with platform fees deducted automatically.
For cross-platform subscription management and entitlement sync, Emergent integrates RevenueCat. For direct payment links in India, you can use Razorpay web checkout flows.
Platform fees & revenue share
Note
Apple and Google collect their fees directly from customer payments before remitting revenue to your developer account.
| Store | Standard rate | Small Business rate | Eligibility |
|---|---|---|---|
| Apple App Store | 30% | 15% | Developers earning <$1M/year across all apps |
| Google Play | 15-30% by revenue tier | Varies by revenue tier |
Apple In-App Purchase (IAP)
How it works
- Define consumable, non-consumable or auto-renewable subscription products in App Store Connect.
- Your agent can wire up product IDs and purchase flows using RevenueCat.
- Receipts are validated server-side to unlock entitlements.
Create IAP products in App Store Connect
Log into App Store Connect → My Apps → your app → In-App Purchases → +. Configure product ID, pricing and localisations.
Add product IDs to your Emergent project
Tell your agent which product IDs to implement (e.g.
premium_monthly, coins_100). The agent will generate the purchase code and UI.Test with sandbox accounts
Create sandbox test users in App Store Connect → Users and Access → Sandbox Testers. Sign in with that account on your test device to trial purchases without real charges.
Validate receipts server-side
Your Emergent backend verifies receipts with Apple's validation API and grants entitlements in your database.
Sandbox vs production receipts
Apple issues different receipt signatures for sandbox and production. Your validation logic must target the correct endpoint (
buy.itunes.apple.com for production, sandbox.itunes.apple.com for testing).Google Play Billing
How it works
Google Play Billing works similarly: define products in the Play Console, integrate the Billing Library in your Android app, and validate purchases server-side via the Play Developer API.
Set up products in Google Play Console
Monetize → Products → Create product. Choose one-time, consumable or subscription, assign a SKU and set pricing.
Integrate Play Billing Library
Describe the purchase flow to your agent (e.g. "Show a paywall for
premium_yearly") and it will wire up the billing integration.Test with license testers
Add test Google accounts under Setup → License Testing in the Play Console. These accounts can make real purchase flows that don't charge a card.
Verify purchase tokens
After a successful purchase, send the token to your backend. Call the Play Developer API to confirm validity and grant access.
Tip
Enable real-time developer notifications (RTDN) in the Play Console to receive webhook events when subscriptions renew, cancel or expire.
Cross-platform entitlements with RevenueCat
RevenueCat is a third-party service that unifies IAP logic across iOS, Android and web. It handles receipt validation, webhook delivery, and customer entitlement state - so you query one API instead of maintaining separate Apple and Google integrations.
Why use RevenueCat?
Single source of truth
Check a user's subscription status with one REST call, regardless of which store they purchased from.
Webhooks for lifecycle events
Receive real-time notifications on purchase, renewal, cancellation, refund or billing issue.
Paywall experiments
A/B test pricing and messaging without app updates (requires RevenueCat Paywalls SDK).
Analytics & churn metrics
Built-in dashboard for MRR, LTV, churn cohorts and trial conversion.
Integration steps
Create a RevenueCat account
Sign up at revenuecat.com and create a new project.
Add platform credentials
Under Project Settings, upload your Apple Shared Secret (from App Store Connect) and Google Service Account JSON (from Play Console → API access).
Define entitlements
In the RevenueCat dashboard, create entitlements like
premium or pro and map your App Store / Play Store product IDs to them.Add RevenueCat from the Connectors panel
Open your app's Preview, click Manage (to the right of Preview), then open the Connectors tab. Find the RevenueCat tile and click Add, then follow the prompts to connect your RevenueCat project. The platform wires the SDK into your app and stores your API key securely.
Check entitlements in your app
Call
Purchases.shared.getCustomerInfo() (iOS) or Purchases.sharedInstance.customerInfo (Android) to see which entitlements the user has. Your backend can also query the REST API if you prefer server-side checks.Info
RevenueCat's free tier supports up to $2.5k monthly tracked revenue. Beyond that, pricing is 1% of tracked revenue. See RevenueCat pricing for details.
Razorpay payment links for India
For web-based checkout flows or payment links (particularly useful in India), you can integrate Razorpay.
Note
Razorpay checkout is a web experience - best for one-time purchases, donations or manual top-ups. For recurring mobile subscriptions tied to app store accounts, use Apple IAP or Google Play Billing instead.
When to use Razorpay
- Direct payment links: Send a customer a Razorpay link via SMS, email or in-app browser.
- UPI, cards, wallets: Support popular Indian payment methods outside the app stores.
- Lower fees: Razorpay charges fees that are lower than app store rates (but you lose the store's trust signals and one-tap purchase UX).
How to add it
Open the Connectors panel
Open your app's Preview, click Manage (to the right of Preview), then open the Connectors tab.
Add the Razorpay connector
Find the Razorpay tile and click Add, then follow the prompts to connect your Razorpay account.
See the Razorpay page for going live and webhook handling.
Compliance & policies
App store review guidelines
Both Apple and Google prohibit alternative payment mechanisms for digital goods (e.g. coins, premium features) sold inside the app. You must use IAP/Play Billing for such items. Razorpay links are only acceptable for physical goods, services or donations.
Yes, but you cannot advertise or link to it from the iOS/Android app (Apple/Google rules). Users who find your site independently can subscribe there, then sign in to the app to unlock features.
Both stores support promo codes (Apple: Offer Codes; Google: Promo Codes). Generate them in the respective console and distribute via email, social media or influencer partnerships.
Apple and Google handle refunds directly. You'll receive a webhook (or RTDN) event when a refund is issued; revoke the user's entitlement in your database at that point.
Stripe is hidden on Expo/React Native projects in Emergent (Razorpay and PayPal remain available). For digital content or features unlocked in the app, you must use native IAP regardless of payment provider.
Testing purchases without spending money
Create sandbox test accounts in App Store Connect → Users and Access → Sandbox Testers. Sign in with that Apple ID on your device (Settings → App Store → Sandbox Account) to make test purchases that don't charge a real card.
Add your Google account email under Play Console → Setup → License Testing. Purchases made by that account will complete instantly without payment.
RevenueCat mirrors sandbox/test purchases in its dashboard. You'll see test transactions labelled as sandbox so you can verify entitlement logic before going live.
Accelerated renewals in sandbox
Apple's sandbox compresses subscription durations: a one-month subscription renews every 5 minutes. This lets you test renewal, expiry and grace-period logic quickly.
Best practices
- Show clear pricing and terms before the purchase sheet appears - both stores require transparency.
- Handle pending transactions: A purchase can be interrupted (user switches apps, loses connectivity). Resume the transaction flow on next launch.
- Log all purchase events: Store receipts and transaction IDs in your database for audit trails and customer support.
- Offer a restore-purchases button: Users who reinstall or switch devices need a way to re-validate their entitlements.
- Monitor failed renewals: Set up webhooks (RevenueCat or native RTDN) to catch billing issues and prompt users to update payment info.
Ready to monetise
With native IAP, RevenueCat entitlements and optional Razorpay links, you have flexible monetisation options for any mobile app. Ask your Emergent agent to implement the purchase flow that fits your business model.

