Скасувати підписку й отримати повернення коштів, це дві різні речі, і лише одна повертає гроші вашому клієнту
Коли ви скасовуєте підписку, магазин просто зупиняє наступне списання, клієнт зберігає доступ до кінця періоду, і гроші не рухаються. Повернення скасовує платіж, який уже пройшов, і забирає доступ разом із ним. Ось де ці два шляхи розходяться, скільки коштує кожен, і чому лише повернення досягає вашого сервера.

Головне
- Скасувати підписку й повернути кошти за неї, це різні події. Скасування зупиняє наступне поновлення й не повертає нічого. Повернення скасовує платіж, який уже пройшов, і віддає гроші назад.
- Коли клієнт скасовує, він зберігає доступ до кінця періоду, який уже оплатив. Google Play зазначає, що річний план, куплений 1 січня і скасований 1 липня, працює до 31 грудня, без списання наступного січня.
- Скасування нічого не коштує вам для захисту. Це майбутній дохід, який ви не заробите, а не вилучення з проведеного продажу, і воно ніколи не відкриває вікна для доказів на вашому сервері.
- Повернення, це вилучення. Магазин повертає клієнту свою комісію разом із вашим чистим доходом, клієнт втрачає доступ, а обчислення, виклики API, сховище й виплати, які ви вже витратили, лишаються втраченими.
- Минулі списання за підписку зазвичай узагалі не підлягають поверненню. Google Play каже, що минулі підписки не можна повернути поза вказаними винятками, а Apple розглядає кожен запит на повернення окремо й може його відхилити.
- Лише повернення взагалі може досягти вас заради доказів, і то лише для деяких продуктів. Від оновлення WWDC24 повернення за підпискою з автопоновленням запускає CONSUMPTION_REQUEST від Apple з вікном 12 hours. Скасування не запускає нічого.
- Зараховувати скасування до цифр повернень приховує правду. Скасування, це сигнал утримання, а повернення, це витратна подія, тож вимірюйте їх окремо, інакше ваш показник повернень бреше вам.
Скасувати підписку й попросити повернення коштів здаються вашому клієнту тим самим кроком, а це не так. Скасуйте підписку, і магазин просто зупинить наступне списання. Клієнт збереже те, що вже оплатив, до кінця періоду, і жодні гроші не змінять власника. Попросіть повернення, і магазин скасує платіж, який уже пройшов, віддасть гроші й забере доступ разом із ними. Одне, це відтік, який ви ніколи не проводите як збиток. Інше, це вилучення, яке забирає реальний дохід із продажу, який ви вже зафіксували. Ось де саме ці два шляхи розходяться, що кожен робить із вашим доходом, і чому лише повернення досягає вашого сервера як щось, на що ви можете відповісти.
Чому скасування підписки не запускає повернення коштів
Скасування, це одна вузька дія: воно вимикає наступне автоматичне поновлення. Воно не скасовує платіж, який клієнт уже зробив, і не відрізає його доступ на місці. Обидва магазини кажуть про це прямо, бо плутанина настільки поширена, що вони відповідають на неї на першій сторінці довідки, до якої дістається клієнт.
Google Play пояснює це на прикладі. Скасуйте річний план, куплений 1 січня, і, словами Google, ви збережете доступ до підписки до 31 грудня й не будете списані наступного січня. Apple працює так само: скасування зупиняє поновлення, а підписка триває до кінця поточного періоду, перш ніж зупиниться. Жоден магазин не трактує саме скасування як повернення, і жоден не повертає жодної частини того, що клієнт уже заплатив.
Клієнт зберігає те, що вже оплатив
Це та частина, яка людей дивує. Скасування дивиться вперед. Воно завершує стосунки на наступну дату виставлення рахунку, не сьогодні. Google Play каже це чітко: коли ви скасовуєте, ви ще можете користуватися підпискою протягом часу, який уже оплатили. Гроші за поточний період лишаються при продажу, а клієнт зберігає доступ, який за них купив. Ніщо в цій операції не скасовується.
На безкоштовному пробному періоді час скасування кусається
Безкоштовний пробний період, це місце, де скасування й списання стикаються. Пробний період автоматично переходить у платну підписку, якщо клієнт не скасує його до кінця. Власна порада Apple, це скасувати безкоштовний пробний період щонайменше за 24 hours до його кінця, бо скасування, яке настає після того, як пробний період уже перетворився, не скасовує списання. У цей момент у клієнта вже немає питання про скасування. У нього є питання про повернення, і відповідь працює за правилами повернення, а не скасування.
Що повернення насправді скасовує, а що ні
Повернення, це потік, який рухає гроші. Коли магазин його надає, він скасовує платіж, повертає кошти клієнту й відкликає товар. Google Play каже це прямо: якщо повернення видано, клієнт втрачає доступ до товару. Повернення, це не люб'язність поверх скасування. Це окремий запит із власним вікном, власним рішенцем і власними наслідками для ваших книг.
Вікна короткі, і рішення не за вами. Google Play пропонує самообслуговуване повернення лише протягом 48 hours після покупки, а потім запит переходить до розробника. Google також обмежує самообслуговуване повернення до одного разу на застосунок і попереджає, що не дає повернень за більшість покупок у Play. Apple тримає повернення повністю у власних руках: клієнт подає запит на reportaproblem.apple.com, Apple розглядає кожен запит окремо, і Apple може його відхилити. Минулі списання за підписку, це найскладніший випадок з усіх. Google Play каже, що минулі підписки не можна повернути поза вказаними винятками, як-от невикористаний передплачений план.
| Подія | Повернені гроші | Доступ | Хто вирішує | Досягає вашого сервера |
|---|---|---|---|---|
| Скасування | Немає | Зберігається до кінця оплаченого періоду | Клієнт | Ні |
| Повернення | Так, платіж скасовується | Відкликається, коли повернення надано | Магазин, Apple чи Google | Так, як сповіщення про повернення |
| Зворотний платіж | Так, і остаточний з боку банку | Відкликається, а спір із банком | Банк клієнта | Так, з вікном для розгляду |
Гроші, і чому скасування й повернення коштують вам цілком різних речей
Ці дві події лягають на ваші фінанси протилежним чином. Ставитися до них як до одного числа, це те, як здоровий бізнес наганяє на себе паніку, а той, що протікає, ховає свою справжню проблему.
Скасування, це втрачений майбутній дохід, а не збиток у книгах
Скасування не коштує вам нічого, що ви вже заробили. Дохід із періодів, які клієнт оплатив, лишається вашим. Ви втрачаєте дохід, який зібрали б, якби він далі поновлював, а це питання довічної цінності клієнта, а не вилучення. Немає комісії магазину, яку треба відкрутити, немає долученого збору й немає витрати, яку треба списати, бо продажі, що вже сталися, досі реальні. Скасування, це проблема утримання, яку розв'язують продуктом і ціною, і воно жодного разу не просить у вас доказів.
Повернення забирає дохід, який ви вже провели, плюс витрати за ним
Повернення, це дорога подія. Коли магазин його надає, він скасовує власну комісію разом із продажем, тож ви втрачаєте свій чистий дохід, а не повну прейскурантну ціну. Це єдина добра новина, і на цьому вона закінчується. Обчислення, за які ви заплатили, витрачені. Виклики API, оплачувані за запит чи за токен, витрачені. Файли, що досі лежать у сховищі, досі коштують вам зберігання. Якщо покупка профінансувала виплату творцю чи призовий фонд, ці гроші вже пішли. Повернення стягує продаж назад і лишає кожну з цих витрат рівно там, де вона була.
Зворотний платіж, це найважча версія повернення
Зворотний платіж, це повернення, яке клієнт проводить через свій банк, а не через магазин, і завершений остаточний з боку банку. Для замовлень Google Play, розміщених 3 серпня 2026 або пізніше, програний зворотний платіж списує з розробника ціну покупки мінус сервісний збір Play, плюс банківський збір за зворотний платіж, фіксовану плату, яку встановлює карткова мережа. Google Play направляє цей спір до вас на розгляд через orders.reviewrefund з вікном 24 hours. Це єдиний потік Google, який просить ваші докази, і він може лягти на підписку, яку клієнт міг би просто безкоштовно скасувати.

