Contents

App Store Rejection Guide: Fixing Guideline 3.1.2 Subscription Information Integrity

The App Store review for in-app subscriptions (In-App Purchase, Auto-Renewable Subscriptions) is extremely strict, especially regarding information disclosure. If you received a rejection for Guideline 3.1.2 - Business - Payments - Subscriptions, it’s usually because your subscription page is missing certain necessary legal terms or explanations.

This article details how to fix missing subscription information using a real-world case and ensures compliance with Apple’s review guidelines.

1. Issue Description

Reviewers typically provide rejection reasons similar to the following:

Guideline 3.1.2 - Business - Payments - Subscriptions

Issue Description

The submission did not include all the required information for apps offering auto-renewable subscriptions.

The following information needs to be included in the App Store metadata:

  • A functional link to the Terms of Use (EULA).

Apps offering auto-renewable subscriptions must include all of the following required information in the app itself:

  • Title of auto-renewing subscription
  • Length of subscription
  • Price of subscription
  • Functional links to the privacy policy and Terms of Use (EULA)

Core Requirement Analysis

Apple requires developers to be transparent in two areas:

  1. In-App: On the same interface where users click the purchase button, they must clearly see all key subscription information (price, duration, auto-renewal terms) and legal links.
  2. Metadata: The App Store Connect app description or relevant fields must include links to the privacy policy and user agreement.

2. Solution: In-App (SwiftUI)

We need to modify the UI of the subscription page to ensure it includes the following five elements:

  1. Subscription Title
  2. Subscription Length
  3. Subscription Price
  4. Privacy Policy Link
  5. Terms of Use / EULA Link

Code Modification Example

File: SubscriptionView.swift

2.1 Clearly Display Subscription Duration and Price

Before Modification (Incorrect):

Text("$4.99/mo")  // Shortening like "/mo" might be considered unclear

After Modification (Correct):

VStack(alignment: .leading, spacing: 8) {
    HStack(alignment: .lastTextBaseline, spacing: 4) {
        Text(priceString) // e.g., "$4.99"
            .font(.title2)
            .bold()
        Text(period == .monthly ? "/ month" : "/ year") // Explicit time unit
            .font(.subheadline)
    }
    Text(period == .monthly ? "Billed monthly" : "Billed annually") // Explicit billing cycle description
        .font(.caption)
        .foregroundColor(.secondary)
}

2.2 Add Complete Auto-Renewal Terms

You need to add a standard disclaimer clearly informing users about billing and cancellation rules.

VStack(spacing: 8) {
    Text("Auto-Renewable Subscription Terms")
        .font(.system(size: 11, weight: .semibold))
        .foregroundColor(.secondary)
    
    Text("Payment will be charged to your Apple ID account at confirmation of purchase. Subscription automatically renews unless canceled at least 24 hours before the end of the current period. Your account will be charged for renewal within 24 hours prior to the end of the current period. You can manage and cancel your subscriptions by going to your account settings on the App Store after purchase.")
        .font(.system(size: 10))
        .foregroundColor(.secondary)
        .multilineTextAlignment(.center)
        .padding(.horizontal)
}

Ensure links are clickable, and it is recommended to use “Terms of Use” instead of “Terms of Service” to align with Apple’s terminology.

HStack(spacing: 20) {
    Link("Terms of Use", destination: URL(string: "https://your-site.com/terms")!)
        .font(.caption)
        .underline() // Add underline to suggest clickability
    
    Link("Privacy Policy", destination: URL(string: "https://your-site.com/privacy")!)
        .font(.caption)
        .underline()
}
.padding(.top, 10)

3. Solution: App Store Connect Metadata

In addition to code changes, you need to log in to App Store Connect to update information.

3.1 Privacy Policy URL

  • Location: App Information -> Privacy Policy URL
  • Action: Ensure a valid privacy policy link is entered.

3.2 Terms of Use (EULA)

You have two options:

  • Option A (Recommended): Use Apple’s Standard EULA. Just state this in the App Description.
  • Option B (Custom): If you have your own terms of service:
    1. Go to App Information or Pricing and Availability.
    2. Find App Store Licensing Agreement.
    3. Select Custom App Store Licensing Agreement and paste the text.
    4. Alternatively, the simplest way is to manually add a line at the end of the App Description: Terms of Use: https://your-site.com/terms

4. Submission & Review Notes

To speed up approval, it is recommended to proactively explain the fixes in “App Review Information” -> “Notes” upon submission.

Reference Text:

Dear Review Team,

Regarding the Guideline 3.1.2 - Business - Payments - Subscriptions issue:

We have updated the app and metadata to include all required information:

1. In-App Subscription Page:
   - Clearly displays Subscription Title, Length ("Billed monthly/annually"), and Price.
   - Includes full Auto-Renewable Subscription Terms text.
   - Includes functional links to Privacy Policy and Terms of Use (EULA) at the bottom.

2. App Store Metadata:
   - Privacy Policy URL is set in App Information.
   - Terms of Use link has been added to the App Description.

Links for your reference:
- EULA: [Your EULA Link]
- Privacy Policy: [Your Privacy Policy Link]

5. Summary

The key to fixing Guideline 3.1.2 is transparency. Do not try to hide any details of the subscription (price, cycle, how to cancel). Check each item against the Checklist provided in this article:

  • Subscription duration and price are clearly displayed (avoid abbreviations).
  • Subscription page includes full auto-renewal disclaimer text.
  • Subscription page includes clickable Privacy Policy and Terms of Use links.
  • Privacy Policy URL is configured in App Store Connect.
  • EULA is included in App Store Connect description or settings.

Completing these steps usually ensures a smooth approval.