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

Головне
- Клієнт, з якого двічі списали кошти за ту саму підписку, зазвичай придбав її у двох різних магазинах, наприклад в App Store і Google Play. Кожен магазин окремо виставляє рахунок за свою покупку і окремо повертає кошти.
- Розробники не можуть повертати кошти за покупки в App Store. Рішення ухвалює Apple, через reportaproblem.apple.com або через вікно повернення, яке застосунок може відкрити за допомогою beginRefundRequest у StoreKit. За словами Apple, схвалення або відмова займає до 48 годин.
- У Google Play розробник може повернути кошти за замовлення в розділі Order management у Play Console або через API orders.refund. Цей API не повертає кошти за замовлення, старші за 3 роки.
- Повернення коштів за останнє замовлення підписки Google Play одразу видаляє підписку і скасовує майбутні продовження. Повернення за старіше замовлення залишає підписку активною.
- Apple надсилає CONSUMPTION_REQUEST на запити про повернення коштів для будь-якого типу продукту, включно з автоматично поновлюваними підписками. Якщо клієнт дав згоду, розробник має 12 годин, щоб відповісти через Send Consumption Information.
- Для замовлень у Google Play, зроблених після 3 серпня 2026 року, чарджбек коштує розробнику ціну покупки за вирахуванням сервісного збору Play, плюс комісію банку за чарджбек.
- Якщо задавати appAccountToken для покупок в Apple і обфускований ідентифікатор облікового запису для покупок у Google Play, ваш сервер побачить одного клієнта за двома підписками в різних магазинах ще до другого списання.
Ніщо в платіжних системах Apple чи Google не заважає одній людині заплатити обом за вашу підписку в тому самому місяці. Коли з клієнта двічі списують кошти за ту саму підписку, майже завжди сталося саме це. Він оформив підписку на iPhone, потім ще раз на Android-планшеті або на вашому сайті, а ваш застосунок не розпізнав перший план. Клієнт бачить два списання і пише вам. Проблема в тому, що самостійно ви можете повернути кошти лише за одне з них, і лише якщо його купили не через Apple. Нижче пояснюємо, як працює кожна сторона, скільки вам коштує дублікат і як зробити так, щоб це не повторилося.
Чому з клієнтів двічі списують кошти за ту саму підписку
Кожен магазин володіє своєю покупкою. Apple виставляє рахунок за підписку в App Store, Google за підписку в Google Play, а ваш платіжний процесор за вебплан. Жоден із них не знає про існування інших. Єдине місце, де дві покупки можуть зустрітися, це ваш сервер, і лише якщо обидві містять ідентифікатор, що прив'язує їх до того самого облікового запису.
Типові шляхи до подвійного списання виглядають так:
- Клієнт змінює телефон, з iOS на Android або навпаки, і підписується знову, бо новий застосунок показує пейвол.
- Клієнт оформлює підписку на вашому сайті, встановлює застосунок і не входить в обліковий запис, тож застосунок продає йому ще й підписку в магазині.
- Клієнт видаляє застосунок і вважає, що план на цьому завершився. У довідці Google сказано, що видалення застосунку не скасовує його підписку в Google Play, а план в App Store продовжується, доки його не скасують в обліковому записі Apple.
«Ваш застосунок і сайт явно не спілкуються між собою»
Саме таку скаргу ви прочитаєте в листі до підтримки, і з погляду клієнта вона справедлива. Він заплатив за один продукт. Коли тебе просять заплатити за нього ще раз, це схоже на пастку, навіть якщо обидві сторони помилилися випадково. Найшвидше заспокоїть ситуацію чітка відповідь: за яку покупку кошти можете повернути ви, а з якою клієнтові треба звернутися до Apple.
Хто може повернути кошти за кожне списання
Саме тут більшість відповідей підтримки йде не так. Обіцяти можна лише те, що ви контролюєте.
| Де куплено дублікат | Хто ухвалює рішення про повернення | Як зупинити продовження плану | Ваша участь |
|---|---|---|---|
| App Store | Лише Apple, через reportaproblem.apple.com або ваше вікно повернення в застосунку | Клієнт скасовує в обліковому записі Apple | CONSUMPTION_REQUEST, відповідь протягом 12 годин, якщо клієнт дав згоду |
| Google Play, протягом 48 годин після покупки | Клієнт може запросити повернення в Google, або ви можете повернути кошти | Повернення за останнє замовлення скасовує майбутні продовження | Немає для самостійного повернення через Google |
| Google Play, після 48 годин | Ви, у Play Console або через orders.refund | Повернення за останнє замовлення скасовує майбутні продовження | Вирішуєте ви |
| Ваш сайт | Ви, через ваш платіжний процесор | Ви скасовуєте на своєму боці | Вирішуєте ви |
Чи може розробник повернути кошти за підписку в App Store?
Ні. Усі повернення в App Store обробляє Apple. Ви можете лише скоротити шлях. Метод beginRefundRequest у StoreKit відкриває вікно повернення Apple прямо у вашому застосунку, з уже заповненими даними покупки і списком причин. У документації Apple сказано, що App Store схвалює або відхиляє запит протягом 48 годин. Поза застосунком клієнт входить на reportaproblem.apple.com, обирає «Request a refund», вказує причину і вибирає підписку.
Як самостійно повернути кошти в Google Play
У Google Play контроль у ваших руках. У Play Console відкрийте Order management, виберіть замовлення і поверніть кошти. Довідка Play Console чітко описує підписки: якщо повернути кошти за останнє замовлення, підписку буде одразу видалено, а майбутні продовження скасовано. Якщо повернути за старіше замовлення, підписка залишиться активною. Якщо ви автоматизуєте процес, API orders.refund робить те саме, приймає прапорець revoke, щоб одразу закрити доступ, і відхиляє замовлення, старші за 3 роки.
Скільки вам коштує дубльована підписка
Дублікат ніколи не був доходом, який ви могли залишити собі. Фінансове питання в тому, скільки він коштуватиме понад саме повернення.
Простий випадок
Припустимо, клієнт платив $9.99 на місяць і в App Store, і в Google Play протягом трьох місяців, перш ніж помітив. Це $29.97 дубльованих списань. Якщо ви самі повернете кошти за три замовлення в Google Play, ви віддасте $29.97, і проблема закінчиться того ж дня. Якщо ж клієнт звернеться до Apple щодо App Store, Apple вирішить, скільки повернути, а ви дізнаєтеся про це лише із серверних сповіщень. У будь-якому разі дохід однієї платформи за ці три місяці повертається.
Дорогий випадок
Справжні втрати починаються, коли клієнт перестає сподіватися на підтримку і дзвонить у свій банк. Після рішення банку чарджбек остаточний. Google Play дає вам один шанс заперечити: перевірку чарджбеку, на яку треба відповісти протягом 24 годин через orders.reviewrefund. Для замовлень у Google Play, зроблених після 3 серпня 2026 року, програний чарджбек коштує вам ціну покупки за вирахуванням сервісного збору Play, плюс комісію банку за чарджбек. Повернення на $29.97, яке ви могли оформити за хвилину, перетворюється на $29.97 плюс комісію, яку ви не контролюєте.
Витрати, які ви тим часом продовжуєте нести
Поки обидва плани активні, ваш бекенд обслуговує одну людину, але бачить дві підписки. Якщо ви рахуєте місця, синхронізуєте дані або викликаєте платні сторонні API для кожної підписки, ви можете платити вдвічі за обчислення, зберігання і виклики API для одного клієнта. Об'єднання двох записів це припиняє.

