Guideline 3.1.2: приложение отклонено из-за подписки
Автор: Mehdi Azizi
Опубликовано , 9 мин
Guideline 3.1.2: списываемая сумма должна быть самой заметной ценой пейвола, плюс срок, автопродление и ссылки на условия. Два реальных отказа и их исправление.
Guideline 3.1.2 регулирует автовозобновляемые подписки. Если Apple на неё ссылается, проверь две вещи: реально списываемая сумма должна быть самой заметной ценой на твоём пейволе, а приложение и его страница в сторе должны указывать срок, цену и рабочие ссылки на условия использования и политику конфиденциальности.
Я получил такой отказ на двух своих приложениях в октябре 2026: Solys 10-го, TradaZen 12-го. Проблема была одна и та же: цена за неделю крупно, реальная сумма списания мелко. Ниже текст правила, оба случая и чек-лист, по которому я теперь работаю. Про другие причины читай статью почему Apple отклоняет приложение.
Что говорит guideline 3.1.2?
3.1.2 «Subscriptions» находится в разделе 3 «Business» App Review Guidelines, в части 3.1 «Payments». Отсюда и заголовок письма: «Guideline 3.1.2 - Business - Payments - Subscriptions». В ней три пункта, и буква в скобках подсказывает, где искать.
| Пункт | Что требует Apple | Типичный отказ |
|---|---|---|
| 3.1.2(a) Permissible uses | Постоянная ценность, минимум 7 дней | Подписка без обновляемого контента |
| 3.1.2(b) Upgrades and Downgrades | Смена тарифа без дублирования | Два тарифа оплачиваются одновременно |
| 3.1.2(c) Subscription Information | Что получаешь и за какую цену | Расчётная цена крупнее списываемой |
Текст 3.1.2(c) короткий. Прежде чем предлагать подписку, ты должен «clearly describe what the user will get for the price»: чётко описать, что пользователь получит за эту цену. Дальше идёт отсылка к приложению 2 (Schedule 2) лицензионного соглашения программы разработчиков. В этом приложении перечислено, что нужно показывать «clearly and conspicuously», то есть чётко и на видном месте:
- название подписки;
- её срок;
- её цену и, если уместно, цену за единицу;
- ссылки на политику конфиденциальности и условия использования, доступные в приложении.
Правило о размере цен есть на странице Apple о подписках. В процессе покупки «the amount that will be billed must be the most prominent pricing element in the layout»: сумма, которая будет списана, должна быть самым заметным ценовым элементом. Эквивалент в месяц или размер скидки показывать можно, но на втором плане и мельче. Та же страница требует для бесплатного пробного периода указывать его длительность и цену, которая спишется после него.
Два отказа по 3.1.2(c), которые я получил
Solys: 0,38 € крупно, 19,99 € мелко
Solys это мой будильник, который усыпляет твои соцсети. На пейволе в онбординге карточка «Годовая» показывала «0,38 €/нед.» шрифтом 21 пункт, жирным. Под ней, 15 пунктов: «то есть 19,99 €/год». А списывается именно 19,99 €, а не 0,38 €.
10 октября 2026 Apple отклоняет версию со ссылкой на 3.1.2(c). В сообщении требуют, чтобы списываемая сумма была самым понятным и заметным ценовым элементом. Бесплатный пробный период, стартовая цена и расчётные цены должны быть ей подчинены. Apple называет свои критерии: шрифт, размер, цвет и расположение.
Я оставил такое отображение сознательно: предыдущую версию TradaZen, построенную по тому же принципу, приняли. Это была ставка, и она стоила мне одного цикла ревью.
Исправление: «19,99 €/год» крупно, «то есть 0,38 €/нед.» серой подписью ниже, во всех 30 языках приложения. Пейвол зашит в код, так что перед повторной отправкой понадобился новый билд.
TradaZen: та же причина, через два дня
TradaZen это мой симулятор трейдинга. 12 октября 2026 версию 1.5.1 отклоняют по тому же правилу. В сообщении говорится о цене «weekly calculated», показанной «more clearly and conspicuously than the billed amount»: эквивалент за неделю был заметнее списываемой суммы.
Моего первого исправления не хватило, и я это заметил до отправки. Я уменьшил «0,92 €/нед.», но оставил его справа, на строке цены. А карточка недельной подписки в той же колонке показывала свою настоящую цену: «8,99 €/нед.». Обе суммы читались на одном уровне. Расчётная цена в колонке настоящих цен читается как списываемая, даже если она мелкая.
Итоговое исправление: на каждой карточке справа крупно стоит списываемая сумма. Цена за неделю уходит в серую подпись под ней. Слева только название тарифа. На следующем ревью Apple больше не упоминала 3.1.2(c).
Остальные уроки этого приложения есть в кейсе TradaZen.
Что Apple отклонила, а что прошло
Вот реальные варианты отображения по порядку, с результатом.
| Отображение цены | Результат |
|---|---|
| TradaZen, ранняя версия: цена за неделю на первом плане | Принято на одном из прошлых ревью |
| Solys: «0,38 €/нед.» жирным, «19,99 €/год» ниже | Отклонено 10.10.2026, 3.1.2(c) |
| TradaZen 1.5.1: цена за неделю заметнее списываемой | Отклонено 12.10.2026, 3.1.2(c) |
| TradaZen: цена за неделю уменьшена, но в колонке цен | Отброшено мной до отправки |
| TradaZen: списываемая крупно справа, неделя в подписи | Не упоминалось на следующем ревью |
| Solys: «19,99 €/год» крупно, неделя серой подписью | Исправлено и отправлено в Apple |
Первая строка самая важная. Принятое ревью не гарантирует, что пейвол пройдёт в следующий раз. Каждая версия снова попадает к ревьюеру, и он может читать правило строже предыдущего. Надёжно только то отображение, которое соответствует тексту правила.
Списываемая сумма это единственная крупная цена. Любой эквивалент, за неделю, за месяц или за день, это подпись мельче и бледнее, и никогда не на её месте.
Чек-лист пейвола под 3.1.2
Этот список я теперь прохожу на каждом пейволе своих приложений перед каждой отправкой:
- На каждой карточке списываемая сумма самая крупная, самая контрастная и лучше всего расположенная цена.
- Любая расчётная цена (за неделю, месяц, день) идёт подписью, мельче и бледнее, под списываемой суммой.
- Ни одна расчётная цена не стоит в колонке, где другой тариф показывает свою настоящую цену.
- Срок написан явно: «в год», «в неделю».
- У бесплатного пробного периода указаны длительность и сумма списания после его окончания.
- Есть фраза о том, что подписка продлевается автоматически и отменяется в настройках аккаунта Apple.
- То, что открывает подписка, написано до кнопки покупки.
- На пейволе видна кнопка «Восстановить покупки».
- Ссылки на условия использования и политику конфиденциальности есть на пейволе и открываются.
- Если тарифов несколько, они в одной группе подписок, как советует Apple.
- Отображение проверено на самом маленьком iPhone и с самой длинной ценой. На TradaZen я тестирую цену во вьетнамских донгах: сумма, которая переносится на новую строку, ломает иерархию.
Если ты используешь пейволы RevenueCat, в документации RevenueCat то же предупреждение: одной переменной месячной цены недостаточно, если списываемая сумма и её периодичность больше нигде не показаны. Полная интеграция описана в статье RevenueCat: настраиваем подписку в приложении, а ошибки дизайна в статье пейвол iOS: 7 ошибок новичка.
Ссылки на условия и конфиденциальность: в приложении и на странице
Другой вид отказа по 3.1.2 касается не пейвола, а метаданных. Сообщения разработчиков на форумах Apple уточняют, где этого ждут: ссылка на политику конфиденциальности в предназначенном для неё поле App Store Connect, а ссылка на условия использования (EULA) в описании или в поле EULA.
Ловушка в стандартном соглашении. Согласно справке App Store Connect, если ты не добавляешь своё соглашение, действует стандартное соглашение Apple, и «the license agreement link isn't shown on your App Store product page»: на твоей странице никакой ссылки не появится. Если ты используешь стандартное соглашение, ссылку в описание добавляешь сам, на свою страницу условий или на стандартное лицензионное соглашение Apple.
В приложениях с подпиской я заканчиваю описание двумя строками на каждом языке страницы. Вот шаблон, подстрой под своё предложение и свой домен:
Бесплатный пробный период 7 дней, затем годовая или недельная подписка,
отменить можно в любой момент.
Условия: https://your-domain.com/terms
Конфиденциальность: https://your-domain.com/privacy
Открой обе ссылки, прежде чем вставлять: несуществующая страница равна отсутствующей ссылке. Что должно быть в политике, подробно описано в статье политика конфиденциальности приложения, а остальное по странице в сторе на странице ASO App Store.
Это исправляется без нового билда: описание и поля App Store Connect относятся к метаданным.
3.1.2(a): подписка должна давать постоянную ценность
Другой пункт, из-за которого отклоняют, касается модели, а не экрана. 3.1.2(a) требует «ongoing value»: ценности, которая сохраняется со временем. Период длится минимум семь дней, а подписка работает на всех устройствах пользователя. Подписчик получает то, за что заплатил, без дополнительных действий вроде публикации в соцсети.
Если твоё приложение оказывает услугу один раз, возможно, лучше подойдёт разовая покупка. Обе модели сравниваются в статье подписка или разовая покупка.
Что ответить Apple после отказа по 3.1.2
Переписка ведётся в разделе App Review твоего приложения. Порядок, как ответить App Review, такой же, как для других правил. Возможны два случая:
- Проблема в приложении (размер цен, тексты на пейволе): нужен новый билд, как для Solys и TradaZen. Ревьюер тестирует встроенный код, я объясняю это в гайде по guideline 2.1.
- Проблема на странице (ссылки отсутствуют или не работают): исправляешь метаданные, отвечаешь, и та же заявка уходит снова.
Пиши по-английски и по делу: в чём была проблема, что изменилось, как это проверить. Вот шаблон, которым я пользуюсь (замени номер билда, цены и путь к экрану на свои):
Hello,
Thank you for your review.
Issue: on the paywall, the weekly equivalent price was displayed
more prominently than the billed amount.
Fix in build X:
- Each plan now shows its billed amount (e.g. "€19.99/year")
as the largest price on the card.
- The weekly equivalent is a smaller grey caption below it.
- The paywall states the duration, the auto-renewal, and links
to our Terms of Use and Privacy Policy.
How to verify: launch the app and complete the onboarding.
The paywall appears at the end.
Best regards,
Исправь пейвол до следующей отправки
Если твоё приложение только что отклонили по 3.1.2, Apple Review Kit поможет найти упомянутое правило, понять, что оно требует, и даст пример исправления и ответа. Его скиллы для Claude Code ещё и проверяют твой пейвол и страницу перед отправкой. Если нужен живой взгляд, забронируй со мной час: разберём сообщение Apple и переделаем твой пейвол прямо на твоём экране. Весь процесс описан на странице приложение отклонено Apple, а настройка подписки на странице подписка в приложении iOS.
Если ты готовишь свой первый релиз, пройди бесплатную диагностику: она расставит шаги по порядку и пришлёт тебе мой чек-лист против отказов Apple. Чтобы создать мобильное приложение, которое зарабатывает с первого дня, в iOS Kit третий этап, «подключить деньги», целиком посвящён подписке и пейволу.
Никто не может гарантировать, что Apple примет твоё приложение. Но я могу уберечь тебя от отказа по 3.1.2(c), за который я заплатил дважды.
Частые вопросы
Что значит «Guideline 3.1.2 - Business - Payments - Subscriptions»?
Это полное название правила о подписках. Оно указывает на неправильную иерархию цен, недостающую информацию на пейволе, отсутствующую ссылку на странице или подписку без постоянной ценности. Буква в скобках, например 3.1.2(c), указывает на конкретный пункт.
Можно ли ещё показывать цену за неделю или за месяц?
Да. Apple разрешает эквивалент за неделю или за месяц, а также размер скидки, если они мельче и менее заметны, чем реально списываемая сумма. В моих приложениях эквивалент это серая подпись под списываемой ценой, и никогда не в колонке настоящих цен.
Нужен ли новый билд после отказа по 3.1.2?
Да, если проблема на пейволе, ведь ревьюер тестирует встроенный код. Нет, если она на странице, например нет ссылки в описании: исправляешь метаданные, и та же заявка уходит снова.
Куда ставить ссылку на условия использования (EULA)?
В приложении, на пейвол. На странице в сторе: в описание или в поле EULA в App Store Connect, если у тебя своё соглашение. Со стандартным соглашением Apple никакая ссылка на странице не показывается: добавь её сам в описание, на каждом языке.
Мой пейвол уже принимали, почему его отклонили сейчас?
Потому что каждая версия снова проходит ревью, иногда у другого ревьюера. Цену за неделю на первом плане приняли в TradaZen, а потом отклонили в Solys и в TradaZen в октябре 2026. Защищает только текст правила.