Яка з трьох взагалі досягає вашого сервера
Це та межа, що важлива для того, як ви будуєте. Скасування ніколи не приходить як щось, на що ви відповідаєте. Воно з'являється у вашому стані підписки як поновлення, яке не станеться, і немає вікна, немає запиту на докази й немає чого оскаржувати, бо у вас нічого не забрали.
Повернення інше, і то лише для деяких продуктів. Від оновлення WWDC24 та App Store Server Notifications version 2.11 запит на повернення за підпискою з автопоновленням запускає CONSUMPTION_REQUEST від Apple, і ви маєте до 12 hours, щоб надіслати дані про споживання. У Google Play зворотний платіж за будь-яким продуктом відкриває розгляд orders.reviewrefund з 24 hours. Ці два вікна, це вся поверхня, де проблема з підпискою стає чимось, на що ваш сервер може відповісти, а звичайне скасування не відкриває жодного з них. Окремо, Google Play автоматично повертає покупку, яку ваш застосунок не підтвердить протягом 72 hours, а це повернення, на яке ви взагалі не мали впливу.
Як ставитися до скасувань і повернень у власних даних
Ви не зупините клієнта від скасування, і вам не слід намагатися ставитися до кожного скасування як до повернення, яке треба захищати. Робота полягає в тому, щоб чисто розрізняти ці два.
- Рахуйте скасування й повернення як окремі метрики. Скасування належить до відтоку й утримання. Повернення належить до собівартості доходу. Змішайте їх, і ваш показник повернень читатиметься високо з причини, яка насправді просто відтік.
- Ніколи не будуйте захист навколо скасувань. Вони не відкривають вікна й не забирають проведених грошей, тож доказам нікуди йти. Вкладіть ці зусилля у два потоки, які справді просять.
- Записуйте доставлення й споживання в момент продажу, а не після того, як спір ляже. Повернення, які таки відкривають вікно, винагороджують телеметрію, яку ви вже маєте, і карають реконструкцію, за яку ви борсаєтесь під годинником 12 hours чи 24 hours.
- Відповідайте на ці два вікна автоматично. CONSUMPTION_REQUEST і розгляд orders.reviewrefund не можуть чекати, поки хтось прочитає скриньку, і вони не подовжуються для часових поясів чи вихідних.
Ніщо з цього не про те, щоб відмовити клієнта від відходу. Це про те, щоб знати, які відходи коштують вам грошей, а які коштують лише поновлення. RefundHalt відповідає на CONSUMPTION_REQUEST за підписками з автопоновленням і на розгляд Google Play orders.reviewrefund автоматично, у межах вікна, з доказами доставлення й використання, які ви записали в момент продажу, і тримає скасування поза вашою книгою повернень, щоб число, за яким ви себе оцінюєте, лишалося чесним.
Поширені запитання
- Якщо я скасую підписку, чи отримаю повернення коштів?
- Ні. Скасування підписки лише зупиняє наступне поновлення. Воно не скасовує платіж, який ви вже зробили, і Apple, і Google дозволяють зберегти доступ до кінця оплаченого періоду. Повернення, це окремий запит із власними правилами, і за минулим списанням за підписку його часто відхиляють.
- Чи зупиняє скасування підписки мій доступ негайно?
- Ні. Скасування дивиться вперед. Ви зберігаєте підписку до кінця поточного розрахункового періоду, а потім вона перестає поновлюватися. Google Play наводить приклад річного плану, купленого 1 січня і скасованого 1 липня, який працює до 31 грудня.
- Чи можу я отримати повернення після скасування підписки?
- Скасування й повернення, це окремі дії, тож скасувати спершу не запускає повернення. Вам однаково довелося б запросити повернення, а минулі списання за підписку зазвичай не підлягають поверненню. Google Play обмежує самообслуговувані повернення до 48 hours після покупки, а Apple розглядає кожен запит окремо й може його відхилити.
- Чи досягає скасування сервера розробника так, як повернення?
- Ні. Скасування з'являється лише як поновлення, яке не станеться, без вікна для доказів і без чого оскаржувати. Повернення може досягти вашого сервера, а за підпискою з автопоновленням повернення запускає CONSUMPTION_REQUEST від Apple з вікном 12 hours від оновлення WWDC24.
- Чому мій застосунок має рахувати скасування й повернення окремо?
- Бо вони коштують вам різного. Скасування, це втрачений майбутній дохід, і воно належить до відтоку. Повернення, це вилучення доходу, який ви вже провели, плюс витрати за ним, і воно належить до собівартості доходу. Змішування їх роздуває ваш показник повернень тим, що насправді є відтоком.
Джерела та додаткове читання
- Google Play Help: Cancel, pause, or change a subscription on Google Play
- Google Play Help: Apps, games, and in-app purchases refund policies
- Apple Support: If you want to cancel a subscription from Apple
- Apple Support: Request a refund for apps or content that you bought from Apple
- Android Developers: About subscriptions (Play Billing)
- WWDC24: Explore App Store server APIs for In-App Purchase
RefundHalt
Автопілот повернень для App Store і Google Play
Читайте далі
Кожен тип покупки в застосунку повертається по-різному, і лише два з них колись питають про ваш бік
Витратні товари, невитратні товари, автоматично поновлювані підписки та непоновлювані підписки, кожен повертається за власними правилами. Деякі можна відновити, деякі зникають щойно витрачені, і лише запит щодо витратного товару та запит щодо підписки колись просять розробника про докази. Ось як тип покупки в застосунку, який ви продаєте, змінює те, що повернення робить із вами.
Закони про повернення коштів за застосунки змінюються залежно від країни клієнта, і майже жоден з них не дає вам права голосу
Закони про повернення коштів за застосунки відрізняються між ЄС, Великою Британією та США, але для більшості продажів застосунків результат однаковий. 14-денне право на відмову в ЄС зазвичай скасовується під час оформлення покупки, покупці у США покладаються на політику магазину, і жодне законодавче повернення не дає вам змоги відповісти. Лише два магазинні потоки коли-небудь запитують вашу сторону.