Одне повернення коштів за місячною підпискою Apple із 12-місячним зобов'язанням може завершити весь рік або лише один його місяць
Місячна підписка Apple із 12-місячним зобов'язанням ділить повернення коштів на два випадки. Якщо повернути минулий місяць, оплата триває. Якщо повернути поточний місяць, зобов'язання завершується одразу. Розповідаємо, як кожен випадок доходить до вашого сервера, скільки він коштує і що надсилати Apple.

Головне
- У місячній підписці Apple із 12-місячним зобов'язанням повернення коштів за попередній розрахунковий період скасовує лише транзакцію того місяця. Клієнт лишається підписаним, а оплата йде за графіком.
- Коли Apple повертає кошти за поточний розрахунковий період місячної підписки з 12-місячним зобов'язанням, зобов'язання одразу завершується, а решта місячних платежів так і не списується.
- Клієнт, який скасовує план із 12-місячним зобов'язанням, скасовує поновлення зобов'язання, а не решту платежів. Тож Apple і далі списує оплату щомісяця і надсилає EXPIRED лише після 12-го періоду.
- Billing Grace Period (пільговий період оплати) не застосовується до місячних підписок із 12-місячним зобов'язанням. Apple радить розробникам забирати доступ при DID_FAIL_TO_RENEW і повертати його при DID_RENEW з підтипом BILLING_RECOVERY.
- Якщо Apple не вдається стягнути невдалий місячний платіж за планом із 12-місячним зобов'язанням протягом 90 днів, зобов'язання завершується, а відкликання доступу стає остаточним.
- Запит на повернення коштів за планом із зобов'язанням запускає CONSUMPTION_REQUEST, і Apple просить дані про споживання та вашу позицію щодо повернення за цей розрахунковий період протягом 12 годин.
- Перехід із плану з 12-місячним зобов'язанням на вищий рівень одразу завершує зобов'язання, і клієнт може отримати пропорційне повернення за невикористану частину поточного періоду.
Одне схвалене повернення коштів за місячною підпискою Apple із 12-місячним зобов'язанням може забрати один платіж або скасувати всі платежі, що лишилися до кінця року. Що саме станеться, залежить від деталі, яку більшість серверного коду ніколи не перевіряє: чи є місяць, за який повертають кошти, поточним. Документація Apple пише про це прямо. Повернення за минулий розрахунковий період залишає зобов'язання чинним. Повернення за поточний період завершує його одразу. Якщо обробляти обидва випадки однаково, ви або відріжете клієнта, який досі платить, або далі обслуговуватимете того, хто вже не платить.
Як працює оплата за планом Apple із 12-місячним зобов'язанням
Apple запустила цю опцію у квітні 2026 року. Це не новий тип продукту. Ви додаєте місячний план оплати до наявної річної автоматично поновлюваної підписки в App Store Connect, і ідентифікатор продукту лишається тим самим. Клієнт платить щомісяця, зобов'язався зробити 12 платежів, і після останнього платежу зобов'язання поновлюється ще на 12 місяців, якщо клієнт не скасує його раніше.
| Правило | Що каже документація Apple |
|---|---|
| Де продається | У всіх вітринах, крім Сполучених Штатів і Сінгапуру |
| Пристрої та SDK | OS 26.4 або новіша, крім watchOS, у застосунках, зібраних із SDK 26.5 або новішим |
| Цінові межі | Сума за 12 місяців має бути не меншою за річну ціну з передоплатою і не більшою за неї в 1,5 раза |
| Передумова | Річна передоплата має бути налаштована в країні, перш ніж там можна запропонувати щомісячну оплату |
| Як це видно в даних | billingPlanType має значення MONTHLY, а commitmentInfo містить billingPeriodNumber, totalBillingPeriods, commitmentExpiresDate і commitmentPrice |
| Якщо ви приберете опцію | Наявні клієнти не поновлюються наприкінці зобов'язання, а нові не можуть її обрати |
Кожен розрахунковий період створює власну транзакцію і дає один місяць доступу. Саме ця деталь визначає поведінку повернень. Apple повертає кошти за транзакції, а в плані із зобов'язанням кожен місяць є окремою транзакцією.
Що повернення коштів робить із 12-місячним зобов'язанням
Посібник Apple про життєвий цикл зобов'язання ділить повернення на два випадки. Різниця в тому, до якого розрахункового періоду застосовується повернення.
| Повернення стосується | Що відбувається із зобов'язанням | Де ви це бачите | Що має зробити ваш сервер |
|---|---|---|---|
| Попереднього розрахункового періоду | Триває без змін. Оплата за графіком | revocationDate у транзакції того періоду | Скасуйте лише цю транзакцію. Залиште підписку активною |
| Поточного розрахункового періоду | Завершується одразу | revocationDate в останній транзакції | Завершіть доступ. Платежів більше не буде |
| Переходу на вищий рівень | Завершується одразу, починається новий план | DID_CHANGE_RENEWAL_PREF, підтип UPGRADE | Змініть право доступу. Може надійти пропорційне повернення за невикористаний період |
Чи скасовує повернення за другий місяць решту року?
Ні, якщо другий місяць уже минув. Припустімо, клієнт на п'ятому місяці, і Apple повертає йому платіж за другий місяць. Apple скасовує транзакцію другого місяця, а клієнт лишається підписаним. Оплата за місяці з шостого по дванадцятий триває. Настанови Apple тут однозначні: перевірте revocationDate у відповідній транзакції, але не трактуйте його як скасування зобов'язання.
Коли повернення завершує зобов'язання
Якщо повернення стосується поточного розрахункового періоду, зобов'язання завершується одразу. Сигнал: revocationDate в останній транзакції. Його наявність означає, що поточний період скасовано і платежів більше не буде, тож доступ теж завершується.
Перехід на вищий план теж може повернути гроші
Apple зазначає, що клієнти можуть отримати повернення не лише після запиту, а й після зміни плану. Перехід із плану із зобов'язанням на підписку вищого рівня відбувається одразу. Зобов'язання завершується, починається новий план, і клієнт може отримати пропорційне повернення за невикористану частину поточного періоду зобов'язання. Перехід на нижчий план працює навпаки. Він чекає, доки 12-місячне зобов'язання завершиться.
Скасування не є поверненням коштів
Клієнт, який натискає Cancel у плані з 12-місячним зобов'язанням, не припиняє платити. Apple каже, що він скасовує поновлення зобов'язання, а не решту платежів у поточному терміні. Ось що доходить до вашого сервера.
- Apple надсилає DID_CHANGE_RENEWAL_STATUS з підтипом AUTO_RENEW_DISABLED.
- Статус автопоновлення зобов'язання падає до 0, тож після завершення терміну зобов'язання не поновиться.
- Інформація про поновлення підписки досі показує willAutoRenew зі значенням 1, бо щомісячна оплата триває.
- Сповіщення DID_RENEW і далі надходять за кожен місяць, що лишився. EXPIRED приходить після 12-го періоду, і лише тоді доступ завершується.
Apple радить розробникам перевіряти тип плану оплати, перш ніж запускати звичну логіку скасування. Якщо це MONTHLY, нічого не відкликайте. Виконуйте кожен розрахунковий період, що лишився.
Є один регіональний виняток. App Store Connect Help каже, що клієнт, який скасував підписку, платить до завершення зобов'язання, за винятком певних регіонів, і посилається на сторінку Apple про скасування підписок у Німеччині, Ізраїлі, Південно-Африканській Республіці та Туреччині. У цих чотирьох країнах клієнти мають право будь-коли скасувати підписку з негайним ефектом і отримати пропорційне повернення.
Невдалі платежі одразу завершують доступ
Плани із зобов'язанням прибирають страховку, на яку ви, можливо, покладаєтеся деінде. Billing Grace Period не застосовується. Коли місячне поновлення не вдається, Apple радить забирати доступ, поки підписка перебуває в billing retry, і повертати його лише тоді, коли платіж вдасться стягнути.
| Сповіщення | Що воно повідомляє | Що робити |
|---|---|---|
| DID_FAIL_TO_RENEW | isInBillingRetryPeriod має значення true | Заберіть доступ зараз |
| DID_RENEW, підтип BILLING_RECOVERY | commitmentExpiresDate зсувається відповідно до дати стягнення | Поверніть доступ і збережіть нову дату завершення |
| EXPIRED, підтип BILLING_RETRY | Apple не змогла стягнути платіж протягом 90 днів | Зобов'язання завершено. Ваше попереднє відкликання доступу остаточне |
Після стягнення зчитайте commitmentExpiresDate з останньої транзакції. Вона не збігатиметься з початковою датою завершення, і кожне наступне поновлення йтиме за зсунутим графіком.

