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

Головне
- Бан гравця у вашому застосунку не скасовує його покупок в App Store чи Google Play. Apple і Google і далі вирішують питання повернення коштів за власними правилами, а забанений гравець може попросити гроші назад у будь-якого з магазинів, як і будь-який інший клієнт.
- Коли клієнт App Store просить повернути кошти, Apple надсилає CONSUMPTION_REQUEST і просить вас відповісти через Send Consumption Information протягом 12 годин. У запиті немає поля для бану, позначки про читерство чи порушення умов.
- Apple відхиляє дані про споживання з помилкою HTTP 400 InvalidCustomerConsentedError, якщо customerConsented не дорівнює true, тому надсилати докази можна лише щодо забаненого гравця, який погодився на передачу даних про споживання.
- Сповіщення Apple REFUND_REVERSED вказує: якщо ваш застосунок відкликав контент чи послуги через повернення коштів, їх потрібно відновити. Це суперечить будь-якій політиці, що банить гравців за повернення коштів.
- У Google Play розробник може одночасно повернути кошти за замовлення і припинити доступ, викликавши orders.refund з revoke, встановленим у true, але замовлення, старші за 3 роки, повернути не можна, а спожиті предмети має обробляти ваш власний застосунок.
- Google Play просить вашу позицію щодо чарджбеку через orders.reviewrefund протягом 24 годин, а для замовлень, оформлених після 3 серпня 2026 року, програний чарджбек коштує вам ціну покупки за вирахуванням сервісного збору Play плюс комісії банку за чарджбек.
Бан закриває гравцеві доступ до вашої гри, але ніяк не впливає на його покупки. Зазвичай далі надходить запит на повернення коштів забаненому гравцеві, і він іде до Apple або Google, а не до вас. Кожен магазин вирішує його за власними правилами, і читер, який просить гроші назад, для нього є лише ще одним запитом у черзі. Плануйте бан з огляду на це, адже сам бан є єдиною частиною суперечки, яку ви повністю контролюєте.
Бан і повернення коштів є двома окремими рішеннями
Ваші умови використання регулюють акаунт. Правила магазину регулюють платіж. Бан є вашим рішенням про те, хто може грати. Повернення коштів є рішенням Apple чи Google про те, чи повертаються гроші. Жодне з рішень не скасовує інше, і магазин ніколи не питає, чи ви когось забанили, перш ніж ухвалити рішення.
Великі видавці кажуть про це прямо. Сторінка підтримки Riot для Wild Rift пояснює гравцям, що через природу сторонніх маркетплейсів застосунків компанія не може сама повернути кошти за покупку в магазині, і якщо Apple, Google чи Samsung відмовлять у поверненні, Riot більше нічого не зможе зробити. У такому становищі кожен мобільний розробник. Вплинути на рішення магазину можна лише у двох місцях і лише тоді, коли магазин про це просить.
| Шлях повернення коштів | Хто вирішує | Чи можна надати докази | Ваш термін |
|---|---|---|---|
| Запит на повернення коштів в App Store | Apple | Так, через Send Consumption Information після CONSUMPTION_REQUEST | 12 годин |
| Повернення коштів у Google Play протягом перших 48 годин | Ні | Немає | |
| Повернення коштів у Google Play після 48 годин | Ви, за власною політикою і місцевим законодавством | Не застосовується | Не застосовується |
| Чарджбек у Google Play, що потребує перевірки розробником | Google, потім банк | Так, через orders.reviewrefund | 24 години |
| Чарджбек за карткою щодо покупки в App Store | Apple і банк | Ні | Немає |
Що можна повідомити Apple про забаненого гравця
Apple надсилає сповіщення CONSUMPTION_REQUEST, коли клієнт просить повернути кошти за будь-який тип продукту, від витратних предметів до автоматично поновлюваних підписок. На відповідь через Send Consumption Information у вас 12 годин. Apple зазначає, що використовує цю інформацію для ухвалення рішення разом з іншими чинниками, і ваш refundPreference є одним із них.
Тіло запиту невелике. Воно містить customerConsented, consumptionPercentage, deliveryStatus, refundPreference і sampleContentProvided. Більше нічого. Жодне поле не описує поведінку гравця, тож ви не можете повідомити Apple, що акаунт забанили за читерство. Повідомити Apple можна лише те, яку частину покупки використано і чи бажаєте ви, щоб у поверненні відмовили.
Для «забанений» немає значення deliveryStatus
Apple визначає deliveryStatus як ознаку того, чи застосунок надав In-App Purchase, що працює належним чином. Можливі значення: DELIVERED, UNDELIVERED_QUALITY_ISSUE, UNDELIVERED_WRONG_ITEM, UNDELIVERED_SERVER_OUTAGE і UNDELIVERED_OTHER. Якщо статус не DELIVERED, Apple вимагає, щоб consumptionPercentage дорівнював 0, інакше запит не пройде. Подумайте, перш ніж позначати покупку забаненого гравця як ненадану. Ви повідомите Apple, що клієнт не отримав нічого, а це найсильніший можливий аргумент на користь повернення коштів.
Згода визначає, чи можете ви взагалі відповісти
Сервер Apple відхиляє ConsumptionRequest з помилкою HTTP 400 InvalidCustomerConsentedError, якщо customerConsented має будь-яке значення, крім true. Документація Apple також описує, що має містити запит на згоду, зокрема чітке формулювання, що дані клієнта передаються Apple для розгляду повернення коштів і що згоду можна відкликати. Якщо гравець не давав згоди або відкликав її, вам нічого надіслати. Збирайте згоду під час реєстрації, а не після бану.
Що буде, якщо Apple скасує повернення коштів
Сповіщення Apple REFUND_REVERSED означає, що App Store скасував раніше надане повернення коштів через суперечку, яку ініціював клієнт. Документація Apple конкретна: якщо ваш застосунок відкликав контент чи послуги через повернення коштів, їх потрібно відновити. Тому правило, що банить кожного, хто повернув кошти, потребує способу скасування. Прив'яжіть бан до події повернення коштів, щоб скасування могло чисто його зняти.

