Skip to main content
To sell subscriptions or in-app purchases in an iPhone app, you use Apple’s in-app purchase system (App Review Guideline 3.1.1 requires it for digital goods; US App Store apps may also link to a web checkout), create the products in App Store Connect, and show them on a paywall with clear prices and a Restore Purchases button. Vibecode does most of this with RevenueCat, which handles purchases, receipts, and subscription status for you: connect RevenueCat in your project’s Payment tab, ask the agent to create your products and paywall, sync the products to App Store Connect, then test with a sandbox account. RevenueCat is free up to $2,500 in monthly tracked revenue, then 1% of tracked revenue.
The RevenueCat Payment tab is for Mobile app (React Native) projects. It isn’t available for native Swift iOS app projects yet. Charging on the web? Use Stripe instead.

In-App Purchases at a Glance

Before You Start

You’ll need the following:

Step 1: Connect Your RevenueCat Account

  1. Open your project in Vibecode
  2. Click the Payment tab
Payment tab
  1. Click Connect RevenueCat
  2. Sign into your RevenueCat account in the popup
  3. Authorize Vibecode to access your account
  4. You’ll be redirected back automatically
If the popup is blocked, check your browser’s popup settings and try again.

Step 2: Configure Your App Identity

After connecting, you’ll set up your app identity:
  1. Display Name - Your app’s name as it appears on the home screen
  2. Bundle Identifier - A unique identifier for your app (Vibecode auto-generates one)
Your Bundle Identifier cannot be changed after your first build. Choose carefully!
Click Continue to complete the setup.

Step 3: Configure RevenueCat Credentials

This step is critical! Without these credentials, your in-app purchases will not work.
For RevenueCat to communicate with App Store Connect, you need to set up two API keys in your RevenueCat dashboard:

App Store Connect API Key

  1. Go to App Store Connect → Users and Access → Integrations → App Store Connect API
  2. Click Generate API Key with “App Manager” access level
  3. Download the .p8 file (you can only download this once!)
  4. Note your Issuer ID from this page
  5. In RevenueCat, go to your app’s settings and upload the .p8 file
  6. Enter your Issuer ID and Vendor number (found in App Store Connect under Payments and Financial Reports)

App Store Connect API Key Configuration

Full Guide

In-App Purchase Key

  1. Go to App Store Connect → Users and Access → Integrations → In-App Purchase
  2. Click Generate In-App Purchase Key
  3. Download the .p8 file (you can only download this once!)
  4. In RevenueCat, upload this key in the In-app purchase key configuration section
  5. Add your Issuer ID and save

In-App Purchase Key Configuration

In-App Purchase Key Configuration
The In-App Purchase key is required. Without it, transactions will fail to be recorded when using StoreKit 2.

Step 4: Create Your Product with AI

Ask the Vibecode AI to create your subscription or in-app purchase product: Example prompts:
The AI will create the product in RevenueCat for you.

Step 5: Create a Paywall

Ask the AI to create a paywall screen for your app: Example prompts:
Paywall example

Step 6: Test in Vibecode

Before publishing, test your paywall inside Vibecode:
  1. Preview your app
  2. Navigate to where the paywall appears
  3. Verify the products display correctly
  4. Test the purchase flow
Test store

Step 7: Sync Product with App Store Connect

This step creates your product in App Store Connect. You must complete this before your app can accept real payments.
Tell the AI to sync your product with App Store Connect: Example prompts:
Sync products prompt This creates the corresponding product in your App Store Connect account.

Step 8: Complete Product Setup in App Store Connect

Your product was created but needs additional metadata before it can go live:
  1. Go to App Store Connect
  2. Click on your app in the bottom left
  3. Navigate to Monetization → Subscriptions (or In-App Purchases)
  4. Click on the subscription group that was created
  5. Select your product
App Store Connect subscriptions page

Add Required Metadata

For each product, you need to add:
  • Display Name - What users see during purchase
  • Description - Explain what the subscription includes
  • Screenshot - A screenshot showing your subscription in action
App Store Connect missing metadata App Store Connect paywall screenshot
Your product will show “Missing Metadata” status until you add all required information including the screenshot.
Once all metadata is complete, the status will change and your product is ready for submission.

Apple’s Rules for In-App Purchases and Paywalls

