How to Add In-App Purchases and Subscriptions to an iPhone App (2026)
Add in-app purchases and subscriptions to an iPhone app without code: Apple's purchase types, the rules, the fees, and the steps with Borel and StoreKit.

By Sigsten Gustavii· · 9 min read
To add in-app purchases to an iPhone app, decide what is free and what is paid, choose a subscription or a one-time unlock, set up the product in App Store Connect, write the purchase and restore code with StoreKit, and test it before review. With Borel, the code and the App Store Connect setup are done for you.
| Step | By hand with Xcode | With Borel |
|---|---|---|
| Create the product at Apple | In App Store Connect, by hand | Created for you when you publish |
| Write the purchase code | StoreKit 2 in Swift | Borel's store kit, called by your plan's name |
| Build the paywall | Design it yourself | A ready paywall, or your own design |
| Show the right price | Load it from StoreKit | Apple's own price, never typed into the app |
| Restore purchases | Write it | Under every paywall |
| Subscription terms and links | Write them | Shown under the purchase button |
| A Mac | Required | Not needed |
In-app purchase is how most iPhone apps make money, and it is also where many apps get turned down by App Review: a missing Restore button, a price typed into the app that doesn't match the store, or unclear subscription terms. This guide explains Apple's purchase types and rules in plain words, and then shows how to add a paywall to your app with Borel.
What counts as an in-app purchase
Apple's rule is short. Guideline 3.1.1 says that if you unlock features or functionality within your app, you must use in-app purchase. That covers premium features, subscriptions, extra levels, digital content, and in-game currency. It does not cover everything you might sell:
| What you sell | Use in-app purchase? | Guideline |
|---|---|---|
| A Pro tier, premium features, extra content | Yes | 3.1.1 |
| A subscription to new content or features | Yes | 3.1.1 and 3.1.2 |
| Physical goods, food, tickets to real events | No: use another payment method | 3.1.3(e) |
| Live one-to-one services, like coaching or tutoring | May use another method | 3.1.3(d) |
Read the full rules on Apple's App Review Guidelines page.
The four kinds of in-app purchase
Apple defines four types of in-app purchase. Picking the right one is the main decision:
| Type | What it is | Example | In Borel's payment form |
|---|---|---|---|
| Auto-renewable subscription | Renews until the buyer cancels | Pro, monthly or yearly | Yes: weekly, monthly, 2, 3 or 6 months, yearly |
| Non-consumable | Bought once, kept forever | Unlock the full recipe library | Yes: a one-time purchase |
| Consumable | Used up, bought again | Coins, hints, credits | Not from the form today |
| Non-renewing subscription | Access for a set time, no renewal | A season pass | Not from the form today |
For most apps, a subscription or a one-time unlock is the right choice. Subscriptions suit apps that keep giving something new, which is also what Apple's Guideline 3.1.2 expects of them. One-time unlocks suit tools that do one job well.
What Apple keeps
| Case | Apple's commission | Source |
|---|---|---|
| Standard rate | 30% | App Store Review and business terms |
| Small Business Program, under $1 million a year | 15% | Apple's Small Business Program page |
| Subscriptions after a year of paid service | 15% | Apple's subscriptions page |
You enrol in the Small Business Program separately in your developer account. Most new apps qualify, so do it before your opening sale. You also need to accept Apple's Paid Apps agreement and add banking and tax details in App Store Connect before Apple can pay you.
Designing a paywall that converts and passes review
A paywall has one job: explain what someone gets and what it costs, honestly. Apple checks that it does. Good paywalls share a pattern:
- A clear headline about the benefit, not the feature list.
- Three to five benefits, each one short.
- Apple's own price, with the billing period, loaded from the App Store.
- One main button to subscribe or buy.
- Restore Purchases, the subscription terms, and links to the Terms of Use and Privacy Policy under it.
- A way to close it without paying.
Borel's ready-made paywall follows that pattern, and its footer adds Restore Purchases, the terms and both links under any purchase button you design yourself. The app never contains a price of its own: StoreKit gives it Apple's, in the buyer's currency.
Free, then paid: where to draw the line
The hardest part is product, not code. Give enough away that people see the value, then charge for more of it:
- A limit. Three habits free, unlimited with Pro.
- A depth. Basic stats free, full history and charts with Pro.
- A library. Ten recipes free, the full collection as a one-time unlock.
- A cost you carry. Five AI answers a day free, unlimited with a subscription, which also pays for the AI.
How to price a subscription
There is no perfect price, but a few habits help:
- Offer monthly and yearly. A yearly plan priced at roughly eight to ten months of the monthly one gives committed people a reason to stay.
- Look at the category. Open the App Store and note what similar apps charge; price near them unless you clearly offer more.
- Charge for what costs you money. If the paid tier uses AI or storage, the price has to cover it with room to spare.
- Change it later. You can raise or lower prices in App Store Connect; start where it feels slightly too cheap and adjust with real numbers.
Why paywalls get rejected
Most purchase-related rejections come from a short list. Check yours against it before you submit:
| Problem | What Apple wants | In a Borel app |
|---|---|---|
| No Restore Purchases | A way to restore restorable purchases (3.1.1) | Under every paywall |
| A price typed into the app | The price the App Store shows | Only Apple's price, loaded from StoreKit |
| Unclear subscription terms | Length, price and what renews (3.1.2) | Shown under the purchase button |
| No Terms or Privacy links | Both reachable from the purchase screen | Linked under every paywall |
| Unlocks without Apple | No license keys or outside codes for digital features (3.1.1) | Features unlock only after a successful purchase |
Testing purchases
Borel's paywall shows in the iOS Simulator in your browser and on your iPhone through Companion, so you can design and test the flow. Buying itself opens once the app is on the App Store, because Apple only takes real payments in apps installed from it. An app installed with a free Apple ID can't use in-app purchases at all; that is Apple's rule for free accounts.
How to choose the right way to add payments
- Borel, if you want a native StoreKit paywall without writing code, with the products created at Apple for you.
- StoreKit by hand in Xcode, if you are a developer on a Mac and need consumables or custom offers today.
- A subscription service SDK, if you run many apps and want cross-platform analytics and experiments.
- [CatDoes](/compare/catdoes) or [FlutterFlow](/compare/flutterflow), if you also need Android billing; check their own docs for how purchases work there.
How to do it with Borel, step by step
Step 1: Decide the plan
Write down what stays free, what is paid, whether it is a subscription or a one-time unlock, and the price.
Step 2: Fill in Payments
In your app's chat, open the + menu and choose Payments. The short form asks for three things: the plan's name, the billing cycle (weekly, monthly, every 2, 3 or 6 months, yearly, or one-time) and the price. It attaches the plan to your next message.
Step 3: Say what the plan unlocks
Free people can track 3 habits. Pro unlocks unlimited habits, full history charts and custom reminder sounds. Show the paywall when someone adds a fourth habit, and from a Go Pro row in settings. Use the ready-made paywall with those three benefits.Rivet writes the paywall in Swift on Apple's StoreKit, unlocks the features only after a successful purchase, and keeps the price as Apple's own.
Step 4: Check the paywall on a live iPhone
In the simulator, hit the limit and check the paywall appears, closes, and shows Restore Purchases, the terms and both links. Ask for changes in plain words, like "make the yearly plan the default".
Step 5: Publish
With Pro and an Apple Developer account, Publish creates the product in App Store Connect under your account at the price you chose, then builds, signs and uploads the app. Stamp checks the common reasons for rejection before you submit. After approval, purchases go live, and Apple pays you directly. See in-app purchases for more.
The Bottom Line
In-app purchase is Apple's rule for selling anything digital in an iPhone app, and getting it right is mostly about choosing the plan and showing it honestly. Borel handles the StoreKit code, the paywall, Apple's price, Restore Purchases and creating the product at Apple. You decide what is free and what is worth paying for. Open your app in Borel, choose Payments, and see your paywall on a live iPhone in minutes.
Questions people ask
Do I have to use Apple's in-app purchase?
For digital features, content and subscriptions unlocked in the app, yes, under Guideline 3.1.1. Physical goods and real-world services use other payment methods instead.
How much does Apple take from in-app purchases?
30% as standard, or 15% for developers in the Small Business Program earning up to $1 million a year, and 15% on a subscription once its subscriber has passed a year of paid service.
Can I add a subscription without writing code?
Yes. In Borel, fill in Payments with a name, cycle and price, and say what it unlocks. Borel writes the StoreKit code and the paywall, and creates the subscription at Apple when you publish.
What is Restore Purchases and do I need it?
It asks the App Store for what the person's Apple ID already bought, for example on a new phone. Apple expects it for anything that can be restored; Borel puts it under every paywall.
Can I test purchases before publishing?
You can test the paywall and the flow in the simulator and on your iPhone. Real buying opens once the app is on the App Store.
Do I need an Apple Developer account to sell?
Yes. Apple's Developer Program costs $99 a year, the app is listed under your name, and Apple pays you directly.
Can I sell coins or credits?
Apple calls those consumables, and they are allowed. Borel's payment form builds subscriptions and one-time unlocks today, so coins aren't something to ask for from the form yet.
Can I change the price later?
Yes, in App Store Connect. A Borel app always shows the price Apple gives it, so a new price appears without a new app version.
What happens when someone cancels a subscription?
People cancel in their Apple ID settings, and Apple handles it. The app asks the App Store what the person owns, so the paid features lock again when the period they paid for ends.
What is StoreKit?
Apple's framework for in-app purchases on iPhone. See StoreKit and in-app purchase in the glossary.
I started Borel because I wanted to make iPhone apps without a Mac or a team behind me. If this helped you build something, I would love to see it.
– Sigsten
Make your iPhone app in Borel
Describe the app you want and see its first screens before you pay anything.
See your app free