Що можна зробити в Google Play
Сторінка Google про повернення коштів повідомляє покупцям, що вони можуть отримати повернення протягом 48 годин після покупки в застосунку, залежно від обставин, а після 48 годин мають звертатися до розробника. Там також сказано, що товар можна повернути з відшкодуванням лише один раз і що повернений товар у покупця вилучається. Отже, забанений гравець, який звернеться до Google у перші 48 годин, отримає рішення Google. Після цього запит потрапляє до вас.
Самостійно поверніть кошти і відкличте покупку
Метод Google orders.refund повертає кошти за підписку чи замовлення в застосунку. Встановіть revoke у true, і доступ до предмета одразу припиниться, а регулярна підписка перестане поновлюватися. Google додає два обмеження. Замовлення, старші за 3 роки, повернути не можна, а спожиті предмети в застосунку має обробляти ваш застосунок, бо Google не може забрати валюту, яку гравець уже витратив. Якщо ви вирішили повернути кошти забаненому гравцеві, щоб закрити питання, відкличте покупку в тому самому виклику, щоб предмет у нього не залишився.
Одразу відхиляйте покупки із забаненого акаунта
Забанений гравець, який купує знову, становить реальний ризик, якщо ваш клієнт досі показує магазин. Посібник Google з білінгу каже: якщо покупка не проходить ваші перевірки на відповідність, шахрайство чи зловживання, її не слід надавати і не слід підтверджувати. Якщо дочекатися завершення триденного вікна підтвердження, замовлення технічно буде повернено, але Google радить на це не покладатися. Натомість відкликайте і повертайте кошти через API: purchases.subscriptionsv2.revoke з повним поверненням для підписок або orders.refund з revoke, встановленим у true, для разових продуктів.
Відповідайте на перевірку чарджбеку протягом 24 годин
Коли чарджбек у Google Play потребує перевірки розробником, Google надсилає PendingRefundReviewNotification і дає вам 24 години, щоб викликати orders.reviewrefund. Google враховує лише ваш перший виклик. Тіло приймає refundPreference зі значенням DECLINE, APPROVE або NEUTRAL, прапорець sampleContentProvided, необов'язкове значення consumptionPercentageMilliunits і до 1 000 consumptionUsageEvents, кожен з яких може містити ваш obfuscatedAccountId, час споживання та опис того, що було використано. Доказом є події використання, записані до бану. Подій після бану не існує, тож зберігайте історію, коли закриваєте акаунт.
Скільки грошей коштує повернення коштів забаненому гравцеві
Сам бан нічого вам не коштує. Повернення коштів, яке за ним іде, може коштувати трьома способами. По-перше, дохід, який ви отримали з покупки, буде утримано з наступної виплати. По-друге, витрати, які ця покупка вже спричинила, залишаються оплаченими. По-третє, у Google Play програний чарджбек тепер додатково тягне за собою комісію банку.
- Обчислення: кожен матч, сесія і серверна симуляція, які гравець запускав на поверненій покупці, є потужностями, за які ви вже заплатили.
- Виклики API: перевірки античиту, виклики матчмейкінгу і будь-які сторонні сервіси з оплатою за запит були спожиті ще до бану.
- Зберігання: інвентарі, повтори та журнали, які ви зберігаєте як докази для бану, коштують грошей доти, доки ви їх зберігаєте.
- Виплати: якщо покупки гравця фінансували призи, частку доходу авторів чи партнерські комісії, ці гроші вже пішли з вашого рахунку і з поверненням коштів не повернуться.
Чи варто банити гравця за запит на повернення коштів?
Багато ігор роблять щось подібне. Сторінки підтримки Riot радять гравцям Wild Rift, яких забанили після виходу в негативний баланс, виконати інструкції щодо чарджбеку, щоб повернутися в гру. Блокування витрат, які було скасовано, можна обґрунтувати. Банити кожного, хто повернув кошти, обґрунтувати складніше, і регулятори у сфері захисту прав споживачів це помітили.
У липні 2017 року Корейське агентство у справах споживачів попросило Niantic переглянути умови Pokémon GO, які воно визнало несправедливими, зокрема видалення акаунтів без повернення коштів. Агентство заявило, що така практика може порушувати законне право споживача скасовувати покупки. Це один регулятор і один випадок, але це чіткий сигнал, що підхід «ми вас забанили, тож ви втрачаєте все» можна оскаржити.
Чекліст бану, який витримає надходження запиту на повернення коштів
- Записуйте споживання за кожною покупкою з позначками часу заздалегідь, до того як це знадобиться. І Apple, і Google питають про використання, а не про поведінку.
- Збирайте згоду на передачу даних про споживання під час реєстрації, щоб на CONSUMPTION_REQUEST щодо забаненого гравця ви мали право відповісти.
- Повідомляйте deliveryStatus чесно. Не називайте наданий предмет ненаданим лише тому, що згодом забанили акаунт.
- Зберігайте історію покупок і використання забаненого акаунта, а не видаляйте її разом з акаунтом.
- Блокуйте нові покупки в магазині із забанених акаунтів, а ті, що проскочили, повертайте і відкликайте.
- Пов'язуйте записи про бани з подіями повернення коштів, щоб REFUND_REVERSED міг відновити саме те, що забрало повернення.
Поширені запитання
- Чи може забанений гравець усе одно отримати повернення коштів від Apple чи Google?
- Так. Бан у вашому застосунку не змінює статусу гравця в магазині. Apple вирішує щодо повернення коштів в App Store, Google вирішує щодо повернень у Play, запитаних протягом 48 годин, а гравець також може оскаржити платіж через свій банк. Ви маєте право голосу лише тоді, коли Apple надсилає CONSUMPTION_REQUEST або Google просить перевірити чарджбек.
- Чи можу я повідомити Apple, що забанив гравця за читерство?
- Ні. ConsumptionRequest від Apple має п'ять полів: customerConsented, consumptionPercentage, deliveryStatus, refundPreference і sampleContentProvided. Жодне з них не описує поведінку гравця. Ви можете повідомити, яку частину покупки використано, і встановити refundPreference у DECLINE, а Apple розглядає це побажання як один із кількох чинників.
- Чи варто мені самому повертати кошти забаненому гравцеві в Google Play?
- Можна, і якщо ви це робите, викликайте orders.refund з revoke, встановленим у true, щоб повернення коштів і втрата доступу відбулися одночасно. Google не повертає кошти за замовлення, старші за 3 роки, а валюту, яку гравець уже спожив, має обробляти ваш застосунок, бо Google не може її забрати.
- Що буде з баном, якщо Apple скасує повернення коштів?
- Apple надсилає сповіщення REFUND_REVERSED і зазначає, що ваш застосунок має відновити весь контент чи послуги, відкликані через повернення коштів. Якщо повернення було єдиною причиною обмеження акаунта, зніміть це обмеження. Бан за читерство має власну підставу і з поверненням коштів не пов'язаний.
- Чи законно банити гравців, які просять повернути кошти?
- Це залежить від того, де перебувають ваші гравці, і це ризикованіше, ніж здається. У 2017 році Корейське агентство у справах споживачів заявило, що видалення акаунтів Pokémon GO без повернення коштів може порушувати законне право споживачів скасовувати покупки. Відкликання предметів, за які повернуто кошти, є звичайною практикою. Покарання за сам запит на повернення коштів провокує саме такі претензії.
Джерела та додаткове читання
- App Store Server API: Send Consumption Information
- App Store Server API: ConsumptionRequest
- App Store Server Notifications: notificationType
- Google Play Developer API: orders.refund
- Google Play Developer API: orders.reviewrefund
- Google Play Billing: Integrate the library, handle rejected or unfulfilled purchases
- Google Play Help: Apps, games, and in-app purchases refund policies
- Play Console Help: Updates to refund protection and chargeback cost responsibility
- Riot Games Support: Cash refunds in Wild Rift
- Korea JoongAng Daily: Pokemon Go panned for unfair refunds policy (July 3, 2017)
RefundHalt
Автопілот повернень для App Store і Google Play
Читайте далі
Надмірні запити на повернення коштують дорожче за самі повернення: обидва магазини застосунків вважають їх сигналом якості
Правило 5.6.4 Apple прямо називає надмірні запити на повернення ознакою того, що застосунок не відповідає стандартам якості, а угода Google про розповсюдження дозволяє видаляти застосунки нових розробників через частку повернень. Розбираємо, що пише кожен магазин, скільки коштує видалення і як не потрапити під удар.
Перевіряйте серверні сповіщення App Store, перш ніж діяти щодо повернення коштів, бо надіслати запит на ваш webhook URL може будь-хто
Сповіщення про повернення коштів залишається звичайним HTTPS-запитом, доки ви не перевірите його підпис. Пояснюємо, як перевіряти серверні сповіщення App Store і повідомлення Google Play RTDN, що саме підписує кожен магазин і скільки коштує підроблене або помилково відхилене повернення.