Rambursare App Store: ce vede dezvoltatorul
De Mehdi Azizi
Publicat pe , 8 min.
Rambursare App Store: decide doar Apple. Dezvoltatorul primește CONSUMPTION_REQUEST, poate răspunde în 12 ore, apoi află decizia prin REFUND.
Pe App Store, Apple acordă sau refuză o rambursare, niciodată dezvoltatorul. Clientul face cererea pe site-ul Apple sau din aplicația ta. Dacă ai conectat notificările de server ale Apple, primești o notificare CONSUMPTION_REQUEST în momentul cererii, apoi REFUND sau REFUND_DECLINED la decizie. Între cele două ai 12 ore să trimiți date de consum și preferința ta, cu condiția ca clientul să-și fi dat consimțământul.
O rambursare acordată scoate achiziția din drepturile active ale clientului și apare cu minus în rapoartele tale de vânzări. Ghidul ăsta detaliază fiecare etapă, ce poți trimite către Apple și ce ai voie să faci împotriva cererilor abuzive. Regulile vin din paginile Apple recitite pe 3 noiembrie 2026. Cazul real vine dintr-o alertă pe care am conectat-o la aplicațiile mele în octombrie.
Cine decide o rambursare App Store?
Apple, și doar Apple. Pagina de asistență Apple descrie parcursul clientului: se conectează pe reportaproblem.apple.com, alege „Request a refund”, indică un motiv, apoi achiziția în cauză. Apple îi recomandă să aștepte 24-48 de ore pentru un răspuns.
Clientul poate cere rambursarea și din aplicația ta. StoreKit oferă pentru asta o foaie de cerere, disponibilă din iOS 15. Apple recomandă s-o apelezi din setările contului sau dintr-un meniu de ajutor. Afișează achiziția și o listă de motive, iar Apple are nevoie de până la 48 de ore ca să decidă.
În ambele cazuri, tu nu ai nimic de validat. Poți doar să oferi informații și o preferință, care contează printre mai multe criterii în decizia Apple.
Ce vede fiecare, pas cu pas
| Etapă | La client | La dezvoltator |
|---|---|---|
| Cerere | Formularul Apple sau foaia din aplicație | Notificare CONSUMPTION_REQUEST |
| În 12 ore | Așteptare | Poți trimite datele de consum |
| În 48 de ore | Răspunsul Apple | Notificare REFUND sau REFUND_DECLINED |
| După acceptare | Banii returnați pe metoda lui de plată | Achiziție scoasă din drepturile active, unități negative |
| După o contestare | Rambursare anulată de Apple | Notificare REFUND_REVERSED, acces de restabilit |
App Store Connect îți arată doar rambursările deja acordate, în Sales and Trends. Cererea în sine ajunge doar prin notificările de server. Fără ele, afli de rambursare după ce s-a întâmplat.
Notificările de server pentru o rambursare
App Store Server Notifications V2 trimit cinci tipuri utile aici. Le primești la adresa HTTPS declarată în App Store Connect, una pentru producție și una pentru sandbox.
| Notificare | Ce anunță | Ce faci |
|---|---|---|
CONSUMPTION_REQUEST | Clientul cere o rambursare | Răspunzi în 12 ore, dacă ai consimțământ |
REFUND | Apple a rambursat tranzacția | Retragi conținutul sau accesul rambursat |
REFUND_DECLINED | Apple a refuzat cererea | Nimic, accesul continuă |
REFUND_REVERSED | Apple anulează o rambursare după o contestare a clientului | Restabilești ce retrăseseși |
REVOKE | O achiziție partajată prin Family Sharing nu mai e disponibilă | Retragi accesul membrului familiei |
Serverul tău trebuie să răspundă cu un cod HTTP între 200 și 206. Conform paginii despre răspunsurile la notificări, altfel Apple reîncearcă de cinci ori, la 1, 12, 24, 48 și apoi 72 de ore după încercarea anterioară. În sandbox, trimite o singură dată.
Consumption API: ce poți să-i spui Apple
Când sosește cererea, poți răspunde cu Send Consumption Information. Regula încape într-o frază a Apple: „Respond within 12 hours of receiving the CONSUMPTION_REQUEST notification.” Versiunea 2 a API-ului e valabilă pentru toate tipurile de produse, inclusiv abonamentele.
Câmpurile cererii:
| Câmp | Obligatoriu | Ce îi spune Apple |
|---|---|---|
customerConsented | Da | Clientul a consimțit la partajarea datelor sale |
deliveryStatus | Da | Achiziția a fost livrată și funcționează, sau de ce n-a fost livrată |
sampleContentProvided | Da | Înainte de achiziție s-a oferit o probă, un extras sau o descriere |
consumptionPercentage | Nu | Partea consumată, de la 0 la 100 000 pentru 0-100 % |
refundPreference | Nu | Preferința ta: DECLINE, GRANT_FULL sau GRANT_PRORATED |
Două precizări contează. Dacă deliveryStatus nu e DELIVERED, partea consumată trebuie să fie zero. Iar pentru o rambursare proporțională a unui abonament, omiți partea consumată: o calculează Apple.
Consimțământul e condiția pentru tot. Apple scrie: „You must obtain valid consent from the customer before sharing their personal data with Apple in the Send Consumption Information API.” Fără consimțământ, nu răspunzi. Apple interzice și folosirea ferestrei de urmărire publicitară pentru a obține acest consimțământ: „Don't use the AppTrackingTransparency prompt to obtain consent”.
Dacă folosești RevenueCat
Cu RevenueCat, el primește notificările Apple și răspunde la cerere, prin Refund Control. Alegi una din patru politici: preferi o rambursare completă, preferi un refuz, trimiți doar datele de consum sau nu răspunzi.
Activarea partajării datelor înseamnă să confirmi că ai consimțământul clienților. RevenueCat o spune chiar el: „Enabling consumption data sharing confirms that you obtained consent from your Customers.” Recomandă și să rezervi „Prefer no refund” pentru un grup țintit și te avertizează când preferința asta atinge majoritatea clienților tăi.
Ca să primești notificările și pe propriul server, RevenueCat oferă un câmp „Apple Server Notification Forwarding URL” în setările aplicației. E descris în pagina lui despre notificările Apple. Asta folosesc eu. Configurarea unui abonament cu RevenueCat e în RevenueCat și abonamentul in-app iOS.
Efectul asupra veniturilor și abonamentului
Asupra accesului. Conform documentației currentEntitlements, „Products that the App Store has refunded or revoked don't appear in the current entitlements”. Dacă aplicația ta verifică drepturile cu currentEntitlements, accesul rambursat dispare de la sine. Tranzacția poartă data și motivul retragerii, în revocationDate și revocationReason.
Asupra rapoartelor. Conform ajutorului pentru raportul de vânzări, o rambursare apare cu unități și preț client negative. Pentru abonamente, pagina despre datele de abonament numără rambursările complete și parțiale printre evenimente și le scade din unitățile zilnice.
Asupra reputației tale. Guideline 5.6.4 menționează cererile excesive de rambursare printre semnele unei calități insuficiente. O rată mare de rambursări nu e doar o pierdere de bani: Apple poate ține cont de ea când judecă dacă respecți codul de conduită.
Cazul meu: alerta conectată la aplicațiile mele
Pe 12 octombrie 2026, am conectat o alertă la aplicațiile mele. RevenueCat transmite notificările Apple către o rută de pe devoria.fr. Ea verifică semnătura Apple, apoi îmi trimite o alertă, fără sumă. Voiam să văd cererea în momentul în care ajunge, nu doar rezultatul.
Pe 18 octombrie, a sosit prima cerere reală pe TradaZen, simulatorul meu de trading. Un abonament anual, plătit la finalul unei perioade gratuite de 7 zile. Motivul indicat: o achiziție involuntară. Trei lecții:
- Aceeași cerere poate sosi de mai multe ori. Am primit aceeași alertă de trei ori în aceeași seară. De atunci, fiecare alertă e deduplicată după tipul notificării și identificatorul tranzacției.
- Decizia a venit în mai puțin de o zi. Apple a refuzat la aproximativ 22 de ore după cerere. Clientul și-a păstrat accesul.
- Un refuz nu e finalul. Același client a refăcut cererea două zile mai târziu, pe aceeași tranzacție.
O cerere pentru „achiziție involuntară” la finalul unei perioade de probă nu se câștigă în răspunsul către Apple. Se previne pe paywall, înainte de prima plată.
Cum limitezi cererile abuzive fără să încalci regulile
Ce e permis:
- Să răspunzi la fiecare cerere cu date exacte, când clientul a consimțit.
- Să exprimi o preferință țintită, de exemplu un refuz pentru o achiziție deja consumată, în loc de un refuz pentru toată lumea.
- Să legi fiecare
REFUNDde un cont de client. Pagina Apple despre notificările de rambursare recomandă asta ca să identifici rambursările repetate. - Să spui clar ce se cumpără înainte de achiziție. Guideline 3.1.2(c) cere să descrii ce primește utilizatorul pentru preț, înainte să-i propui abonarea.
Ce e interzis:
- Să trimiți date false ca să fie refuzată o cerere, sau să răspunzi fără consimțământ.
- Să obții consimțământul prin fereastra de urmărire publicitară, lucru pe care Apple îl exclude explicit.
- Să capcanezi achiziția. Guideline 5.6 interzice să împingi clienții spre achiziții nedorite sau să facturezi ce nu e livrat.
- Să faci presiuni asupra unui client care cere o rambursare. Aceeași regulă cere respect în serviciul clienți, fără intimidare.
Cea mai bună pârghie rămâne înainte: un paywall care spune prețul, data primei plăți și cum anulezi. Greșelile de evitat sunt în greșelile de paywall, iar regulile perioadei de probă în perioada gratuită pe App Store.
Testează înainte de producție
Conform paginii despre testarea cererilor, sandbox-ul și testele StoreKit din Xcode acceptă cereri de rambursare. În sandbox, orice motiv declanșează o acceptare automată. Ca să simulezi un refuz, alege „Other” și scrie DECLINE. Pentru o rambursare proporțională, scrie GRANT_PRORATED. În sandbox, răspunsul tău de consum trebuie trimis în cinci minute.
Un abonament care se rambursează mai rar
iOS & Android Kit pornește de la codul aplicațiilor mele, cu onboarding-ul, paywall-ul și abonamentele deja scrise, și urmează patru etape până la App Store, în ritmul tău. Configurarea completă e detaliată pe pagina abonament in-app iOS, iar regulile Apple despre abonamente în guideline 3.1.2.
Înainte să-ți lansezi paywall-ul, fă diagnosticul gratuit: îți spune ce blochează cu adevărat proiectul tău și îți trimite checklist-ul meu anti-respingere Apple.
Întrebări frecvente
Poate dezvoltatorul să refuze o rambursare App Store?
Nu. Decide doar Apple. Poți trimite date de consum și o preferință, DECLINE de exemplu, care contează printre mai multe criterii. Apple are ultimul cuvânt.
Este dezvoltatorul anunțat de o cerere de rambursare?
Da, dacă a conectat App Store Server Notifications V2. Apple trimite CONSUMPTION_REQUEST în momentul cererii, apoi REFUND sau REFUND_DECLINED la decizie. Fără notificări, vezi doar rambursările acordate, în rapoarte.
Cât durează până procesează Apple o cerere de rambursare?
Apple îi anunță clientului 24-48 de ore. Documentația StoreKit vorbește de cel mult 48 de ore. Tu ai 12 ore să trimiți datele de consum.
Ce se întâmplă cu accesul după o rambursare?
Achiziția rambursată iese din drepturile active ale clientului: StoreKit 2 n-o mai returnează în currentEntitlements. Dacă Apple anulează apoi rambursarea, primești REFUND_REVERSED și trebuie să restabilești accesul.
E nevoie de consimțământul clientului ca să-i răspunzi Apple?
Da. Apple cere un consimțământ valid înainte de orice partajare de date prin Consumption API. Fără el, nu răspunzi la notificare. Fereastra de urmărire publicitară nu poate fi folosită ca să-l obții.
Contează rambursările împotriva aplicației mele?
Pot conta. Guideline 5.6.4 menționează cererile excesive de rambursare printre semnele unei calități insuficiente, de care Apple poate ține cont când judecă respectarea codului de conduită.

