# Guideline 3.1.1 - In-App Purchase: Loot Boxes Without Disclosed Odds

**Guideline:** 3.1.1 · **Store:** Apple App Store · **Severity:** medium · **Fix difficulty:** medium · **Typical turnaround:** 2-8 hours

Canonical URL: https://appstorereject.com/rejections/apple/3/guideline-311-in-app-purchase-loot-boxes-without-disclosed-odds

## Description

Apple is rejecting your app because it offers loot boxes, gacha mechanics, or other randomized virtual item purchases without disclosing the odds of receiving each type of item. Since 2017, Apple requires that any app offering paid random rewards must clearly tell users the probability of obtaining each item before purchase. This applies to any mechanism where the user pays (via IAP or in-game currency purchased with IAP) and receives a randomized reward -- loot boxes, card packs, character summons, mystery boxes, prize wheels, and similar mechanics. The odds must be disclosed before the purchase, not after. The rejection typically hits games, but it can also affect non-game apps with mystery/surprise box commerce models. Apple does not prescribe the exact format for disclosing odds, but they must be accessible, understandable, and shown before the transaction.

## Common variations

- App offers loot boxes without disclosing odds of receiving each item type
- Gacha mechanic does not show pull rates before purchase
- Randomized virtual item purchase lacks probability disclosure
- Mystery box purchase does not display odds prior to transaction

## Example rejection email

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

We noticed that your app offers randomized virtual items for purchase but does not disclose the odds of receiving each type of item to the user prior to purchase.

Apps offering loot boxes, gacha mechanics, or other mechanisms that provide randomized virtual items for purchase must disclose the odds of receiving each type of item to the user prior to purchase.

Next Steps:
Please revise your app to clearly disclose the probability of receiving each type of item from randomized purchases before the user completes the transaction.
```

## Resolution steps

## Quick Assessment
- **Risk level:** Medium
- **Resolution path:** Fix & Resubmit
- **Typical turnaround:** 2-8 hours

## The Fix

1. **Identify all randomized purchase mechanics** -- Audit your app for any feature where a user pays and receives a random result: loot boxes, card packs, gacha pulls, mystery crates, prize wheels, etc.

2. **Calculate and document the odds** -- For each randomized mechanic, determine the exact probability of receiving each reward tier or item category. Work with your game design team to get the actual drop tables.

3. **Display odds before purchase** -- Add a clearly visible disclosure of drop rates that users can access before completing the purchase. Common approaches:
   - An info button or 'View Rates' link next to the purchase button
   - A dedicated 'Drop Rates' screen accessible from the shop
   - Odds displayed directly on the loot box purchase UI

4. **Format odds clearly** -- Use percentages that are easy to understand. Group by rarity tier if applicable (e.g., 'Common: 60%, Rare: 25%, Epic: 10%, Legendary: 5%').

5. **Keep odds accurate and updated** -- If you change drop rates in a server update, the displayed odds must be updated simultaneously. Discrepancies between displayed and actual rates are a serious compliance issue.

## Prevention
- Build odds disclosure into the loot box UI from initial design
- Maintain a single source of truth for drop rates that feeds both the game logic and the disclosure UI
- Consider regulatory requirements beyond Apple (China, Belgium, Netherlands have additional loot box laws)

## Before / after examples

**Before:** Shop screen shows 'Mystery Chest - 100 Gems' with a 'Buy' button and no indication of what the chest contains or the odds of each reward
**After:** Shop screen shows 'Mystery Chest - 100 Gems' with an 'i' info button that opens a panel displaying: 'Common Item: 60%, Rare Item: 25%, Epic Item: 10%, Legendary Item: 5%'
**Why it works:** Drop rates must be visible and accessible before the user commits to the purchase.

## Common questions

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

Typical turnaround is 2-8 hours (difficulty: medium). 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-loot-boxes-without-disclosed-odds*