Promotional and introductory offers follow store guidelines
Why it matters
Apple Promotional Offers are only valid for users who have previously subscribed to the product — presenting them to first-time users generates an invalid purchase attempt that fails at the platform level. An offer identifier string that does not match exactly what is configured in App Store Connect causes the same failure. Both scenarios result in a purchase error that the user experiences as a broken "Subscribe" button. Apple's promotional offer system requires server-side signature generation to prevent unauthorized use, so a mismatch between the code's offer identifier and App Store Connect configuration breaks the entire offer flow silently.
Severity rationale
Low because misconfigured promotional offers break the discount flow for targeted users but do not affect the primary subscription purchase path for new subscribers.
Remediation
Verify that every promotional offer identifier string in your codebase matches exactly the identifier configured in App Store Connect under Subscriptions → [Your Subscription] → Subscription Prices → Promotional Offers. Check eligibility before showing a promotional offer to a user.
// StoreKit 2 — check eligibility before showing the offer
if let promoOffer = await subscription.promotionalOffer(offerID: "win_back_50") {
// User is eligible (has a prior subscription history)
try await product.purchase(options: [.promotionalOffer(promoOffer)])
}
// If subscription.promotionalOffer returns nil, the user is not eligible
For RevenueCat promotional offers, use Purchases.purchasePackage(package, promotionalOffer: offer) and confirm the offer's identifier property matches App Store Connect before shipping. Audit all offer identifier strings in src/lib/iap/offers.ts or equivalent against your current App Store Connect configuration.
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the App Store IAP & Subscriptions Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- external · apple-promotional-offers — Apple — Implementing Promotional Offers in Your App (StoreKit Promotional Offers)
Taxons
History
- 2026-04-18·v1.0.0·Initial import from app-store-iap-subscriptions·automated