Wszystkie artykuły
Poradnik8 min czytania

Zwroty za dodatki do subskrypcji Google Play mogą dotyczyć jednego elementu naraz, ale klient może anulować tylko cały pakiet

Google Play pozwala dołączyć do subskrypcji podstawowej do 49 dodatków na jednym tokenie zakupu. Wyjaśniamy, jak działają zwroty za dodatki do subskrypcji, które wywołanie API zwraca jeden element bez naruszania reszty, kiedy Google to blokuje i ile kosztuje Cię każda ścieżka zwrotu.

Osoba przy stoliku w kawiarni sprawdza telefon z Androidem obok szczegółowego paragonu, czyli zakupu pakietowego, w którym zwroty za dodatki do subskrypcji Google Play rozlicza się pozycja po pozycji

Najważniejsze wnioski

  • Funkcja subskrypcji z dodatkami w Google Play umieszcza subskrypcję podstawową i do 49 dodatków, łącznie 50 elementów, w jednym zakupie. Wszystkie elementy muszą mieć ten sam cykliczny okres rozliczeniowy.
  • Użytkownicy Google Play nie mogą anulować pojedynczego dodatku w centrum subskrypcji Play. Mogą anulować tylko subskrypcję podstawową razem z dodatkami, więc usunięcie jednego dodatku musi odbyć się w aplikacji dewelopera.
  • Metoda purchases.subscriptionsv2.revoke przyjmuje itemBasedRefund z jednym productId. Jeśli inne elementy pozostają aktywne, Google cofa i w pełni zwraca tylko ten element, a subskrypcja działa dalej.
  • Google blokuje zwrot za element, gdy subskrypcja jest w stanie odrzuconej płatności, gdy element wygasł lub nie należy do użytkownika, a także w przypadku subskrypcji przedpłaconych.
  • proratedRefund dla subskrypcji z dodatkami zwraca ostatnie zamówienie każdego elementu proporcjonalnie do czasu pozostałego do następnego odnowienia i od razu odbiera dostęp do wszystkich elementów.
  • Powiadomienia dla deweloperów w czasie rzeczywistym dla subskrypcji z dodatkami nie zawierają subscriptionId, więc backend musi wywołać purchases.subscriptionsv2.get i odczytać każdy lineItem, aby sprawdzić, które elementy nadal dają uprawnienia.
  • Jedyny proces zwrotu w Google Play, w którym deweloper jest proszony o dowody, to obciążenie zwrotne oznaczone do przeglądu przez orders.reviewrefund, z terminem 24 godzin. W przypadku zamówień złożonych po 3 sierpnia 2026 r. przegrane obciążenie zwrotne kosztuje dewelopera cenę zakupu pomniejszoną o opłatę serwisową Play, plus opłaty banku.

Jeśli sprzedajesz w Google Play subskrypcję podstawową z trzema dodatkami, możesz zwrócić pieniądze za dowolny z tych dodatków bez anulowania reszty. Twój klient nie może zrobić tego samego ze swojej strony. Google pozwala użytkownikom anulować tylko cały pakiet, więc precyzyjne narzędzia do zwrotów za dodatki do subskrypcji Google Play są w Twoich rękach, dewelopera, i tylko przez API. Użyte dobrze pozwalają zwrócić dokładnie tę pozycję, z którą był problem. Użyj złego wywołania, a zwrócisz lub cofniesz wszystko.

Jak zbudowana jest subskrypcja z dodatkami

Google ogłosiło płatność za wiele produktów w subskrypcjach na I/O 2025. Jeden proces zakupu sprzedaje subskrypcję podstawową z opcjonalnymi dodatkami, rozliczanymi razem według jednego harmonogramu. Przewodnik Google dla deweloperów wyznacza sztywne limity:

  • Dodatki mogą mieć tylko automatycznie odnawiane abonamenty podstawowe. Abonamenty przedpłacone nie mogą.
  • Wszystkie elementy muszą mieć ten sam cykliczny okres rozliczeniowy. Miesięczne dodatki do rocznej subskrypcji podstawowej są niedozwolone.
  • Zakup obejmuje najwyżej 50 elementów, czyli jedną subskrypcję podstawową i do 49 dodatków.
  • Funkcja nie jest dostępna w Korei Południowej.