Apple checks these during App Review. Getting them wrong is a common reason for rejection under guideline 3.1:
  • Use Apple’s in-app purchase for digital goods. Subscriptions, premium features, in-game currency, and content used inside the app go through Apple (3.1.1). On the US App Store you may also link to your own web checkout; elsewhere that needs an Apple entitlement (3.1.1(a)). Physical goods and real-world services, such as deliveries or rides, use other payment methods.
  • Show clear prices and terms. The paywall must say what the user gets, how much it costs, and how often they’re billed.
  • Include Restore Purchases. Users who reinstall or switch devices must be able to get back what they paid for.
  • Subscriptions must last at least 7 days and provide ongoing value (3.1.2(a)).
  • Link your terms of use and privacy policy on the paywall and in your App Store listing.
  • Submit your products with the app. New in-app purchases must have complete metadata in App Store Connect and be submitted for review together with an app version.
In Mobile app projects, the App Store Preflight check reviews your paywall for Restore Purchases, clear pricing, and non-Apple payment code before you submit. More in the App Store rejections checklist.

Troubleshooting

There are many common issues that can prevent your products from working correctly. Please go through all of them and make sure they do not impact you. Can’t connect to RevenueCat?
  • Check that popups aren’t blocked in your browser
  • Try refreshing the page and connecting again
  • Ensure you’re signed into your RevenueCat account
Products not showing up?
  • Click Refresh in the Payment Dashboard
  • Verify products are created in both App Store Connect and RevenueCat
  • Check that products are linked to the correct app in RevenueCat
Product shows “Missing Metadata”?
  • Go to App Store Connect and add all required fields
  • Make sure to upload a screenshot for the product
  • Save your changes and the status will update
Purchases failing in testing?
  • Ensure you’re using a valid Sandbox Tester account
  • Sign out of your regular Apple ID first
  • Check that your app’s bundle ID matches App Store Connect
Products not appearing in TestFlight? When subscriptions or in-app purchase products don’t appear in TestFlight, it’s usually due to an incomplete setup in App Store Connect—missing legal entity information and incomplete agreements or tax information. App Store Connect Business Agreements To fix this:
  • Go to App Store Connect → Business → Agreements
  • Ensure your Paid Apps Agreement is active (not “New”)
  • Complete any pending legal entity information
  • Fill out all required tax and banking information
  • Make sure to also fill out all the metadata for your products in App Store Connect. You can do this by going to App -> Subscriptions -> Your Subscription -> Edit -> Metadata.
Pending agreements blocking purchases? If you see a yellow warning banner in App Store Connect about updated agreements, you must clear all pending agreements before RevenueCat can process purchases. App Store Connect pending agreements warning To fix this:
  • The Account Holder (not just any team member) must sign in to App Store Connect
  • Review and accept any updated license agreements shown in the yellow banner
  • Check Business → Agreements for any other pending agreements
  • Once all agreements are accepted, the yellow warning will disappear and purchases will work

Frequently Asked Questions

For digital content, features, and subscriptions used in your iPhone app, in-app purchase is required (guideline 3.1.1). On the US App Store you can also add a button or link to your own web checkout; outside the US that needs an Apple entitlement, which only some countries offer (3.1.1(a)). RevenueCat runs on top of Apple’s in-app purchase system. Physical goods and services used outside the app can use other payment methods.
RevenueCat is free until your app makes $2,500 in monthly tracked revenue. Above that it charges 1% of tracked revenue. Apple’s commission is separate. Check RevenueCat’s pricing page for current terms.
15% if you’re in the App Store Small Business Program (up to $1 million in proceeds a year), and the standard commission above that. Apple’s rates differ by country and program, so check App Store Connect for yours.
Yes. Purchases in TestFlight and development builds use Apple’s sandbox, so nobody is charged. For development builds, create a sandbox tester in App Store Connect under Users and Access → Sandbox and sign in with it on your test device.
Usually one of three things: the Paid Apps Agreement isn’t active, the product is missing metadata (including its review screenshot) in App Store Connect, or the bundle ID doesn’t match. See Troubleshooting above.
The guided RevenueCat setup in the Payment tab isn’t available for iOS app (Swift) projects yet. It’s built for Mobile app (React Native) projects. See Swift vs React Native.
For web apps, yes: see Stripe Setup. Inside an iPhone app, digital goods use Apple’s in-app purchase, and on the US App Store you can also link to a Stripe checkout on your website (3.1.1(a)).

Next Steps

Publish to the App Store

Submit your app and products for review

Review Guidelines Checklist

Avoid payment-related rejections

TestFlight

Test purchases with beta testers

Vibecode Pricing

Compare Vibecode plans
Last modified on October 10, 2026