Możesz samodzielnie zwrócić zamówienie Google Play, a zrobienie tego przed obciążeniem zwrotnym oszczędza opłatę bankową
Możesz zwrócić dowolne zamówienie Google Play młodsze niż three years jednym wywołaniem API, z odebraniem dostępu lub bez. Zrobienie tego samodzielnie, zanim spór zamieni się w obciążenie zwrotne, oszczędza opłatę bankową, która od August 3, 2026 spada na deweloperów. Oto jak działa orders.refund.

Najważniejsze wnioski
- Punkt końcowy `orders.refund` w Google Play Developer API pozwala deweloperowi zwrócić dowolne zamówienie jednorazowe lub subskrypcyjne bezpośrednio, bez weryfikacji, bez podawania powodu i bez potrzeby prośby klienta.
- Zwrot i odebranie to osobne czynności. `orders.refund` przyjmuje opcjonalną flagę `revoke`. Pozostaw ją wyłączoną, a kupujący zachowa dostęp, ustaw ją na true, a Google natychmiast zakończy dostęp do pozycji.
- Zamówienia starsze niż three years nie mogą zostać zwrócone przez Google Play Developer API. Gdy to okno się zamknie, zamówienie jest trwale poza zasięgiem.
- `orders.refund` wystawia wyłącznie pełne zwroty. Częściowy, proporcjonalny zwrot subskrypcji wymaga nowszego punktu końcowego `purchases.subscriptionsv2.revoke` z kontekstem `proratedRefund`.
- Zwrot zamówienia subskrypcyjnego z `revoke` ustawionym na true wyzwala powiadomienie `SUBSCRIPTION_REVOKED` Real-time Developer Notification, więc Twój backend dowiaduje się o odebraniu w taki sam sposób jak o każdym innym zdarzeniu subskrypcji.
- Od August 3, 2026 Google obciąża dewelopera ceną zakupu powiększoną o opłaty bankowe obciążenia zwrotnego. Zwrot, który wystawisz samodzielnie, oddaje jedynie cenę zakupu, więc wczesny zwrot niepewnego zamówienia może być tańszy niż pozwolenie, by stało się obciążeniem zwrotnym.
- Zwrot zainicjowany przez dewelopera to jedyny przepływ zwrotów Google Play, który w pełni kontrolujesz. 48-hour zwrot samoobsługowy, zwroty przez wsparcie i unieważnione zakupy są rozstrzygane bez Ciebie.
Nie musisz czekać, aż klient otworzy spór. Jeśli chcesz oddać pieniądze, możesz samodzielnie zwrócić zamówienie Google Play, bezpośrednio, jednym wywołaniem API lub dwoma kliknięciami w Play Console. Google nie zapyta Cię dlaczego i nie będzie kwestionować Twojej decyzji. To jedyny przepływ zwrotów, w którym trzymasz przycisk, a użycie go wcześnie, zanim spór stwardnieje w bankowe obciążenie zwrotne, jest często najtańszym wyjściem.
Jedyny przepływ zwrotów, który naprawdę kontrolujesz
Większość zwrotów w Google Play przydarza się Tobie, a nie przechodzi przez Ciebie. Kupujący, który poprosi Google w ciągu 48 hours, otrzymuje automatyczny zwrot samoobsługowy bez udziału dewelopera. Agent wsparcia może przyznać taki, który jest ostateczny w chwili wystawienia. Bankowe obciążenie zwrotne jest rozstrzygane między posiadaczem karty a jego bankiem. We wszystkich tych przypadkach jesteś widzem, który dowiaduje się po fakcie.
Zwrot dewelopera to wyjątek. Tutaj to Ty decydujesz o oddaniu pieniędzy, we własnym harmonogramie, z własnych powodów. To narzędzie dobrej woli, narzędzie obsługi klienta i, po cichu, narzędzie kontroli kosztów. Dokładna wiedza o tym, jak się zachowuje, zmienia go z przycisku paniki w świadomy wybór.
Co robi orders.refund, w jednym wywołaniu
Metoda orders.refund w Google Play Developer API zwraca pojedyncze zamówienie, niezależnie od tego, czy było to jednorazowe zakupienie w aplikacji, czy płatność subskrypcyjna. Wysyłasz puste POST na ścieżkę zwrotu zamówienia, uwierzytelnione Twoim kontem usługi, a udane wywołanie zwraca puste ciało. To cały mechanizm.
Flaga revoke decyduje, czy zachowają dostęp
Jedyny wybór, jaki daje Ci wywołanie, to flaga zapytania revoke. Dokumentacja Google jest wprost o tym, co ona robi: jeśli ustawiona na true, dostęp do subskrypcji lub pozycji w aplikacji zostanie natychmiast zakończony. Pominij ją, a pieniądze wracają, podczas gdy klient zachowuje to, co kupił. Ta jedna wartość logiczna to różnica między przyjaznym zwrotem a czystym anulowaniem.
| Część wywołania | Wartość |
|---|---|
| Metoda i ścieżka | POST /androidpublisher/v3/applications/{packageName}/orders/{orderId}:refund |
packageName | Identyfikator Twojej aplikacji, na przykład com.acme.app |
orderId | Identyfikator zamówienia pokazany kupującemu przy zakupie |
revoke | Opcjonalna flaga zapytania. true natychmiast kończy dostęp, pominij ją, aby zwrócić i pozostawić dostęp nienaruszony |
| Ciało żądania | Puste |
| Zakres OAuth | https://www.googleapis.com/auth/androidpublisher |
Domyślnie pełny zwrot, proporcjonalny tylko dla subskrypcji
orders.refund zwraca całą wartość zamówienia. Nie ma pola na kwotę częściową. Jeśli musisz oddać część subskrypcji, sięgnij po nowszy punkt końcowy purchases.subscriptionsv2.revoke, który przyjmuje kontekst odwołania i może wystawić pełny lub proporcjonalny zwrot na podstawie czasu pozostałego w okresie. Starszy purchases.subscriptions.revoke robił tylko pełne zwroty, co jest głównym powodem istnienia metody v2. Dla zamówień jednorazowych zwroty częściowe są dostępne przez stronę Play Console dla zakupów dokonanych po March 2018, i nigdy dla aplikacji płatnych.

