Guideline 3.1.1: când e obligatorie achiziția in-app
De Mehdi Azizi
Publicat pe , 9 min.
Guideline 3.1.1: orice conținut sau funcție digitală deblocată în app trece prin achiziția in-app Apple. Excepții, reguli UE și SUA, corecturi.
Guideline 3.1.1 impune achiziția in-app de la Apple de îndată ce aplicația ta deblochează conținut sau o funcție digitală: abonament, versiune completă, monedă de joc, conținut premium. O respingere 3.1.1 înseamnă că Apple a găsit o altă cale de acces la acel conținut: plată pe site-ul tău, cheie de licență, cod propriu, buton spre o pagină de plată. Corectura trece prin achiziția in-app, cu excepția cazului în care situația ta intră într-o excepție sau într-o regulă regională.
Îmi public propriile aplicații iOS, iar cele care au abonament îl vând prin achiziția in-app de la Apple. N-am primit niciodată o respingere 3.1.1 și nu o să-ți spun altceva. Ghidul ăsta se bazează pe textul oficial, în versiunea din 8 iunie 2026 citită pe 15 octombrie 2026, și pe condițiile regionale publicate de Apple. Cazul înrudit al abonamentelor, cu două respingeri reale, e în ghidul despre guideline 3.1.2.
Ce spune guideline 3.1.1?
Regula 3.1.1, „In-App Purchase”, deschide partea 3.1 „Payments” din App Review Guidelines. De aici vine titlul mailului: „Guideline 3.1.1 - Business - Payments - In-App Purchase”. Prima frază spune esențialul: ca să deblochezi funcții în aplicație, „you must use in-app purchase”, trebuie să treci prin achiziția in-app. Apple menționează abonamentele, monedele de joc, nivelurile, conținutul premium și versiunea completă.
Fraza următoare vizează ocolirile. O aplicație nu poate folosi propriul mecanism ca să deblocheze conținut: Apple numește cheile de licență, markerii de realitate augmentată, codurile QR, criptomonedele și portofelele crypto.
Aceeași regulă adaugă obligații pe care le uităm des:
- creditele și monedele cumpărate prin achiziție in-app nu expiră, iar orice achiziție restaurabilă are un mecanism de restaurare;
- un cufăr sau o extragere plătită („loot box”) afișează șansele de a obține fiecare tip de obiect înainte de cumpărare;
- un card cadou, un voucher sau un cupon digital se vinde în aplicație prin achiziție in-app; un card fizic trimis prin poștă poate trece prin alt mijloc;
- o aplicație fără abonament poate oferi o perioadă de probă limitată în timp, sub forma unei achiziții in-app gratuite numite „XX-day Trial”, care anunță înainte de început durata, ce se va pierde și ce va trebui plătit;
- bacșișurile pentru dezvoltator sunt posibile, prin achiziție in-app.
Situațiile care declanșează o respingere 3.1.1
| Ce face aplicația | De ce respinge Apple | Corectura |
|---|---|---|
| Deblochează un conținut cumpărat pe site-ul tău | Nicio achiziție in-app echivalentă | Să-l vinzi și prin achiziție in-app |
| Afișează „Plătește pe site-ul nostru” | Trimitere către altă plată | Scoți butonul, cu excepția excepțiilor |
| Cere o cheie de licență sau un cod propriu | Mecanism de deblocare interzis | Codurile de ofertă Apple |
| Deblochează contra unei criptomonede | Mecanism de deblocare interzis | Achiziție in-app |
| Vinde credite care expiră | Obligație din 3.1.1 | Credite permanente și restaurare |
| Vinde un cufăr fără probabilități | Șanse neafișate | Probabilități vizibile înainte de cumpărare |
Primul rând e cel mai prost înțeles. Într-o respingere publicată pe forumurile Apple, mesajul spune că aplicația „accesses digital content purchased outside the app”, accesează un conținut cumpărat în altă parte, „but that content isn't available to purchase using in-app purchase”. Apple nu-ți reproșează că ai un site care vinde: îți reproșează că aplicația nu oferă aceeași achiziție prin Apple.
Ca să oferi acces gratuit sau o reducere, Apple are propriul sistem, codurile de ofertă. Conform documentației StoreKit, ele funcționează pentru toate tipurile de achiziții in-app: abonamente, consumabile și neconsumabile. Le creezi în App Store Connect, iar utilizatorul le introduce în App Store sau în aplicația ta.
Excepțiile: când nu e cerută achiziția in-app
Regula 3.1.3 listează aplicațiile care pot folosi alt mijloc de plată. Iată grila pe care o folosesc ca să văd unde se încadrează un proiect.
| Cazul tău | Achiziție in-app cerută? | Regula |
|---|---|---|
| Abonament, versiune completă, conținut digital | Da | 3.1.1 |
| Produs fizic, serviciu consumat în afara aplicației | Nu, alt mijloc obligatoriu | 3.1.3(e) |
| Curs sau consultație live, între două persoane | Nu | 3.1.3(d) |
| Curs live cu mai mulți participanți | Da | 3.1.3(d) |
| Presă, cărți, muzică, video cumpărate în altă parte | Nu pentru acces | 3.1.3(a) |
| Serviciu multiplatformă cumpărat pe site-ul tău | Acces permis dacă e și în achiziție in-app | 3.1.3(b) |
| Unealtă vândută unei firme pentru angajații ei | Nu | 3.1.3(c) |
| App gratuită însoțitoare a unei unelte web, fără achiziție | Nu | 3.1.3(f) |
Două limite. O aplicație care beneficiază de o excepție nu poate, în aplicație, să împingă spre alt mijloc de plată, în afara vitrinei americane și a cazurilor prevăzute de Apple. În schimb, Apple precizează că „Developers can send communications outside of the app”: le poți scrie utilizatorilor în afara aplicației, de exemplu pe e-mail.
Regulile pe regiuni în octombrie 2026
Aici textele se schimbă repede. Ce urmează reia textele Apple citite pe 15 octombrie 2026: recitește-le înainte să programezi o plată externă.
| Regiune | Ce e permis în plus față de achiziția in-app |
|---|---|
| Statele Unite | Butoane și linkuri spre altă plată, fără entitlement |
| Uniunea Europeană | Plată alternativă în aplicație și oferte în afara ei, reglementate |
| Japonia, Brazilia, Coreea de Sud | Programe proprii, la cerere de entitlement |
| Alte țări | Niciun buton, link sau îndemn spre altă plată |
Statele Unite
Regula 3.1.1(a) precizează că entitlement-urile „are not required for developers to include buttons, external links, or other calls to action in their United States storefront apps”. Pe vitrina americană, un buton spre site-ul tău e deci permis. Binarul tău e același peste tot: dacă adaugi butonul ăsta, aplicația trebuie să știe pe ce vitrină se află utilizatorul. StoreKit ți-o dă prin Storefront.
Uniunea Europeană
Condiții noi se aplică de la 1 octombrie 2026, conform paginii Apple despre opțiunile de plată în UE. Poți păstra doar achiziția in-app, fără să schimbi nimic. Poți propune și un procesator de plăți în aplicație, sau oferte în afara aplicației, spre site-ul tău de exemplu. Apple impune atunci, printre altele:
- entitlement-ul „StoreKit External Purchases or Offers” și, pentru un link sau o plată în aplicație, fereastra de informare a sistemului;
- achiziția in-app cel puțin la fel de vizibilă ca cealaltă opțiune, când ambele sunt pe ecran;
- nicio mențiune despre aceste plăți pe pagina ta din App Store;
- control parental pentru minori și nicio ofertă în afara aplicației sub 13 ani, sau mai mult, în funcție de țară;
- aceeași alegere pe toate vitrinele din UE timp de 12 luni.
Se aplică comisioane în funcție de opțiunea aleasă. Citește secțiunea lor de pe aceeași pagină înainte să decizi.
Celelalte țări
În rest, regula rămâne strictă: „apps and their metadata may not include buttons, external links, or other calls to action” spre alt mijloc de plată. Cuvântul „metadata” contează: o descriere care anunță „mai ieftin pe site-ul nostru” intră și ea sub regulă. Unele țări, printre care Japonia, Brazilia și Coreea de Sud, au propriile programe, listate în documentația External Purchase.
Cum corectezi o respingere 3.1.1 și cum îi răspunzi lui Apple
- Găsește calea de acces. Mesajul menționează conținutul sau ecranul în cauză: conținut cumpărat în altă parte, buton, cod, link.
- Închide-o sau dublează-o. Fie scoți butonul sau codul, fie vinzi același conținut prin achiziție in-app.
- Invocă o excepție doar dacă e reală. Citează alineatul din 3.1.3 și explică în două fraze de ce cazul tău se încadrează.
- Dă-i reviewer-ului ce să testeze. Un cont demo și drumul până la paywall, în notele de review, cum explic în ghidul despre guideline 2.1.
Răspunzi în secțiunea App Review din App Store Connect, după procedura pentru a răspunde la App Review. Iată un model pentru cazul cel mai frecvent, un conținut cumpărat pe site. E un exemplu: înlocuiește build-ul, produsul și parcursul cu ale tale.
Hello,
Thank you for your review.
Issue: the app gave access to premium content purchased on our
website, without offering the same purchase in the app.
Fix in build X:
- Premium access is now available as an auto-renewable
subscription through in-app purchase, on the paywall.
- The "Subscribe on our website" button has been removed.
- A "Restore Purchases" button is available on the paywall.
How to verify: launch the app and open any premium screen.
The paywall shows the in-app purchase options.
Best regards,
Butonul și paywall-ul sunt în cod: ai nevoie de un build nou. Dacă rămâi convins că ești o excepție, Apple îți permite și să faci apel la App Review Board.
Integrează achiziția in-app fără să rescrii tot
Pentru un începător, drumul cel mai simplu e să creezi produsele în App Store Connect, apoi să le conectezi la aplicație cu RevenueCat: rețeta e în RevenueCat: cum configurezi un abonament in-app. Dacă eziți între cele două modele, citește abonament sau achiziție unică. Dacă construiești cu o unealtă no-code, verifică dacă știe să gestioneze achiziția in-app: e un punct din cum creezi o aplicație fără să programezi.
Imediat ce achiziția ta in-app e un abonament, se adaugă 3.1.2: suma facturată pusă în evidență, durata, reînnoirea, linkurile. Cele mai frecvente greșeli de ecran sunt în paywall iOS: 7 greșeli de începător.
Checklist-ul 3.1.1 înainte de trimitere
- Tot ce se deblochează în aplicație (funcție, conținut, nivel, monedă) se cumpără prin achiziție in-app.
- Niciun buton, link sau text nu trimite spre o plată externă, cu excepția vitrinei americane sau a unui program regional obținut.
- Descrierea paginii tale nu menționează niciun alt mijloc de plată.
- Un conținut vândut pe site-ul tău e de vânzare și prin achiziție in-app în aplicație.
- Nicio cheie de licență, niciun cod QR, cod propriu sau crypto nu deblochează nimic.
- Ca să oferi acces, folosești codurile de ofertă Apple.
- Creditele cumpărate nu expiră, iar un buton „Restore Purchases” funcționează.
- Fiecare cufăr sau extragere plătită își afișează probabilitățile înainte de cumpărare.
- Un produs fizic sau un serviciu în afara aplicației trece prin Apple Pay sau card, nu prin achiziția in-app.
- Notele tale de review spun unde se găsesc achizițiile și, dacă invoci o excepție, care anume.
Verifică-ți aplicația înainte de trimitere
Dacă aplicația ta tocmai a fost respinsă pe 3.1.1, Apple Review Kit te ajută să găsești regula citată, ce cere ea și un exemplu de corectură și de răspuns. Notele lui pentru tester acoperă achiziția in-app. Pentru o privire umană, rezervă o oră cu mine: citim mesajul Apple și căutăm calea de acces pe care a văzut-o. Demersul complet e pe pagina aplicație respinsă de Apple, iar configurarea achiziției pe pagina abonament in-app iOS.
Dacă îți pregătești prima lansare, fă-ți diagnosticul gratuit: pune pașii în ordine și îți trimite checklist-ul meu anti-respingere Apple. Ca să creezi o aplicație mobilă care vinde prin achiziție in-app de la început, iOS Kit pornește de la un cod în care paywall-ul și abonamentele sunt deja puse la punct.
Nimeni nu poate garanta că Apple îți va accepta aplicația. Ce pot face eu e să te ajut să alegi mijlocul de plată potrivit înainte să scrii codul.
Întrebări frecvente
Ce înseamnă „Guideline 3.1.1 - Business - Payments - In-App Purchase”?
E titlul complet al regulii despre achiziția in-app din mesajul Apple. Semnalează că aplicația ta dă acces la un conținut sau la o funcție digitală pe alt drum decât achiziția in-app: plată pe un site, cod, cheie de licență sau link spre o pagină de plată.
Pot pune un link spre site-ul meu ca să plătești mai puțin?
Pe vitrina din Statele Unite, da: regula permite butoane și linkuri fără entitlement. În Uniunea Europeană, e posibil cu entitlement-ul Apple și condițiile lui. În rest, în afara unui program regional, nici aplicația, nici pagina ei nu pot trimite spre alt mijloc de plată.
Pot debloca aplicația cu un cod promoțional?
Nu cu un cod propriu: 3.1.1 interzice mecanismele de deblocare proprii aplicației, cum ar fi cheile de licență. Folosește codurile de ofertă Apple, create în App Store Connect. Funcționează pentru abonamente și pentru celelalte tipuri de achiziții in-app.
E nevoie de achiziție in-app ca să vinzi un produs fizic sau un serviciu?
Nu. Un produs fizic sau un serviciu consumat în afara aplicației, cum ar fi o masă livrată sau o cursă, trebuie să treacă prin alt mijloc de plată, Apple Pay sau card bancar. Un curs live între două persoane se poate lipsi și el de ea, dar nu un curs live cu mai mulți participanți.
Un client abonat pe site-ul meu se poate conecta în aplicație?
Da, pentru un serviciu multiplatformă, cu condiția ca același acces să fie de vânzare și prin achiziție in-app în aplicație. E regula 3.1.3(b). Fără această ofertă în aplicație, ajungi la respingerea 3.1.1 tipică: un conținut cumpărat în altă parte și imposibil de cumpărat prin Apple.
E suficient RevenueCat ca să respecți 3.1.1?
RevenueCat se bazează pe achiziția in-app de la Apple, deci nu creează o problemă 3.1.1. Dar nu scoate un buton de plată externă sau un cod propriu pe care l-ar conține aplicația ta. Conformitatea trebuie verificată ecran cu ecran, și pe pagina ta din App Store.