Wszystko to znajduje się na jednym tokenie zakupu. Gdy wywołasz purchases.subscriptionsv2.get, odpowiedź zawiera listę lineItems z jednym wpisem na element. Każda pozycja ma własne productId, expiryTime i latestSuccessfulOrderId. To ostatnie pole umożliwia zwroty za poszczególne elementy: każdy element ma własne ostatnie zamówienie.

Proporcjonalne naliczanie zaczyna się od pierwszego dnia

Gdy użytkownik dodaje dodatek w trakcie cyklu, Google od razu pobiera kwotę proporcjonalną, aby dodatek odnawiał się w tym samym dniu co subskrypcja podstawowa. Przykład samego Google to miesięczny dodatek za 10 $ dodany 15 sierpnia po 7-dniowym okresie próbnym, za który pobrano 2,90 $ za resztę sierpnia. Pojedynczy dodatek może więc mieć krótkie zamówienie o nietypowej kwocie przed pierwszym pełnym zamówieniem. Pamiętaj o tym, gdy sprawdzasz, którego zamówienia dotyczy zwrot.

Klient może anulować tylko cały pakiet

Strona pomocy Google dla konsumentów mówi o tym wprost. Użytkownicy mogą anulować subskrypcję podstawową i dodatki tylko razem i obecnie nie mogą anulować pojedynczych dodatków w Google Play. Wstrzymanie też nie jest dostępne. Jeśli użytkownik odrzuci podwyżkę ceny, Google anuluje subskrypcję podstawową i razem z nią każdy dodatek.

Klient, który chce zrezygnować z jednego dodatku, ma więc w Play Store dwie opcje: anulować wszystko albo poprosić o zwrot pieniędzy. Żadna nie jest dla Ciebie dobra. Według przewodnika Google zamiast tego usunięcie może zaoferować Twoja aplikacja. Usunięty dodatek wygasa na końcu bieżącego okresu rozliczeniowego, a reszta pakietu odnawia się dalej.

Porównanie narzędzi do zwrotów za dodatki do subskrypcji Google Play

Google daje Ci pięć sposobów na oddanie pieniędzy w subskrypcji z dodatkami. Różnią się tym, co zwracają i czy dostęp się kończy.

NarzędzieCo jest zwracaneCo dzieje się z dostępem
Zwrot konkretnego zamówienia w Play ConsoleWybrana przez Ciebie kwota tego zamówieniaNic nie jest cofane
orders.refund bez ustawionego revokePełna kwota jednego zamówieniaNic nie jest cofane
subscriptionsv2.revoke z itemBasedRefundPełna ostatnia płatność za jeden elementKończy się tylko ten element, chyba że był ostatnim aktywnym
subscriptionsv2.revoke z proratedRefundOstatnie zamówienie każdego elementu, proporcjonalnie do pozostałego czasuWszystkie elementy kończą się natychmiast
subscriptionsv2.revoke z fullRefundPełna ostatnia płatność za każdy elementWszystkie elementy kończą się natychmiast

Google dodaje w przewodniku o dodatkach jedno stanowcze ostrzeżenie: nie wywołuj przestarzałej metody purchases.subscriptions.refund dla subskrypcji z dodatkami. Do tego orders.refund nie obsłuży zamówień starszych niż trzy lata.

Jak działa itemBasedRefund

Obiekt itemBasedRefund ma jedno wymagane pole, productId, wskazujące element do cofnięcia. Google opisuje dwa wyniki:

  • Inne elementy są nadal aktywne: cofany i w pełni zwracany jest tylko wskazany element, a subskrypcja działa dalej.
  • Żadne inne elementy nie są aktywne: element jest cofany i w pełni zwracany, a cała subskrypcja zostaje anulowana.

W jednym żądaniu możesz wskazać jeden element. Aby zwrócić dwa dodatki, wykonaj dwa wywołania.

Kiedy Google blokuje zwrot za element

Google odrzuca itemBasedRefund w trzech przypadkach. Subskrypcja jest w dowolnym stanie odrzuconej płatności, co obejmuje okres prolongaty i wstrzymanie konta. Wskazany element nie należy do użytkownika lub już wygasł. Albo zakup jest subskrypcją przedpłaconą, w której rezygnacja z elementów w ogóle nie jest obsługiwana.

Co robi zwrot według identyfikatora zamówienia

