# Guideline 3.1.1 - In-App Purchase: License Key or Serial Number Unlocks

**Guideline:** 3.1.1 · **Store:** Apple App Store · **Severity:** high · **Fix difficulty:** hard · **Typical turnaround:** 1-3 days

Canonical URL: https://appstorereject.com/rejections/apple/3/guideline-311-in-app-purchase-license-key-or-serial-number-unlocks

## Description

Apple is rejecting your app because it uses license keys, serial numbers, or activation codes purchased outside the App Store to unlock functionality within the app. This is a variation of the external payment bypass -- the purchase happens elsewhere (your website, a physical retailer, a B2B agreement), and a code entered in the app unlocks premium features. This pattern is extremely common in enterprise and B2B apps, productivity tools with desktop counterparts, and apps that originated on other platforms. The developer often assumes that because the sale happened externally, it falls outside Apple's IAP requirements. It does not -- if the key unlocks digital content or functionality consumed within the iOS app, IAP is required. The exception is if your app qualifies as a reader app (3.1.3(a)) or if the license was purchased as part of a multiplatform service where the iOS app is one of several consumption points. Even then, you cannot include a license entry field in the app itself -- the entitlement must be tied to account-level authentication.

## Common variations

- App uses license keys to unlock premium features
- App includes serial number activation for content purchased externally
- App enables functionality through activation codes from website purchases
- App uses registration codes purchased from third-party retailers

## Example rejection email

```
Guideline 3.1.1 - Business - Payments - In-App Purchase

The app unlocks or enables additional functionality with mechanisms other than in-app purchase, which is not appropriate for the App Store.

Specifically, the app includes a license key activation screen that unlocks premium features purchased outside of the app.

Next Steps:
It would be appropriate to remove the license key activation feature and use in-app purchase for unlocking premium functionality. If the app is a multiplatform service, ensure that feature access is managed through account-based authentication rather than license key entry.
```

## Resolution steps

## Quick Assessment
- **Risk level:** High
- **Resolution path:** Fix & Resubmit or Appeal (if multiplatform)
- **Typical turnaround:** 1-3 days

## The Fix

1. **Remove the license key entry UI** -- Delete any text field, screen, or flow where users enter license keys, serial numbers, or activation codes.

2. **Replace with IAP** -- Offer the same premium features through StoreKit In-App Purchase. Configure the appropriate product type in App Store Connect.

3. **For multiplatform services** -- If users legitimately purchase access on another platform, tie the entitlement to their user account (not a license key). When they sign in on iOS, check the server-side entitlement. Do not include any mechanism to enter a key in the iOS app.

4. **Handle existing license holders** -- For users who already purchased licenses, honor their entitlement through server-side account authentication. They sign in, your server verifies their purchase, and the app unlocks. No key entry needed.

5. **Enterprise/B2B exception** -- If this is a B2B app distributed only through Apple Business Manager (custom apps), you may have more flexibility. Consider custom app distribution if your audience is exclusively enterprise.

## Prevention
- Design iOS monetization around IAP from the start
- For multiplatform products, use account-based entitlement rather than transferable license keys
- Consider Apple Business Manager for pure B2B distribution

## Appeal guidance

Appeal if your app is a genuine multiplatform service (e.g., a desktop app with an iOS companion) and the license grants access across platforms. Cite guideline 3.1.3(b) and explain the multiplatform nature. Otherwise, migrate to IAP.

## Before / after examples

**Before:** Settings screen with 'Enter License Key' text field where users paste a 24-character key purchased from the developer's website to unlock Pro features
**After:** Pro features offered via StoreKit auto-renewable subscription; existing license holders sign into their account and the server validates their entitlement automatically
**Why it works:** License key entry fields are not permitted. Use IAP for new purchases and account-based authentication for existing cross-platform entitlements.

## Common questions

**Can you appeal a 3.1.1 rejection?**

Appeal if your app is a genuine multiplatform service (e.g., a desktop app with an iOS companion) and the license grants access across platforms. Cite guideline 3.1.3(b) and explain the multiplatform nature. Otherwise, migrate to IAP.

**How long does this typically take to fix?**

Typical turnaround is 1-3 days (difficulty: hard). After resubmission, most re-reviews complete within 24-48 hours.

---
*Machine-readable source: https://api.appstorereject.com/api/rejections/detail?slug=guideline-311-in-app-purchase-license-key-or-serial-number-unlocks*