Ściana trzech lat i inne ograniczenia
Twardą granicą jest wiek. Google jasno stwierdza, że zamówienia starsze niż three years nie mogą zostać zwrócone. Nie ma odwołania ani obejścia, gdy zamówienie przekroczy tę linię, więc zwrot to decyzja z datą ważności. Garść innych ograniczeń kształtuje to, co wywołanie może, a czego nie może zrobić.
| Ograniczenie | Co oznacza |
|---|---|
| Limit wieku trzech lat | Zamówienia starsze niż three years nie mogą zostać zwrócone przez API |
| Tylko pełna kwota | orders.refund zwraca całą wartość zamówienia, nigdy kwotę częściową |
| Zwroty częściowe | Dostępne dla subskrypcji przez purchases.subscriptionsv2.revoke lub przez Play Console dla zamówień jednorazowych po March 2018, nigdy dla aplikacji płatnych |
| Nieodwracalne | Gdy wystawisz zwrot, nie można go cofnąć |
Ile to oszczędza Ci pieniędzy
Każdy zwrot jest już stratą, zanim dotkniesz przycisku, ponieważ pieniądze wydane na obsługę tego zakupu nie wracają wraz z nim. Jeśli kupujący wygenerował obrazy, wykonał wywołania API na Twoich modelach, zużył pamięć lub wyzwolił wypłatę do strony trzeciej, te koszty są wydane i pozostają wydane. Zwrot decyduje tylko o tym, kto poniesie cenę sprzedaży na dodatek.
Powodem, by samodzielnie sięgnąć po zwrot, jest to, co się stanie, jeśli tego nie zrobisz. Dokumentacja Google jest jednoznaczna: od August 3, 2026, gdy klient zakwestionuje obciążenie w swoim banku, Google przekazuje cenę zakupu i opłatę za obciążenie zwrotne banku deweloperowi. Zwrot, który wystawisz przez orders.refund, oddaje samą cenę zakupu. Więc dla zamówienia, które i tak spodziewasz się stracić, samodzielnie wystawiony zwrot jest tańszy od obciążenia zwrotnego dokładnie o opłatę bankową i zamyka sprawę, zanim może eskalować.
Gdzie samodzielny zwrot mieści się wśród innych przepływów zwrotów
Warto zobaczyć zwrot dewelopera obok wszystkiego innego, co może wyciągnąć pieniądze z Twojego konta. Tylko dwa z tych przepływów w ogóle pytają o Twój udział, a tylko jeden z nich pozwala Ci samodzielnie rozpocząć zwrot.
| Przepływ zwrotu | Kto decyduje | Twoja kontrola |
|---|---|---|
Zwrot dewelopera (orders.refund) | Ty | Pełna. Ty wybierasz czy i kiedy |
| 48-hour zwrot samoobsługowy | Brak. Google zwraca automatycznie | |
| Zwrot przez agenta wsparcia | Google lub Apple support | Brak. Ostateczny po przyznaniu |
Przegląd obciążenia zwrotnego (orders.reviewrefund) | Google, na podstawie Twoich dowodów | Tylko 24-hour okno na wprowadzenie danych |
| Voided Purchases API | Nikt, jest tylko do odczytu | Brak. Odczytujesz tylko to, co już się stało |
Jak zwrócić zamówienie Google Play, od początku do końca
Z Play Console
- Otwórz Play Console i wybierz Zarządzanie zamówieniami w lewym menu.
- Znajdź zamówienie po jego identyfikatorze zamówienia lub pełnym adresie e-mail kupującego.
- Pod ceną wybierz Zwróć i wybierz powód zwrotu. Użyj strony internetowej, a nie aplikacji mobilnej, jeśli potrzebujesz zwrotu częściowego.
Z API
- Uwierzytelnij konto usługi, które ma zakres
androidpublisheri uprawnienia finansowe w Play Console. - Wyślij puste POST na ścieżkę zwrotu zamówienia, dodając
revoke=truetylko wtedy, gdy chcesz też odciąć dostęp. - Obsłuż pustą odpowiedź sukcesu, a jeśli odwołałeś subskrypcję, spodziewaj się powiadomienia
SUBSCRIPTION_REVOKED, które dotrze do Twojego backendu.
Zwrot dewelopera to małe, ostre narzędzie. Daje Ci czysty sposób, by zadośćuczynić klientowi, i tańsze wyjście niż obciążenie zwrotne zamówienia, które i tak byś stracił. Jedyna zasada to używać go świadomie, z flagą revoke ustawioną tak, jak naprawdę zamierzasz.
Często zadawane pytania
- Czy mogę zwrócić zamówienie Google Play bez anulowania dostępu klienta?
- Tak. Wywołaj `orders.refund` i pozostaw flagę `revoke` wyłączoną. Kupujący odzyskuje pieniądze i zachowuje dostęp do pozycji. Ustaw `revoke` na true tylko wtedy, gdy chcesz też natychmiast zakończyć dostęp do zakupu.
- Jak daleko wstecz mogę zwrócić zamówienie w Google Play?
- Do three years od daty zakupu. Google Play Developer API stwierdza, że zamówienia starsze niż three years nie mogą zostać zwrócone, i nie ma obejścia, gdy to okno się zamknie.
- Czy orders.refund obsługuje zwroty częściowe?
- Nie. `orders.refund` wystawia tylko pełną kwotę zamówienia. Aby uzyskać częściowy lub proporcjonalny zwrot subskrypcji, użyj `purchases.subscriptionsv2.revoke` z kontekstem `proratedRefund` lub wystaw zwrot częściowy przez Play Console dla kwalifikujących się zamówień jednorazowych.
- Czy mój backend dowie się, gdy odwołam subskrypcję ze zwrotem?
- Tak. Zwrot zamówienia subskrypcyjnego z `revoke` ustawionym na true wyzwala powiadomienie `SUBSCRIPTION_REVOKED` Real-time Developer Notification, więc Twój serwer może zaktualizować uprawnienia w taki sam sposób, w jaki obsługuje każde inne zdarzenie subskrypcji.
- Czy zwrócenie zamówienia samodzielnie jest lepsze niż pozwolenie, by stało się obciążeniem zwrotnym?
- Często, w czystych kategoriach kosztów. Od August 3, 2026 obciążenie zwrotne kosztuje dewelopera cenę zakupu powiększoną o opłatę bankową, podczas gdy zwrot, który wystawisz, oddaje jedynie cenę zakupu. Jeśli zamówienie wyraźnie zmierza ku sporowi, wczesny zwrot pozwala uniknąć dodatkowej opłaty bankowej.
Źródła i materiały dodatkowe
- Google Play Developer API: Method orders.refund
- Android Developers: Manage subscriptions and one-time purchases
- Play Console Help: Manage your app's orders and issue refunds
- Google Play Developer API: Method purchases.subscriptionsv2.revoke
- Google Play Console Help: refund protection and chargeback cost responsibility
- Google Play Help: Learn about Google Play refund policies
RefundHalt
Autopilot zwrotów dla App Store i Google Play
Czytaj dalej
Apple Send Consumption Information prosi teraz o pięć pól, a nie dwanaście, i oto każde z nich
Gdy klient prosi Apple o zwrot, ładunek Send Consumption Information jest Twoją odpowiedzią. Apple skróciło go z dwunastu pól do pięciu, trzy wymagane i dwa opcjonalne. Oto każde pole, wartości, które każde przyjmuje, oraz 12-godzinne okno, w którym je wysyłasz.
Jest jeden endpoint, który zwraca całą App Store refund history klienta, i oto co odsyła w odpowiedzi
Endpoint Get Refund History od Apple zwraca pełną App Store refund history klienta jako podpisane transakcje. Oto każde pole, jak token revision stronicuje, dlaczego działa per klient, a nie per aplikacja, i ile kosztuje Cię przeoczony zwrot.