Przewodnik Google zaznacza, że flaga revoke w orders.refund kończy dostęp tylko wtedy, gdy zamówienie jest ostatnim w subskrypcji. Przy starszym zamówieniu zwrot się udaje, ale nic nie jest cofane. Play Console działa tak samo: zwróć najnowsze zamówienie, a subskrypcja zostanie usunięta. Zwróć starsze, a pozostanie aktywna. Przy dodatkach wybierz zamówienie z latestSuccessfulOrderId właściwej pozycji, inaczej możesz zwrócić inną płatność niż zamierzałeś.

Kto decyduje o zwrocie i kiedy jesteś proszony o dowody

O większości zwrotów w subskrypcji z dodatkami decyduje się bez Ciebie, tak jak w każdej innej subskrypcji Play. W ciągu 48 godzin od zakupu użytkownik może poprosić Google przez opcję Zgłoś problem, a Google podejmuje decyzję. Potem Google odsyła go do Ciebie. A jeśli nie potwierdzisz nowego zakupu subskrypcji w ciągu trzech dni, Google automatycznie zwraca pieniądze użytkownikowi i cofa zakup.

Tylko jeden proces pyta o Twoją wersję wydarzeń. Gdy posiadacz karty zgłasza obciążenie zwrotne, a Google oznacza je do przeglądu przez dewelopera, dostajesz PendingRefundReviewNotification i masz 24 godziny na wywołanie orders.reviewrefund z preferencją zwrotu i dowodami użycia. O samych obciążeniach zwrotnych decyduje bank, a jego decyzja jest ostateczna.

Śledzenie zwrotów za dodatki na serwerze

Dokumentacja RTDN od Google wymienia SUBSCRIPTION_ITEMS_CHANGED dla zmian elementu w pakiecie subskrypcji oraz SUBSCRIPTION_REVOKED dla subskrypcji cofniętej przed czasem wygaśnięcia. Według przewodnika Google cofnięcie przez subscriptionsv2.revoke wywołuje zarówno powiadomienie SUBSCRIPTION_REVOKED, jak i VoidedPurchaseNotification, i jest rejestrowane w Voided Purchases API.

Haczykiem jest subscriptionId. Według Google nie jest ono przekazywane w RTDN dla subskrypcji z dodatkami. Nie licz więc na to, że powiadomienie powie Ci, który element się zmienił. Przy każdym powiadomieniu dotyczącym pakietu:

  • Wywołaj purchases.subscriptionsv2.get z purchaseToken.
  • Odczytaj każdy lineItem i jego expiryTime. Według Google musisz odświeżyć expiryTime dla wszystkich elementów, nie tylko dla tego, którego się spodziewasz.
  • Przyznawaj lub odbieraj dostęp według productId, a nie według tokenu zakupu.
  • Odpytuj Voided Purchases API jako zabezpieczenie. Obejmuje ono ostatnie 30 dni.

Okres prolongaty i wstrzymanie konta dotyczą całego pakietu

Problemy z płatnością dotykają wszystkich elementów naraz. Google wybiera najkrótszy okres prolongaty spośród aktywnych elementów i stosuje go do całego odnowienia. W okresie prolongaty użytkownik zachowuje każdy element. Przy wstrzymaniu konta dostęp do wszystkich elementów jest zawieszony. Jeśli płatność nigdy nie zostanie odzyskana, odrzucone elementy wygasają, a pozostałe działają dalej do końca swoich okresów rozliczeniowych.

Biurko dewelopera z laptopem pokazującym wykresy kosztów serwerów obok szczegółowej faktury, na której śledzone są opłacone koszty stojące za każdym dodatkiem do subskrypcji Google Play

Ile kosztuje Cię każda ścieżka zwrotu

Dodatki zwykle odpowiadają czemuś, za co sam płacisz. Za dodatkową przestrzeń w chmurze płacisz dostawcy pamięci. Pakiet kredytów AI rozliczany jest w wywołaniach API modelu. Dodatkowe stanowisko oznacza więcej mocy obliczeniowej, a poziom dla twórców może uruchomić wypłatę. Każdy z tych kosztów powstaje, gdy użytkownik korzysta z dodatku, a zwrot oddaje cenę, nie oddając Ci żadnego z nich.

Zwrot zbyt dużej kwoty

Kosztowny błąd to sięgnięcie po fullRefund lub proratedRefund, gdy skarga dotyczy jednego dodatku. Obie metody cofają każdy element, więc oddajesz też cenę podstawową i tracisz subskrybenta, który chciał zostać. itemBasedRefund zwraca tylko ostatnią płatność za ten dodatek. Gdy jest zablokowany, orders.refund na ostatnie zamówienie tego elementu zwraca pieniądze, niczego nie kończąc.