Як підтримці обробити подвійне списання
Відповідайте швидко і одним повідомленням. Кожен зайвий обмін листами підвищує ризик банківського спору.
- Знайдіть обидві покупки за обліковим записом клієнта, а не за адресою електронної пошти, з якої він написав.
- Запитайте, який план він хоче залишити. Зазвичай це план на пристрої, яким він користується зараз.
- Якщо дублікат у Google Play або на вашому сайті, поверніть кошти самі і повідомте, що все зроблено.
- Якщо дублікат в App Store, направте клієнта на reportaproblem.apple.com або до кнопки повернення у вашому застосунку, якщо ви її створили, і попросіть скасувати підписку в налаштуваннях облікового запису Apple.
- Якщо після цього Apple надішле CONSUMPTION_REQUEST і клієнт дав згоду, відповідайте протягом 12 годин із точними даними про використання. Дубльований план, яким ніколи не користувалися, Apple схвалити легко.
Як запобігти другому списанню
Профілактика дешевша за будь-яке повернення, і обидва магазини вже мають потрібні інструменти.
Прив'язуйте кожну покупку до свого ідентифікатора облікового запису
В iOS генеруйте UUID для кожного облікового запису і передавайте його як параметр покупки appAccountToken. Apple повертає те саме значення в транзакції та в інформації про продовження підписки. Якщо покупка відбулася поза вашим застосунком, ендпоінт Set App Account Token дозволяє додати або оновити токен пізніше. В Android передавайте в setObfuscatedAccountId хешований ідентифікатор облікового запису довжиною до 64 символів, ніколи не необроблені персональні дані.
Перевіряйте доступи, перш ніж показувати пейвол
Перед тим як з'явиться пейвол, запитайте свій сервер, чи має обліковий запис, у який виконано вхід, активний план на будь-якій платформі. Спочатку покажіть запрошення увійти, а пейвол показуйте лише обліковим записам без активного плану.
Відстежуйте два активні плани в одному обліковому записі
Щодня перевіряйте облікові записи, які мають більше однієї активної підписки в різних магазинах. Якщо виявити це на першому тижні, ви повернете кошти за один місяць замість трьох і напишете короткий лист замість боротьби з чарджбеком.
RefundHalt відстежує підписки App Store і Google Play за вашими власними ідентифікаторами облікових записів, тож клієнт, який платить двічі, з'являється як одна людина з двома планами раніше, ніж це помітить його банк.
Поширені запитання
- Чому з клієнта двічі списали кошти за ту саму підписку?
- Зазвичай тому, що він купив її на двох платформах, наприклад в App Store і Google Play, або в магазині та на вашому сайті. Кожен магазин виставляє рахунок за свою підписку і не знає про іншу, тож обидві продовжуються, доки одну не скасують.
- Чи можу я повернути клієнтові кошти за підписку в App Store?
- Ні. Повертати кошти за покупки в App Store може лише Apple. Ви можете відкрити вікно повернення Apple у своєму застосунку через beginRefundRequest у StoreKit або направити клієнта на reportaproblem.apple.com. За словами Apple, схвалення або відмова займає до 48 годин.
- Як повернути кошти за дубльовану підписку в Google Play?
- Поверніть кошти за замовлення в розділі Order management у Play Console або викличте API orders.refund. Повернення за останнє замовлення одразу видаляє підписку і скасовує майбутні продовження. API не повертає кошти за замовлення, старші за 3 роки.
- Чи скасовує повернення коштів саму підписку?
- У Google Play повернення за останнє замовлення скасовує майбутні продовження, а повернення за старіше замовлення залишає підписку активною. В App Store повернення коштів вирішує Apple, а підписку клієнт скасовує у своєму обліковому записі Apple.
- Як не дати користувачам підписатися двічі в iOS і Android?
- Додавайте власний ідентифікатор облікового запису до кожної покупки: appAccountToken в Apple і обфускований ідентифікатор облікового запису в Google Play. Потім, перш ніж показати пейвол, перевіряйте на сервері наявність активного плану на будь-якій платформі і просіть користувача спершу увійти.
Джерела та додаткове читання
- Apple Support: Request a refund for apps or content that you bought from Apple
- Apple Developer: beginRefundRequest(in:)
- Apple Developer: Send Consumption Information
- Apple Developer: appAccountToken
- Play Console Help: Manage your app's orders and issue refunds
- Google Play Developer API: orders.refund
- Google Play Help: Apps, games, and in-app purchases refund policies
- Play Console Help: Updates to refund protection and chargeback cost responsibility
RefundHalt
Автопілот повернень для App Store і Google Play
Читайте далі
Якщо ваш застосунок видалили з Google Play або App Store, повернення коштів усе одно можуть списати з ваших виплат
Застосунок, видалений з Google Play або App Store, перестає заробляти, але угоди з магазинами залишають на вас відповідальність за повернення коштів і дозволяють Apple та Google утримувати ваші виплати. Ось що каже кожна угода, що відбувається з передплатниками і скільки коштує видалення.
Видалення облікового запису в застосунку не скасовує підписку, а запити на повернення коштів після нього все одно можуть дійти до вас
Apple і Google Play вимагають давати змогу видалити обліковий запис у застосунку, але це не зупиняє оплату в жодному з магазинів. Розповідаємо, що вимагає кожен магазин, чому стертий обліковий запис може залишити вас без відповіді на CONSUMPTION_REQUEST чи перевірку чарджбеку, і що варто зберігати.