iOS In-App Purchases 101

10 Min Read • Aug 8, 2024

Author Image

Cătălin Demian

iOS Lead

Author Image

When delving into the world of mobile application development, more often than not, the main purpose is to create something that generates revenue. There are several complex monetization strategies that have been proven to work under different circumstances, but the one that is probably the most accessible is in-app purchases (IAP).

By no means are we trying to showcase a universal solution to a financially successful app. Think of the application development process more as a recipe that requires a chef to combine several ingredients using different techniques in order to obtain a tasty end result. IAP is an ingredient that when properly integrated can make the difference between a profitable or self-sustained end product, and a financial burden.

Types of in-app purchases

In order to cover as many scenarios as possible, Apple has provided several in-app purchase types that complement different usage scenarios. Thus, we have:

  • Consumables: Items that can be purchased and used within the app, such as gems or goodie crates. Once consumed, you can no longer access the purchased item.
  • Non-Consumables: Items that when bought, are going to last forever. This provides a way to give paid access to premium features.
  • Subscriptions: Items that grant access to premium features or content up to a deadline. Based on how the subscription expiration is handled, they can be grouped into auto-renewable and non-renewable.

Eligibility

The problem of eligibility boils down to understanding if your particular use case can be covered using an alternative external payment method, or if you are forced to use In-app purchases. The catch here is that Apple benefits from all in-app purchases by commissioning them up to a rate of 30%. With that much interest, it’s not unexpected from them to impose some restrictions when trying to leverage alternative payment solutions. 

The factor that makes the difference between an app that is eligible to use 3rd party payment solutions and one that is required to implement IAPs is the nature of the content that is sold to the customer. For the general rule we have digital content on one hand and physical content on the other.

Digital vs Physical Content

IAPs are strictly for digital goods and services. Physical products, real-world services, or anything that's used outside of the app cannot be sold through IAPs. For instance:

  • Allowed: Digital books, game items, app features or unlocks. 
  • Not allowed: Physical goods, real-world services (e.g., food delivery, ride-sharing)

As a rule of thumb, everything you can scale digitally with no cost that is sold to the user MUST be sold only as an In-App Purchase. Everything that is sold as a physical product or service is eligible for other custom payment solutions that do not have an App Store fee. 

Exceptions 

As with any other thing there are some exceptions to the rules above (instances where In App Purchases can be exempt). This is a very important factor in choosing the right business approach. 

Reader Apps - iOS apps can access content or subscriptions that were previously purchased outside of the Apple ecosystem. An important note here is that Apple does not allow applications to promote a 3rd party payment solution or even link the user to an external web page (check out the case of Spotify vs Apple). Some product examples using this approach are Netflix, Spotify, etc.

Multiplatform Services - similar to the approach above. Think of a cross platform game like Fortnite. If the user unlocks some features or buys some coins on web or Android, they will also be accessible in the iOS app. As with reader apps, developers cannot sell the same content within the iOS app using 3rd party payment methods, so they will have to resort to IAP.

Person-to-Person Services - when giving access to digital content or a subscription where you benefit from somebody else’s physical time in a person to person interaction, in-app purchases are not mandatory. Think of coaching apps, nutrition guidance, live classes, peer to peer teaching.

Other notable exceptions include: Enterprise Services, Free Standalone Apps, Advertising Management Apps, Hardware-Specific Content, Cryptocurrencies, non-profit organizations, gifting, donations. Make sure you read the entire section 3.1.3 from the App Review Guidelines for more details.

Implementation process

Implementation process is generally straightforward if documentation is followed so we’ll only go through the steps in general and cover some important aspects that need to be taken into account, and which are many times overlooked by teams. 

1.Setup IAPs in App Store Connect 

Involves creating in-app purchases items in App Store Connect. Choosing the right type, pricing and any other details. 

2. Implementation

Developers need to integrate StoreKit framework in order to display, purchase, verify and deliver the content paid by the user

3. Testing 

Testing the integration start to finish is essential. StoreKit integration is easy to test using Sandbox Accounts. 

Important takeaways of the implementation process: 

- Implementation on the receipt validation needs to be done on the server side as well in order to have a bulletproof implementation. As with any other binary, some bad actors can create cracked versions of the app that bypass the client validation check. If the validation is done on the backend as well, such a scenario cannot happen.

- It is advisable to log key events in the purchase flow in order to debug and mitigate issues as early on as possible. Problems with payments are the most critical issue a product can have and not unlocking the right content after the user paid real money can permanently damage the applications reputation.

- Testflight builds connect to the Sandbox Environment as well so it’s a very good practice to test auto renewable subscriptions on beta builds as well. All sandbox subscriptions have reduced time spans so developers and QA can quickly iterate through many subscriptions cycles, test churn or failed payments.

Third-party libraries

While Apple's StoreKit framework is powerful, it is a bit outdated when compared to other frameworks that were revamped in recent years.

There are, however, several third-party libraries that can simplify the implementation process, and provide added value. Libraries like RevenueCat, SwiftyStoreKit, and IAPHelper offer valuable features, such as receipt validation, subscription management, remote product/price management and even real-time analytics (with forwarding options), in order to improve your IAP experience.

Conclusions

In 2023, Apple's App Store generated approximately $85 billion in revenue combined from all types of IAPs and a growing trend. Within the right parameters, IAP is one of the most accessible, reliable and steady types of monetization a product can have. By understanding the types of IAPs, eligibility, content types and key implementation processes newcomers can effectively leverage this model and get a slice of the cake. Whether you’re developing a game, a media app or a productivity tool, there is always a segment of users that would pay extra for premium functionality.

Looking to build an iOS app?

Let's chat!
Cătălin Demian

Cătălin Demian

iOS Lead