Apple теперь продаёт вашу подписку целым компаниям по местам, и возврат многоместной подписки устроен иначе
22 октября 2026 года Apple включила многоместные подписки для компаний и школ, по умолчанию. Одна покупка теперь покрывает многих людей, удаление мест приходит уведомлениями REVOKE, а эндпоинт для доказательств по возвратам отказывается работать с назначенными местами. Что меняется и сколько это стоит.

Главное
- С 22 октября 2026 года организации, использующие Apple Business или Apple School Manager, могут купить автовозобновляемую подписку приложения оптом через одну покупку In-App Purchase в Apple, назначить места через свои инструменты управления устройствами и в любой момент добавлять или удалять места.
- Apple включила многоместные покупки по умолчанию в App Store Connect. Подписки, созданные до 14 сентября 2026 года, которые не используют StoreKit 2 или у которых включён Семейный доступ, изначально отключены. Подписки в заказных приложениях (custom apps) отключить нельзя вовсе.
- При многоместной покупке поле quantity в payload транзакции Apple сообщает число мест, а каждый, кто получает место, получает транзакцию с inAppOwnershipType, равным ASSIGNED.
- Когда организация отзывает у человека назначенную ему подписку, Apple отправляет уведомление REVOKE, а транзакция несёт revocationType ASSIGNMENT_REVOKE, доступный в продакшене с 23 октября 2026 года.
- Эндпоинт Apple Send Consumption Information, ответ на CONSUMPTION_REQUEST, возвращает InvalidAssignedTransactionNotSupportedError при вызове с назначенной транзакцией, поэтому доказательства по возврату можно отправить только для транзакции покупателя.
- Поле revocationType в Apple отличает REFUND_FULL от REFUND_PRORATED, а revocationPercentage сообщает возвращённую долю в тысячных долях, то есть 40000 означает 40 процентов.
- Group Purchases (групповые покупки), где один клиент App Store покупает несколько мест и приглашает других, можно тестировать в песочнице с ноября 2026 года, а в App Store они появятся этой зимой.
С 22 октября 2026 года Apple продаёт подписки на приложения организациям по местам и включила эту опцию большинству разработчиков, не спрашивая. Компании и школы, использующие Apple Business или Apple School Manager, теперь могут купить вашу автовозобновляемую подписку оптом через одну покупку In-App Purchase. Это меняет то, как возврат многоместной подписки выглядит на вашем сервере. Одна транзакция теперь может оплачивать десятки людей, место может исчезнуть вообще без возврата, а эндпоинт, через который вы отстаиваете дело о возврате, отказывается говорить о людях, которые на самом деле пользуются приложением.
Что Apple включила и где об этом объявила
Запуск оформили короткой новостью Apple Developer под заголовком «Offer your subscriptions to businesses and schools». В ней сказано, что организации могут купить нужные места через одну покупку In-App Purchase, затем назначать места и управлять ими через существующие инструменты управления устройствами и в любой момент добавлять или удалять места. Там же сказано, что многоместные покупки включены по умолчанию в App Store Connect, если вы ещё не меняли эту настройку.
Техническая часть появилась за предыдущий месяц в журналах изменений, а не со сцены. App Store Server API 1.22 от 28 сентября добавил поля мест и групповые эндпоинты, только в песочнице. 23 октября однострочное обновление сервера перевело групповые эндпоинты и значение ASSIGNMENT_REVOKE в продакшен. Если ваш обработчик уведомлений не менялся с лета, он теперь получает данные, которые никогда не умел читать.
| Дата | Что изменилось | Где Apple об этом сообщила |
|---|---|---|
| Июнь 2026 | Многоместные подписки анонсированы на WWDC26 | Сессия 391, Offer subscriptions to groups and organizations |
| 16 сентября 2026 | Многоместные покупки включены по умолчанию в App Store Connect | Новости Apple Developer |
| 28 сентября 2026 | quantity сообщает число мест, добавлены ASSIGNED и ASSIGNMENT_REVOKE, только песочница | Журнал изменений App Store Server API, версия 1.22 |
| 22 октября 2026 | Volume Purchasing (оптовые покупки) запущены для Apple Business и Apple School Manager | Новости Apple Developer |
| 23 октября 2026 | ASSIGNMENT_REVOKE и групповые эндпоинты работают в продакшене | Журналы изменений Server API и Server Notifications |
| Ноябрь 2026 | Group Purchases можно тестировать в песочнице | Новости Apple Developer |
| Этой зимой | Group Purchases в App Store | Новости Apple Developer |
У кого опция включена по умолчанию
Почти у всех. Справочная страница App Store Connect говорит, что подписки, созданные до 14 сентября 2026 года, изначально отключены, только если они не используют StoreKit 2 или у них включён Семейный доступ. Подписки в заказных приложениях автоматически доступны в Apple Business и Apple School Manager, и отключить их нельзя. Изменить настройку может роль Account Holder, Admin или App Manager, а убрать Apple Business или Apple School Manager из одобренной подписки может только Account Holder.
Как многоместная покупка выглядит на вашем сервере
Теперь у одной подписки два вида транзакций. Покупка организации это одна транзакция, и её поле quantity сообщает, сколько мест куплено. Каждый, кто получает место, получает собственную транзакцию. В сессии Apple на WWDC это описано так: App Store назначает транзакцию каждому участнику. Эти транзакции участников несут inAppOwnershipType ASSIGNED, рядом со значениями PURCHASED и FAMILY_SHARED, которые вы, возможно, уже обрабатываете.
Apple чётко говорит, какая запись определяет доступ. Документация Get Customer Groups сообщает, что членство в группе отделено от права доступа и что для открытия контента нужно читать транзакции клиента, а не полагаться на членство в группе. Выдавайте доступ по транзакциям. Используйте групповые эндпоинты только для функций вроде панели администратора.
| Поле или значение | Что оно сообщает | Добавлено |
|---|---|---|
| quantity | Число мест в многоместной покупке | 28 сентября 2026 |
| inAppOwnershipType = ASSIGNED | У человека есть доступ через организацию или группу | 28 сентября 2026 |
| revocationType = ASSIGNMENT_REVOKE | Покупатель отозвал подписку у этого человека | 28 сентября 2026, продакшен 23 октября |
| revocationType = REFUND_FULL или REFUND_PRORATED | Транзакция возвращена полностью или частично | 10 декабря 2025 |
| revocationPercentage | Возвращённая доля в тысячных долях (40000 = 40%) | 10 декабря 2025 |
Удалённое место не равно возврату
Здесь ошибётся большинство обработчиков. Когда организация забирает место у сотрудника, Apple отправляет уведомление REVOKE, того же типа, что и в случае, когда покупатель в Семейном доступе перестаёт делиться покупкой. revocationType транзакции равен ASSIGNMENT_REVOKE, и указание Apple прямое: отзовите у клиента доступ к контенту, который даёт транзакция.
Ничто в этом событии не говорит о движении денег. Если ваш код считает каждый отзыв возвратом, ваша доля возвратов, чистая выручка и все построенные на них оповещения будут учитывать обычную смену персонала как потерянные продажи. Сначала ветвите логику по revocationType.
- ASSIGNMENT_REVOKE: закройте доступ этому человеку. Не проводите возврат.
- FAMILY_REVOKE: закройте доступ члену семьи. Не проводите возврат.
- REFUND_FULL: закройте доступ и проведите всю транзакцию как возвращённую.
- REFUND_PRORATED: проведите долю из revocationPercentage, затем решите, какой доступ остаётся.