Скільки коштує повернення за планом із зобов'язанням
Ось розрахунок на прикладі цін. Припустімо, ваш річний план із передоплатою коштує 59,99 €, а місячна опція із зобов'язанням 6,99 €, що разом дає 83,88 € за 12 місяців. Це в межах ліміту Apple: не більше ніж у 1,5 раза від ціни з передоплатою.
| Сценарій, клієнт на 4-му місяці | Повернені платежі | Втрачені майбутні платежі | Втрачена вартість зобов'язання |
|---|---|---|---|
| Apple повертає 2-й місяць | 6,99 € | Немає. Місяці з 5 по 12 і далі оплачуються | 6,99 € |
| Apple повертає 4-й місяць, тобто поточний період | 6,99 € | 55,92 €, вісім платежів так і не списано | 62,91 € |
| Клієнт скасовує, без повернення | Немає | Немає. Місяці з 5 по 12 і далі оплачуються | 0 € |
| Клієнт у Німеччині скасовує | Пропорційна частка 4-го місяця | 55,92 € | До 62,91 € |
Це ціни для клієнта. Насправді ви втрачаєте свою частку кожного платежу. Apple виплачує 70% ціни підписки за вирахуванням відповідних податків протягом першого року платного обслуговування підписника і 85% після цього або для учасників App Store Small Business Program.
Повернення коштів становить лише половину рахунку. Місяць доступу не безкоштовний для вас. Якщо ваш застосунок запускає генерації ШІ, викликає платні сторонні API або зберігає файли клієнтів, ви вже заплатили за ці обчислення, ці виклики і це сховище в місяці, за який повернули кошти. Повернення за минулий місяць віддає платіж і залишає ці витрати вам. Повернення за поточний місяць робить те саме і ще й викреслює решту року з вашого прогнозу.
Як відповідати на CONSUMPTION_REQUEST для плану із зобов'язанням
Це єдиний момент, коли ви маєте право голосу. Коли клієнт просить повернення за планом із зобов'язанням, Apple надсилає CONSUMPTION_REQUEST на ваш ендпоінт App Store Server Notifications V2. Ви відповідаєте через Send Consumption Information, і Apple просить відповісти протягом 12 годин. Відповідь містить дані про споживання та вашу позицію щодо повернення за цей розрахунковий період, а не за все зобов'язання.
- Надсилайте дані лише за згоди клієнта. Документація Apple каже, що без згоди на запит не слід відповідати взагалі.
- Не надсилайте consumptionPercentage. API повертає ConsumptionPercentageAutoRenewableSubscriptionError, якщо передати його для автоматично поновлюваної підписки.
- Ґрунтуйте позицію щодо повернення на використанні за той місяць. Клієнт, який запустив 300 платних генерацій у спірному місяці, залишив запис реальних витрат. Той, хто жодного разу не відкрив застосунок, не залишив.
- Подивіться, який період охоплює запит. Запит за поточний період, якщо Apple його схвалить, завершує зобов'язання. Запит за минулий період ні.
Що має обробляти ваш сервер
- Зчитуйте billingPlanType у кожній транзакції та кожному сповіщенні про поновлення. MONTHLY означає, що діють правила зобов'язання.
- Надавайте доступ за expirationDate транзакції. Apple каже, що дата завершення в commitmentInfo потрібна для показу прогресу, а не для рішень про доступ.
- При поверненні коштів перевірте, чи має остання транзакція revocationDate, перш ніж завершувати підписку.
- При скасуванні зберігайте доступ, доки не прийде EXPIRED після 12-го періоду.
- При DID_FAIL_TO_RENEW забирайте доступ одразу. Не чекайте пільгового періоду, якого не буде.
- Знову зберігайте commitmentExpiresDate після кожного BILLING_RECOVERY.
Кожне повернення коштів в App Store вирішує Apple, тож CONSUMPTION_REQUEST є вашим єдиним шансом показати їй дані про використання. RefundHalt автоматично відповідає на ці запити в межах 12-годинного вікна і фіксує, якого розрахункового періоду стосувалося кожне повернення, тож повернення за минулий місяць ніколи не сприймається як втрачений підписник.
Поширені запитання
- Що відбувається, коли Apple повертає один платіж місячної підписки з 12-місячним зобов'язанням?
- Це залежить від розрахункового періоду. Повернення за попередній період скасовує лише транзакцію того місяця, а зобов'язання триває з оплатою за графіком. Повернення за поточний період одразу завершує зобов'язання, тож решта платежів так і не списується.
- Чи можуть клієнти достроково скасувати місячну підписку Apple із 12-місячним зобов'язанням?
- Можуть, але скасування зупиняє поновлення зобов'язання, а не решту платежів. Оплата триває всі 12 періодів, і доступ триває разом із нею. App Store Connect Help згадує винятки в певних регіонах, а сторінка підтримки Apple каже, що клієнти в Німеччині, Ізраїлі, Південно-Африканській Республіці та Туреччині можуть скасувати з негайним ефектом і отримати пропорційне повернення.
- Чи застосовується Billing Grace Period до планів із 12-місячним зобов'язанням?
- Ні. Apple каже, що Billing Grace Period не застосовується до місячних підписок із 12-місячним зобов'язанням. Забирайте доступ, коли надходить DID_FAIL_TO_RENEW, повертайте його при DID_RENEW з підтипом BILLING_RECOVERY і вважайте EXPIRED з підтипом BILLING_RETRY після 90 днів остаточним.
- Чи отримаю я CONSUMPTION_REQUEST для плану з 12-місячним зобов'язанням?
- Так. Запит на повернення за планом із зобов'язанням надсилає CONSUMPTION_REQUEST на ваш ендпоінт App Store Server Notifications V2. Відповідайте протягом 12 годин даними про споживання та вашою позицією щодо повернення за цей розрахунковий період, і лише якщо клієнт погодився на передачу даних Apple.
- Чи доступна місячна підписка з 12-місячним зобов'язанням у Сполучених Штатах?
- Ні. Apple пропонує її в усіх вітринах App Store, крім Сполучених Штатів і Сінгапуру, на OS 26.4 або новішій, крім watchOS, у застосунках, зібраних із SDK 26.5 або новішим.
Джерела та додаткове читання
- Apple Developer News: Now Available: Monthly Subscriptions with a 12-Month Commitment (April 27, 2026)
- Apple Developer Documentation: Managing the life cycle of monthly subscriptions with a 12-month commitment
- Apple Developer Documentation: Supporting monthly subscriptions with a 12-month commitment
- App Store Connect Help: Set availability for an auto-renewable subscription (monthly with 12-month commitment)
- Apple Support: About canceling subscriptions in Germany, Israel, South Africa, or Türkiye
- Apple Developer Documentation: Send Consumption Information
- Apple Developer Documentation: App Store Server Notifications notificationType
- Apple Developer: Auto-renewable subscriptions (net revenue after one year of paid service)
- Apple Developer: What's new in Apple In-App Purchase (WWDC26)
RefundHalt
Автопілот повернень для App Store і Google Play
Читайте далі
Політика повернення коштів у вашому застосунку не переважає правила Apple чи Google, тож пишіть ту, що відповідає реальності
Політика повернення коштів у застосунку зобовʼязує вас лише там, де повернення справді здійснюєте ви. Apple сама повертає кошти за кожну покупку в App Store, а Google Play передає повернення вам через 48 годин. Ось що кажуть угоди обох магазинів, чого коштує необережна обіцянка і які пункти варто прописати.
Те, як ви відповідаєте на запит про повернення коштів, вирішує, чим він закінчиться: поверненням чи чарджбеком
Коли клієнт пише вам листа або залишає відгук із проханням повернути гроші, відповідь на запит про повернення коштів залежить від того, який магазин продав покупку. Хто ухвалює рішення, які строки вас зобов'язують, скільки коштує кожен результат і відповіді, що закривають справу.