Częściowe zwroty i opłaty

Play Console pozwala na częściowe zwroty zamówień subskrypcji, a według Google procent zwrotu dotyczy też Twojej wypłaty i opłaty serwisowej. Zwróć połowę zamówienia, a wróci też połowa opłaty Google. Twoje własne koszty obsługi tego dodatku nie wrócą.

Obciążenia zwrotne w pakiecie

W przypadku zamówień złożonych po 3 sierpnia 2026 r. Google przenosi koszty obciążeń zwrotnych na deweloperów. Gdy obciążenie zwrotne zakończy się sukcesem, płacisz cenę zakupu pomniejszoną o opłatę serwisową Play, plus opłaty pobierane przez bank. Zamówienie pakietowe z kilkoma dodatkami to większe zamówienie do stracenia. Logi użycia dla każdego dodatku, powiązane z zaciemnionym identyfikatorem konta, to właśnie to, co wyślesz w przeglądzie w ciągu 24 godzin.

Lista kontrolna zwrotów za dodatki

  • Udostępnij w aplikacji sposób na usunięcie jednego dodatku, bo Google Play go nie oferuje.
  • Przy każdym powiadomieniu zapisuj productId, expiryTime i latestSuccessfulOrderId każdego lineItem.
  • Domyślnie używaj itemBasedRefund, gdy problemem jest jeden dodatek.
  • Gdy subskrypcja jest w okresie prolongaty lub wstrzymaniu konta, zamiast tego zwróć zamówienie elementu przez orders.refund.
  • Nigdy nie wywołuj przestarzałej metody purchases.subscriptions.refund dla pakietu.
  • Loguj użycie dodatków dla każdego konta, aby przegląd obciążenia zwrotnego mógł zostać wysłany w ciągu 24 godzin.
  • Raportuj wskaźniki zwrotów dla każdego dodatku, nie tylko dla subskrypcji, aby słaby dodatek nie ukrył się w liczbach abonamentu podstawowego.

Często zadawane pytania

Czy użytkownik może anulować tylko jeden dodatek w subskrypcji Google Play?
Nie w Google Play. Strona pomocy Google mówi, że użytkownicy mogą anulować subskrypcję podstawową i dodatki tylko razem. Twoja aplikacja może zaoferować usunięcie pojedynczego dodatku, który wygasa wtedy na końcu bieżącego okresu rozliczeniowego.
Jak zwrócić pieniądze za jeden dodatek bez anulowania subskrypcji?
Wywołaj purchases.subscriptionsv2.revoke z itemBasedRefund wskazującym productId dodatku. Jeśli inne elementy pozostają aktywne, Google cofa i w pełni zwraca tylko ten element. Możesz też zwrócić ostatnie zamówienie elementu przez orders.refund bez flagi revoke. Pieniądze wracają, a dostęp pozostaje bez zmian.
Dlaczego moje wywołanie itemBasedRefund się nie powiodło?
Google je blokuje, gdy subskrypcja jest w stanie odrzuconej płatności, gdy element nie należy do użytkownika lub wygasł, a także w przypadku subskrypcji przedpłaconych. Przed wywołaniem sprawdź expiryTime pozycji i stan subskrypcji.
Czy zwrot proporcjonalny działa w subskrypcji z dodatkami?
Tak, ale cofa wszystko. Google zwraca ostatnie zamówienie każdego elementu proporcjonalnie do czasu pozostałego do następnego odnowienia, a dostęp do wszystkich elementów kończy się natychmiast.
Które RTDN informuje mnie, że zwrócono pieniądze za dodatek?
Według przewodnika Google cofnięcie wywołuje SUBSCRIPTION_REVOKED i VoidedPurchaseNotification, a SUBSCRIPTION_ITEMS_CHANGED obejmuje zmiany elementu w pakiecie. Ponieważ w pakietach brakuje subscriptionId, wywołaj purchases.subscriptionsv2.get i odczytaj każdy lineItem, aby zobaczyć, co się zmieniło.

Źródła i materiały dodatkowe

RefundHalt

Autopilot zwrotów dla App Store i Google Play

Czytaj dalej

Kolejny wniosek o zwrot jest już w drodze.

Skonfiguruj RefundHalt w czasie potrzebnym na przeczytanie kolejnej wiadomości od pomocy technicznej o zwrocie, którego nie udało Ci się zakwestionować.