Povrat novca App Store: što vidi developer
Autor: Mehdi Azizi
Objavljeno , 8 min
O povratu novca na App Storeu odlučuje samo Apple. Developer dobije CONSUMPTION_REQUEST, može odgovoriti u 12 sati, a odluku saznaje preko REFUND.
Na App Storeu povrat novca odobrava ili odbija Apple, nikad developer. Kupac šalje zahtjev na Appleovoj stranici ili iz tvoje aplikacije. Ako si spojio Appleove serverske obavijesti, dobiješ obavijest CONSUMPTION_REQUEST u trenutku zahtjeva, a zatim REFUND ili REFUND_DECLINED kad padne odluka. Između toga imaš 12 sati da pošalješ podatke o korištenju i svoju preferenciju, pod uvjetom da je kupac na to pristao.
Odobreni povrat uklanja kupnju iz kupčevih aktivnih prava i pojavljuje se kao negativna stavka u tvojim izvještajima o prodaji. Ovaj vodič detaljno prolazi svaki korak, što možeš poslati Appleu i što smiješ napraviti protiv zlonamjernih zahtjeva. Pravila su s Appleovih stranica koje sam ponovno pročitao 3. studenog 2026. Stvarni slučaj dolazi od upozorenja koje sam u listopadu spojio na svoje aplikacije.
Tko odlučuje o povratu novca na App Storeu?
Apple, i samo Apple. Appleova stranica podrške opisuje put kupca: prijavi se na reportaproblem.apple.com, odabere „Request a refund”, navede razlog, pa odabere kupnju. Apple mu savjetuje da na odgovor pričeka 24 do 48 sati.
Kupac može zatražiti povrat i iz tvoje aplikacije. StoreKit za to nudi obrazac za zahtjev, dostupan od iOS-a 15. Apple savjetuje da ga pozoveš iz postavki računa ili izbornika pomoći. Prikazuje kupnju i popis razloga, a Apple treba do 48 sati da odluči.
U oba slučaja ti ništa ne odobravaš. Možeš samo dati informacije i preferenciju, koje su jedan od nekoliko kriterija u Appleovoj odluci.
Što tko vidi, korak po korak
| Korak | Strana kupca | Strana developera |
|---|---|---|
| Zahtjev | Appleov obrazac ili obrazac u aplikaciji | Obavijest CONSUMPTION_REQUEST |
| Unutar 12 sati | Čekanje | Moguće slanje podataka o korištenju |
| Unutar 48 sati | Appleov odgovor | Obavijest REFUND ili REFUND_DECLINED |
| Nakon odobrenja | Novac vraćen na njegovo sredstvo plaćanja | Kupnja uklonjena iz aktivnih prava, negativne jedinice |
| Nakon osporavanja | Apple poništava povrat | Obavijest REFUND_REVERSED, pristup treba vratiti |
App Store Connect ti pokazuje samo već odobrene povrate, u Sales and Trends. Sam zahtjev stiže samo preko serverskih obavijesti. Bez njih za povrat saznaš tek naknadno.
Serverske obavijesti za povrat novca
App Store Server Notifications V2 šalju pet tipova koji su ovdje bitni. Primaš ih na HTTPS adresu navedenu u App Store Connectu, jednu za produkciju i jednu za sandbox.
| Obavijest | Što javlja | Što radiš |
|---|---|---|
CONSUMPTION_REQUEST | Kupac traži povrat novca | Odgovoriti u 12 sati, ako postoji pristanak |
REFUND | Apple je vratio novac za transakciju | Ukloniti vraćeni sadržaj ili pristup |
REFUND_DECLINED | Apple je odbio zahtjev | Ništa, pristup ostaje |
REFUND_REVERSED | Apple poništava povrat nakon što ga je kupac osporio | Vratiti ono što si uklonio |
REVOKE | Kupnja podijeljena preko Family Sharinga više nije dostupna | Ukloniti pristup članu obitelji |
Tvoj server mora odgovoriti HTTP kodom između 200 i 206. Prema stranici o odgovaranju na obavijesti, Apple u suprotnom pokušava još pet puta, 1, 12, 24, 48 pa 72 sata nakon prethodnog pokušaja. U sandboxu šalje samo jednom.
Consumption API: što možeš reći Appleu
Kad zahtjev stigne, možeš odgovoriti preko Send Consumption Information. Pravilo stane u jednu Appleovu rečenicu: „Respond within 12 hours of receiving the CONSUMPTION_REQUEST notification.” Verzija 2 API-ja vrijedi za sve vrste proizvoda, uključujući pretplate.
Polja zahtjeva:
| Polje | Obavezno | Što govori Appleu |
|---|---|---|
customerConsented | Da | Kupac je pristao na dijeljenje svojih podataka |
deliveryStatus | Da | Kupnja je isporučena i radi, ili zašto nije isporučena |
sampleContentProvided | Da | Prije kupnje bio je ponuđen probni period, isječak ili opis |
consumptionPercentage | Ne | Iskorišteni dio, od 0 do 100 000 za 0 do 100 % |
refundPreference | Ne | Tvoja preferencija: DECLINE, GRANT_FULL ili GRANT_PRORATED |
Dvije stvari su važne. Ako deliveryStatus nije DELIVERED, iskorišteni dio mora biti nula. A za razmjerni povrat pretplate izostavljaš iskorišteni dio: Apple ga sam izračuna.
Pristanak je uvjet za sve. Apple piše: „You must obtain valid consent from the customer before sharing their personal data with Apple in the Send Consumption Information API.” Bez pristanka ne odgovaraš. Apple također zabranjuje da za taj pristanak koristiš prozor za praćenje oglasa: „Don't use the AppTrackingTransparency prompt to obtain consent”.
Ako koristiš RevenueCat
S RevenueCatom on prima Appleove obavijesti i odgovara na zahtjev, preko Refund Control. Biraš jednu od četiri politike: preferirati puni povrat, preferirati odbijanje, slati samo podatke o korištenju ili ne odgovarati.
Uključivanje dijeljenja podataka znači da potvrđuješ da imaš pristanak svojih kupaca. RevenueCat to sam kaže: „Enabling consumption data sharing confirms that you obtained consent from your Customers.” Savjetuje i da „Prefer no refund” čuvaš za ciljanu skupinu, i upozorava kad ta preferencija pogađa većinu tvojih kupaca.
Ako želiš obavijesti primati i na vlastitom serveru, RevenueCat nudi polje „Apple Server Notification Forwarding URL” u postavkama aplikacije. Opisano je na njegovoj stranici o Appleovim obavijestima. To i ja koristim. Postavljanje pretplate s RevenueCatom imaš u RevenueCat i in-app pretplata na iOS-u.
Učinak na tvoje prihode i na pretplatu
Na pristup. Prema dokumentaciji za currentEntitlements, „Products that the App Store has refunded or revoked don't appear in the current entitlements”. Ako tvoja aplikacija provjerava prava preko currentEntitlements, vraćeni pristup nestaje sam od sebe. Transakcija nosi datum i razlog uklanjanja, u revocationDate i revocationReason.
Na izvještaje. Prema pomoći za izvještaj o prodaji, povrat se pojavljuje s negativnim jedinicama i negativnom cijenom za kupca. Za pretplate, stranica o podacima pretplata ubraja pune i djelomične povrate među događaje i oduzima ih od dnevnih jedinica.
Na tvoj ugled. Guideline 5.6.4 navodi pretjerane zahtjeve za povrat među znakovima nedovoljne kvalitete. Visoka stopa povrata nije samo gubitak novca: Apple je može uzeti u obzir kad procjenjuje poštuješ li kodeks ponašanja.
Moj slučaj: upozorenje spojeno na moje aplikacije
-
listopada 2026. spojio sam upozorenje na svoje aplikacije. RevenueCat prosljeđuje Appleove obavijesti na jednu rutu na devoria.fr. Ona provjeri Appleov potpis, pa mi pošalje upozorenje, bez iznosa. Htio sam vidjeti zahtjev u trenutku kad stigne, a ne samo ishod.
-
listopada stigao je prvi pravi zahtjev, na TradaZenu, mom simulatoru tradinga. Godišnja pretplata, plaćena na kraju besplatnog probnog razdoblja od 7 dana. Navedeni razlog: nenamjerna kupnja. Tri lekcije:
-
Isti zahtjev može stići više puta. Isto upozorenje dobio sam tri puta iste večeri. Od tada se svako upozorenje deduplicira po tipu obavijesti i identifikatoru transakcije.
-
Odluka je stigla za manje od jednog dana. Apple je odbio otprilike 22 sata nakon zahtjeva. Kupac je zadržao pristup.
-
Odbijanje nije kraj. Isti kupac ponovno je poslao zahtjev dva dana kasnije, za istu transakciju.
Zahtjev zbog „nenamjerne kupnje” na kraju probnog razdoblja ne dobiva se u odgovoru Appleu. Sprječava se na paywallu, prije prve uplate.
Kako smanjiti zlonamjerne zahtjeve bez kršenja pravila
Što je dopušteno:
- Odgovoriti na svaki zahtjev točnim podacima, kad je kupac pristao.
- Izraziti ciljanu preferenciju, na primjer odbijanje za već iskorištenu kupnju, umjesto odbijanja za sve.
- Povezati svaki
REFUNDs korisničkim računom. Appleova stranica o obavijestima o povratu to preporučuje kako bi se uočili ponovljeni povrati. - Jasno reći što se kupuje prije kupnje. Guideline 3.1.2(c) traži da opišeš što korisnik dobiva za tu cijenu, prije nego što mu ponudiš pretplatu.
Što je zabranjeno:
- Slati lažne podatke da bi zahtjev bio odbijen, ili odgovarati bez pristanka.
- Prikupljati pristanak preko prozora za praćenje oglasa, što Apple izričito isključuje.
- Namještati kupnju. Guideline 5.6 zabranjuje navođenje kupaca na neželjene kupnje ili naplatu nečega što nije isporučeno.
- Vršiti pritisak na kupca koji traži povrat. Isto pravilo traži poštovanje u korisničkoj podršci, bez zastrašivanja.
Najbolja poluga ostaje ranije u procesu: paywall koji navodi cijenu, datum prve uplate i način otkazivanja. Greške koje treba izbjegavati su u greškama na paywallu, a pravila probnog razdoblja u besplatnom probnom razdoblju na App Storeu.
Testiraj prije produkcije
Prema stranici o testiranju zahtjeva, sandbox i StoreKit testovi u Xcodeu prihvaćaju zahtjeve za povrat. U sandboxu bilo koji razlog automatski pokreće odobrenje. Da simuliraš odbijanje, odaberi „Other” i upiši DECLINE. Za razmjerni povrat upiši GRANT_PRORATED. U sandboxu tvoj odgovor s podacima o korištenju mora otići unutar pet minuta.
Pretplata kod koje je manje povrata
iOS & Android Kit polazi od koda mojih aplikacija, s već napisanim onboardingom, paywallom i pretplatama, i vodi te kroz četiri koraka do App Storea, svojim tempom. Cijelo postavljanje detaljno je opisano na stranici in-app pretplata na iOS-u, a Appleova pravila o pretplatama u guidelineu 3.1.2.
Prije nego što pokreneš paywall, napravi besplatnu dijagnozu: reći će ti što stvarno koči tvoj projekt i poslati ti moju checklistu protiv Appleovih odbijanja.
Česta pitanja
Može li developer odbiti povrat novca na App Storeu?
Ne. Apple odlučuje sam. Možeš poslati podatke o korištenju i preferenciju, na primjer DECLINE, koji su jedan od nekoliko kriterija. Apple ima posljednju riječ.
Je li developer obaviješten o zahtjevu za povrat novca?
Da, ako je spojio App Store Server Notifications V2. Apple šalje CONSUMPTION_REQUEST u trenutku zahtjeva, a zatim REFUND ili REFUND_DECLINED kad padne odluka. Bez obavijesti vidiš samo odobrene povrate, u svojim izvještajima.
Koliko Appleu treba da obradi zahtjev za povrat novca?
Apple kupcu najavljuje 24 do 48 sati. StoreKit dokumentacija govori o najviše 48 sati. Ti sa svoje strane imaš 12 sati da pošalješ podatke o korištenju.
Što se događa s pristupom nakon povrata novca?
Vraćena kupnja izlazi iz kupčevih aktivnih prava: StoreKit 2 je više ne vraća u currentEntitlements. Ako Apple zatim poništi povrat, dobiješ REFUND_REVERSED i moraš vratiti pristup.
Treba li pristanak kupca da bih odgovorio Appleu?
Da. Apple traži valjan pristanak prije bilo kakvog dijeljenja podataka preko Consumption API-ja. Bez njega ne odgovaraš na obavijest. Prozor za praćenje oglasa ne smije se koristiti za njegovo prikupljanje.
Računaju li se povrati novca protiv moje aplikacije?
Mogu. Guideline 5.6.4 navodi pretjerane zahtjeve za povrat među znakovima nedovoljne kvalitete, što Apple može uzeti u obzir kad procjenjuje poštuješ li kodeks ponašanja.

