How to Set Up Purchases and Subscriptions in the App Store
Monetization through in-app purchases and subscriptions is a key revenue stream for mobile apps.
To implement it successfully, it’s important to:
- Understand the differences between purchase types
- Follow Apple’s requirements
- Set up regional availability and offers correctly
- Test every scenario beforehand
Proper configuration helps improve conversion, retention, and avoids rejection during app review.
Keywords in the name and description of in-app purchases and subscriptions may be indexed for the visibility of that specific purchase or subscription, but they do not affect the visibility of the app in the App Store.
When you add an image to the metadata of an in-app purchase or subscription, it will be displayed in the “Purchases” section of the app’s App Store page.
In-App Purchases (IAP)
In-app purchases are paid items users can purchase after installing the app.
- Consumable: can be used and repurchased (e.g., coins or extra lives)
- Non-consumable: purchased once, permanent (e.g., ad removal, feature unlock, lifetime access)
Auto-Renewable Subscriptions
- Auto-renewable subscriptions: recurring charges (monthly, yearly, etc.). Renew automatically until canceled.
- Non-renewing subscriptions: one-time payment for a fixed period. Rarely used, must be renewed manually by the user once the period ends.
Often used for access to content/events with a fixed duration (e.g., seasonal packages or educational courses).
Subscription durations:
- 1 week
- 1 month
- 2 months
- 3 months
- 6 months
- 1 year
Grace period
Grace periods allow users to continue accessing the subscription if a renewal payment fails.
Example: If a user fails to pay on the last day of a monthly subscription, they can still use it for up to 16 days.
Available grace durations:
- 3 days
- 16 days
- 28 days
Subscription Groups
Subscription groups allow you to offer different levels of access within a single app.
To manage subscriptions and access levels, use Subscription Groups.
A user can only be subscribed to one subscription from each group at a time.
If you offer multiple tiers, such as Basic, Premium, and Pro - they must all be in the same group.
Users can upgrade or downgrade between tiers, but changes apply only in the next billing cycle.
Each subscription in a group can have different pricing, duration, and Introductory Offer - but only one Introductory Offers is allowed per group.
Important:
- A subscription can’t belong to more than one group.
- You can’t remove a subscription from a group - only delete and recreate it.
- If a user redeems an Introductory Offers in one subscription, they won’t get it again in others from the same group.
Introductory offers
You can set up one Introductory Offer - Special Offer for New Users only. These offers help attract first-time subscribers with discounted or free periods.
Special offers for new users:
- Free Trial: full access, free for a set period (e.g., 7 or 30 days).
- Pay As You Go: discounted price for the first few billing periods (e.g., $0.99/month for 3 months).
- Pay Up Front: one-time payment for several months (e.g., $9.99 for 3 months) - a good option for a “big” discount at the start.
Each subscription in a group can define its own offer, but only one Introductory Offer can be redeemed per Apple ID in that group.
Be cautious: incorrect setup (e.g., forgetting to assign a region or price tier) may result in the offer being unavailable or rejected during Apple Review.
Set up in App Store Connect → Subscriptions → Introductory Offer.
Win-Back Offers
Win-Back Offers allow you to provide special pricing to users who canceled a subscription within a defined timeframe. This helps bring back lapsed subscribers and grow active user numbers.
Configured in App Store Connect → Subscriptions → Win-Back Offers.
Offer Codes
Offer Codes are unique promo codes that can be used to provide users with special subscription offers, which may include discounts or free access.
They can be useful for attracting new users, rewarding current users, or bringing back users who previously canceled a subscription.
They are commonly used in media campaigns, partnerships, influencer marketing, customer support, or internal testing.
Offer Codes can be used in combination with Introductory Offers - or as a replacement, depending on your strategy.
Offer Codes can be configured in App Store Connect → Subscriptions → Offer Codes.
Promo Offers
Promotional Offers are unique deals that can be used to provide users with special pricing on subscriptions.
They are often used in marketing campaigns through dedicated links.
You can create up to 10 active promotional offers per subscription.
They are activated via the StoreKit API, which allows users to redeem the offers directly within the app.
Promotional Offers can be configured in App Store Connect → Subscriptions → Promotional Offers.
Requirements to Enable Paid Features
To monetize your app using IAP or subscriptions, you must meet the following requirements in App Store Connect:
- Enable the Paid Applications Agreement in Agreements, Tax, and Banking:
- Accept Apple’s legal terms
- Provide valid bank account details
- Submit complete tax forms
- Maintain an active Apple Developer Program membership ($99/year)
- Enable In-App Purchase capability in Xcode project settings or App Store Connect
Configure your IAP/Subscription products:
- Localized name, description and metadata
- Screenshots for Apple Review
- Adjust prices and availability
- Choose target territories (countries/regions)
Apple typically reviews in-app purchases separately from the app binary.
Ensure all assets (screenshots, metadata, and behavior) are correctly provided and tested using a sandbox account before submission.
Not all countries allow activation of paid features.
In some regions, Apple payments are unavailable, and you cannot activate the Paid Agreement:
Countries with Restrictions:
- North Korea
- Iran
- Sudan
- Syria
- Cuba
- Afghanistan
- Russia
Restrictions are due to international sanctions and Apple’s policies.
In these countries:
- Paid agreements cannot be activated
- Developer payouts are not possible