Skip to content
WebViewGold Vibe Coding to App Store Get WebViewGold

v0 + in-app purchases

In-app purchases and subscriptions for your v0 app

Your v0 app probably charges through Stripe. On the web that stays. Inside the iOS app, Apple requires In-App Purchase for digital goods (Guideline 3.1.1), and Google Play Billing applies on Android. WebViewGold handles both through RevenueCat with one URL call from your web app.

Which payment method is allowed where

What you sellIn the iOS appIn the Android appOn the web
Subscriptions, credits, premium features, digital contentIn-App Purchase (RevenueCat)Google Play Billing (RevenueCat)Stripe
Physical goods, deliveries, tickets, bookings, services performed outside the appYour web checkout is fineYour web checkout is fineStripe
Reader-type content purchased elsewhereMay be consumed without IAP, with no purchase links in the appAllowed with restrictionsStripe

Set up in-app purchases for a v0 app

RevenueCat is free up to a monthly revenue threshold and syncs both stores.

  1. Create the products in App Store Connect and the Play Console

    Define your subscription or one-time product with identical identifiers on both stores (for example pro_monthly). Apple requires a paid-apps agreement signed by the account holder.

  2. Connect both stores to RevenueCat

    Create a RevenueCat project, add the iOS and Android apps, paste the store credentials and define an Offering with your products. Optionally design a native paywall in the RevenueCat dashboard.

  3. Enable RevenueCat in WebViewGold

    Paste the RevenueCat API key and project ID into Config.swift and Config.java (or the Cloud Builder). Done on the native side.

  4. Trigger purchases from your v0 app

    Navigate to revenuecat://purchase?external_id=USER_ID&product=pro_monthly from your upgrade button, or show the native paywall with revenuecat://launchPaywall?external_id=USER_ID. Use the user ID from Next.js route handlers and server actions, Postgres via Neon or Supabase as external_id.

  5. Unlock features in your backend

    Point a RevenueCat webhook at Next.js route handlers and server actions, Postgres via Neon or Supabase and set the user's plan when a purchase or renewal event arrives. Your web app then shows the premium features exactly as it does for Stripe customers.

  6. Hide the web checkout inside the app

    Detect the app via the custom user agent WebViewGold sends and show the IAP button instead of the web checkout. Apple rejects apps that link out to external payment pages for digital goods.

Rules to respect

  • Apple Guideline 3.1.1: digital goods and services unlocked in the app must be sold via In-App Purchase. Do not show "cheaper on our website" hints or external checkout links inside the iOS app.
  • Google Play Billing policy: the same applies to Android with a few exceptions and regional user-choice programs.
  • Subscriptions must be restorable: WebViewGold handles the native restore flow via RevenueCat; show a "Restore purchases" link in your settings.
  • In-app purchase support in WebViewGold requires the Extended License (see license upgrade).
  • Apple's Small Business Program and Google's 15% tier reduce the store fee for the first $1 million in annual revenue; RevenueCat supports both.

Frequently asked questions

Can I keep Stripe for my v0 web app?

Yes. The web stays as it is. Only purchases made inside the iOS and Android apps go through the stores. Many apps run both: Stripe on the web, IAP in the apps, with one plan field in the database.

Does Apple take 30 percent?

Apple and Google take 15 percent for most small developers (under $1 million per year through the Small Business Program / 15 percent tier) and 30 percent above that. The price difference is usually worth the reach of the stores.

Can I sell credits for AI features through IAP?

Yes. Consumable in-app purchases are made for credits. Define the consumable in both stores, map it in RevenueCat and add the credits in Next.js route handlers and server actions, Postgres via Neon or Supabase on the webhook event.

Do I need the native paywall?

No. You can keep your own pricing page inside the web app and just call revenuecat://purchase from the buy button. The native RevenueCat paywall is optional and can be A/B tested from the dashboard.

Ready to ship your v0 app?

App Store & Google Play approval guarantee – or your money back within 14 days

Prefer to hand it over? Full Service: we configure, build and submit for $349. Questions? Chat with us 24/7.

Refunds are granted under the conditions listed in our FAQ: a non-content rejection by Apple and/or Google, claimed within 14 days after purchase.