Guideline 5.6

Guideline 5.6 - Legal: Manipulative In-App Purchase Offers on Cancellation

High RiskMedium DifficultyTypical Fix: 2-8 hours1 Report
Also known as:App displays discounted offer when user cancels purchase flowManipulative paywall shows reduced price on dismissalApp presents 'special offer' after user attempts to close subscription screenSubscription price drops when user taps back or close on paywallApp uses dark patterns to pressure users into In-App Purchases

Our Take

Apple is rejecting your app because it attempts to manipulate customers into making unwanted In-App Purchases. Specifically, the app displays a discounted offer when the user cancels the initial purchase flow — for example, showing a reduced-price 'Yearly - Unlimited' subscription after the user dismisses the original paywall.


Under guideline 5.6 (Developer Code of Conduct), developers must not use manipulative or coercive tactics to pressure users into purchases they did not intend to make.


Apple considers it manipulative when an app detects a user's intent to decline a purchase and immediately counters with a discounted or reframed offer designed to exploit the cancellation moment. The key issue is not offering discounts per se — it's the timing and context. Presenting a lower price specifically in response to a user attempting to leave the purchase flow creates a high-pressure sales tactic that Apple views as manipulating the customer's decision.


Common triggers include: showing a modal with a discounted price when the user taps the close button on a paywall, presenting a 'special one-time offer' immediately after dismissing a subscription screen, or reducing the displayed price in real-time as the user navigates away. Apple's reviewers are specifically trained to test cancellation flows, so this pattern is caught consistently.


There's also a caveat to this rule. In the past, Apple used to include language in their rejections from this guideline that said you couldn't show a "better offer" immediately after a user declined a purchase. In Apple's parlance, "better" equals cheaper. So there's an argument that you can show a different product, different intro offer, or different subscription tier entirely and potentially be compliant.

Resolution Guide

01

**Remove the cancellation-triggered discount** — Delete or disable any logic that detects the user dismissing a paywall and presents a follow-up offer. This includes intercepting the close button, back gesture, or swipe-to-dismiss to show a second modal.


02

**Audit your paywall flow end-to-end** — Walk through every path a user can take: viewing the paywall, tapping a plan, cancelling, tapping X, swiping down, pressing back. No path should trigger a secondary offer or price change.


03

**Separate discounts from cancellation events** — If you want to offer discounts, present them as standalone promotions (e.g., on a settings page, in a notification, or as a time-limited banner) that are not conditioned on the user trying to leave a purchase screen.


04

**Use Apple's offer infrastructure** — For legitimate promotional pricing, use StoreKit's promotional offers or offer codes, which are transparent and Apple-approved.


05

**Test the cancellation path explicitly** — Before resubmitting, have someone unfamiliar with the app test the paywall. Ask them to decline every offer and verify no surprise discounts appear.


06

**Document your paywall behavior in review notes** — In the App Review Notes, describe your subscription flow and confirm that no offers are conditioned on user cancellation.

Prevention

  • Never tie discount logic to paywall dismissal events
  • Design paywalls where closing means closing — no interstitials, no second chances
  • Review third-party paywall SDKs (RevenueCat, Superwall, Adapty) for built-in 'exit intent' features and disable them
  • Test cancellation flows as part of your pre-submission QA checklist
  • Example Rejection Email

    From:Apple App Review Team
    Subject:Guideline 5.6 - Legal: Manipulative In-App Purchase Offe
    Guideline 5.6 - Developer Code of Conduct The app attempts to manipulate customers into making unwanted In-App Purchases. Specifically, app displayed discounted offer when user cancelled initial purchase flow for "Yearly - Unlimited". Next Steps: - Revise the app to comply with these requirements. - Once the app is fully compliant, resubmit the app for review. Resources: Learn more about Developer Code of Conduct requirements in guideline 5.6.

    Consider Appealing

    Appeal only if the discounted offer is not triggered by the user's cancellation — e.g., it was a scheduled promotion already visible before the user entered the purchase flow. Provide screenshots and a screen recording showing the offer exists independently of the cancellation action. If the discount is genuinely tied to the user cancelling, do not appeal — remove the behavior and resubmit.

    Generate Appeal

    Before & After

    Before — Rejected

    User taps X on the $79.99/year paywall → a modal slides up offering $49.99/year 'Special Discount — Today Only!' with a countdown timer

    After — Approved

    User taps X on the paywall → paywall dismisses, user returns to the app. Promotional pricing is available on a separate Settings → Subscription page, unrelated to cancellation events

    What changed: The issue is not offering discounts — it's triggering them specifically when the user tries to leave. Decoupling the discount from the dismissal action resolves the violation.

    Community Solutions · 0

    Sign in to share your solution.

    More Guideline 5 (Legal) rejections

    View all Guideline 5 rejections