Почему возврат по назначенному месту не оспорить
Apple по-прежнему сама решает по каждому возврату в App Store. Когда клиент просит возврат, Apple отправляет CONSUMPTION_REQUEST и даёт вам 12 часов на ответ через Send Consumption Information. В многоместной модели человек, который пользуется приложением, и человек, который заплатил, это разные люди, и API Apple теперь проводит между ними жёсткую границу.
Send Consumption Information отклоняет назначенные транзакции
Вызовите Send Consumption Information, его версию V1 или Set App Account Token с назначенной транзакцией, и Apple вернёт InvalidAssignedTransactionNotSupportedError. Apple советует перед вызовом проверять, не равен ли inAppOwnershipType значению ASSIGNED. На практике ваши доказательства уходят на транзакцию покупателя или никуда. Данные об использовании, которые ваше приложение записывает по аккаунтам участников, всё равно стоит хранить: только так можно понять, использовались ли места вообще.
Как выглядит частичный возврат
Apple добавила REFUND_PRORATED и revocationPercentage в декабре 2025 года. В ответе на consumption request можно запросить такой исход через refundPreference со значением GRANT_PRORATED. Для автовозобновляемой подписки Apple просит не отправлять consumptionPercentage вместе с GRANT_PRORATED, потому что сама рассчитывает процент. Если возврат позже отменят, revocationPercentage исчезнет из транзакции.
Могу ли я продлить подписку одному сотруднику в качестве жеста доброй воли?
Нет. Extend a Subscription Renewal Date возвращает AssignedSubscriptionExtensionIneligibleError для назначенной подписки. Apple объясняет это тем, что назначенная подписка продлевается по тому же графику, что и подписка, купленная покупателем, поэтому отдельного участника сдвинуть нельзя.
Во что вам обходится возврат многоместной подписки
Новый риск в масштабе. В сессии Apple на WWDC разбираются оптовые цены с пятью ценовыми ступенями максимум. В примере места стоят $19.99 в месяц до 20 мест, $13.99 за места с 21 по 40 и $10.99 начиная с 41-го места. При таких цифрах заказ на 50 мест стоит $789.50 в месяц, около $15.79 за место. REFUND_FULL по этой одной транзакции возвращает все $789.50, а не цену одной подписки.
Затраты на обслуживание растут так же. Пятьдесят мест означают пятьдесят человек, которые запускают сессии на ваших серверах, делают вызовы сторонних API, оплачиваемые вашими функциями, и заполняют хранилище, за которое вам выставляют счёт. Если владельцы мест из возвращённого заказа сохранят доступ, потому что ваш обработчик посмотрел только на транзакцию покупателя, вы продолжите платить за каждого из них. Пропущенный ASSIGNMENT_REVOKE обходится дешевле, но случается чаще: покупка больше не покрывает этого человека, и каждый его запрос это расход без выручки.
| Событие | Движение денег | Какой доступ закрыть | Какие доказательства можно отправить |
|---|---|---|---|
| ASSIGNMENT_REVOKE у участника | Не сообщается | Этому участнику | Неприменимо |
| REFUND_FULL по многоместной покупке | Вся транзакция, все места в ней | Покупателю и каждому владельцу места | Только транзакция покупателя, в течение 12 часов после CONSUMPTION_REQUEST |
| REFUND_PRORATED по многоместной покупке | Доля из revocationPercentage | Зависит от того, что покрывает возврат | Только транзакция покупателя |
| Ответ consumption по назначенной транзакции | Не принимается | Неприменимо | Отклоняется с InvalidAssignedTransactionNotSupportedError |
Какие процессы возврата вообще выслушивают вашу сторону
Многоместные подписки не меняют короткий список. Доказательства у разработчика запрашивают только два процесса возврата: CONSUMPTION_REQUEST от Apple, на который отвечают через Send Consumption Information в течение 12 часов, и проверка чарджбэков в Google Play, на которую отвечают через orders.reviewrefund в течение 24 часов. Всё остальное решается без вас. Для заказов в Google Play, оформленных после 3 августа 2026 года, чарджбэк стоит разработчику цену покупки за вычетом сервисного сбора Play плюс сборы банка за чарджбэк. RefundHalt отвечает на consumption requests от Apple в пределах 12-часового окна, используя данные об использовании, которые вы уже собираете.
Что поменять в обработчике App Store на этой неделе
- Читайте quantity в каждой транзакции подписки и сохраняйте его вместе с покупкой.
- Сохраняйте inAppOwnershipType и обрабатывайте ASSIGNED как отдельный случай рядом с PURCHASED и FAMILY_SHARED.
- Ветвите обработку REVOKE по revocationType, чтобы ASSIGNMENT_REVOKE закрывал доступ без проведения возврата.
- Проводите REFUND_PRORATED по доле из revocationPercentage, а не как полный возврат.
- Проверяйте ASSIGNED перед вызовом Send Consumption Information, Set App Account Token или Extend a Subscription Renewal Date.
- Решите в App Store Connect, хотите ли вы вообще продавать организациям, до того как одна из них купит 50 мест.
Частые вопросы
- Включены ли многоместные подписки Apple для моего приложения?
- Скорее всего, да. Apple включила многоместные покупки по умолчанию в App Store Connect. Подписки, созданные до 14 сентября 2026 года, изначально отключены, только если они не используют StoreKit 2 или у них включён Семейный доступ, а подписки в заказных приложениях отключить нельзя. Проверить это можно в разделе Purchase Options на странице каждой подписки.
- Означает ли уведомление REVOKE с ASSIGNMENT_REVOKE, что я потерял деньги?
- Нет. ASSIGNMENT_REVOKE означает, что организация или групповой покупатель отозвал подписку у одного человека. Apple просит закрыть этому человеку доступ, но событие не сообщает о возврате. Проводите возвраты только по REFUND_FULL или REFUND_PRORATED.
- Можно ли отправить данные о потреблении для сотрудника с назначенным местом?
- Нет. Эндпоинт Apple Send Consumption Information возвращает InvalidAssignedTransactionNotSupportedError для транзакций, которые организация или группа назначила клиенту. Сначала проверьте, не равен ли inAppOwnershipType значению ASSIGNED, и отправляйте доказательства по транзакции покупателя.
- Как узнать, какую часть многоместной покупки вернула Apple?
- Прочитайте revocationType и revocationPercentage в транзакции. REFUND_FULL означает, что возвращена вся транзакция. REFUND_PRORATED приходит с revocationPercentage в тысячных долях, то есть 40000 означает 40 процентов транзакции.
- Когда запускаются Group Purchases от Apple?
- По словам Apple, Group Purchases, где один клиент App Store покупает несколько мест и приглашает других, можно настраивать и тестировать в песочнице с ноября 2026 года, а в App Store они станут доступны этой зимой. Volume Purchasing для компаний и школ запущены 22 октября 2026 года.
Источники и дополнительное чтение
- Apple Developer News: Offer your subscriptions to businesses and schools (October 22, 2026)
- App Store Connect Help: Manage purchase options for an auto-renewable subscription
- WWDC26 Session 391: Offer subscriptions to groups and organizations
- App Store Server Notifications changelog
- App Store Server API: revocationType
- App Store Server API: revocationPercentage
- App Store Server API: InvalidAssignedTransactionNotSupportedError
- App Store Server API: ConsumptionRequest
RefundHalt
Автопилот возвратов для App Store и Google Play
Читайте дальше
Чрезмерные запросы на возврат обходятся дороже самих возвратов: оба магазина приложений считают их сигналом качества
Правило 5.6.4 Apple прямо называет чрезмерные запросы на возврат признаком того, что приложение не соответствует стандартам качества, а соглашение Google о распространении позволяет удалять приложения новых разработчиков по доле возвратов. Разбираем, что пишет каждый магазин, во что обходится удаление и как не попасть под удар.
Проверяйте серверные уведомления App Store, прежде чем реагировать на возврат, ведь отправить запрос на ваш URL вебхука может кто угодно
Уведомление о возврате остается обычным HTTPS-запросом, пока вы не проверили его подпись. Рассказываем, как проверять серверные уведомления App Store и сообщения RTDN из Google Play, что подписывает каждый магазин и во что обходится поддельный или ошибочно отклоненный возврат.