Guideline 3.1.1: kada je kupnja unutar aplikacije obavezna
Autor: Mehdi Azizi
Objavljeno , 9 min
Guideline 3.1.1: svaki digitalni sadržaj ili funkcija koju otključavaš u aplikaciji ide preko Appleove kupnje u aplikaciji. Iznimke, pravila EU i SAD-a.
Guideline 3.1.1 nalaže Appleovu kupnju unutar aplikacije (in-app purchase) čim tvoja aplikacija otključava digitalni sadržaj ili funkciju: pretplatu, punu verziju, valutu u igri, premium sadržaj. Odbijanje po 3.1.1 znači da je Apple pronašao neki drugi ulaz do tog sadržaja: plaćanje na tvojoj stranici, licencni ključ, vlastiti kod, gumb prema stranici za plaćanje. Rješenje je kupnja unutar aplikacije, osim ako tvoj slučaj spada pod iznimku ili regionalno pravilo.
Objavljujem vlastite iOS aplikacije, a one koje imaju pretplatu prodaju je preko Appleove kupnje unutar aplikacije. Nikad nisam dobio odbijanje po 3.1.1 i neću ti tvrditi suprotno. Ovaj vodič se oslanja na službeni tekst, u verziji od 8. lipnja 2026. pročitanoj 15. listopada 2026., i na regionalne uvjete koje je Apple objavio. Srodan slučaj pretplata, s dva stvarna odbijanja, nalazi se u vodiču o guidelineu 3.1.2.
Što kaže guideline 3.1.1?
3.1.1, „In-App Purchase“, otvara dio 3.1 „Payments“ u App Review Guidelines. Otud i naslov maila: „Guideline 3.1.1 - Business - Payments - In-App Purchase“. Prva rečenica kaže bit: da bi otključao funkcije u aplikaciji, „you must use in-app purchase“, moraš koristiti kupnju unutar aplikacije. Apple navodi pretplate, valute u igrama, razine, premium sadržaj i punu verziju.
Sljedeća rečenica cilja na zaobilaženja. Aplikacija ne smije koristiti vlastiti mehanizam za otključavanje sadržaja: Apple izričito spominje licencne ključeve, markere proširene stvarnosti, QR kodove, kriptovalute i kripto novčanike.
Isto pravilo dodaje obveze koje se često zaborave:
- krediti i valute kupljeni kupnjom unutar aplikacije ne istječu, a svaka kupnja koja se može vratiti ima mehanizam za vraćanje;
- plaćena škrinja ili izvlačenje („loot box“) prikazuje šanse za svaku vrstu predmeta prije kupnje;
- digitalna poklon kartica, bon ili kupon prodaje se u aplikaciji kupnjom unutar aplikacije; fizička kartica poslana poštom može ići drugim putem;
- aplikacija bez pretplate može ponuditi vremenski ograničenu probu, u obliku besplatne kupnje unutar aplikacije nazvane „XX-day Trial“, koja prije početka navodi trajanje, što će se izgubiti i što će trebati platiti;
- napojnice developeru su moguće, preko kupnje unutar aplikacije.
Situacije koje izazivaju odbijanje po 3.1.1
| Što aplikacija radi | Zašto Apple odbija | Rješenje |
|---|---|---|
| Otključava sadržaj kupljen na tvojoj stranici | Nema ekvivalentne kupnje u aplikaciji | Prodavati ga i kupnjom unutar aplikacije |
| Prikazuje „Plati na našoj stranici“ | Upućivanje na drugo plaćanje | Ukloniti gumb, osim kod iznimke |
| Traži licencni ključ ili vlastiti kod | Zabranjen mehanizam otključavanja | Appleovi offer codes |
| Otključava za kriptovalutu | Zabranjen mehanizam otključavanja | Kupnja unutar aplikacije |
| Prodaje kredite koji istječu | Obveza iz 3.1.1 | Trajni krediti i vraćanje kupnji |
| Prodaje škrinju bez vjerojatnosti | Šanse nisu prikazane | Vjerojatnosti vidljive prije kupnje |
Prvi redak se najčešće krivo shvaća. U jednom odbijanju objavljenom na Appleovim forumima poruka kaže da aplikacija „accesses digital content purchased outside the app“, pristupa sadržaju kupljenom negdje drugdje, „but that content isn't available to purchase using in-app purchase“. Apple ti ne zamjera što imaš stranicu koja prodaje: zamjera ti što aplikacija ne nudi istu kupnju preko Applea.
Za besplatan pristup ili popust Apple ima vlastiti sustav, offer codes. Prema StoreKit dokumentaciji, rade za sve vrste kupnji unutar aplikacije: pretplate, potrošne i nepotrošne. Stvaraš ih u App Store Connectu, a korisnik ih unosi u App Storeu ili u tvojoj aplikaciji.
Iznimke: kada kupnja unutar aplikacije nije obavezna
Pravilo 3.1.3 navodi aplikacije koje smiju koristiti drugi način plaćanja. Evo tablice koju koristim da vidim gdje projekt spada.
| Tvoj slučaj | Obavezna kupnja u aplikaciji? | Pravilo |
|---|---|---|
| Pretplata, puna verzija, digitalni sadržaj | Da | 3.1.1 |
| Fizički proizvod, usluga korištena izvan aplikacije | Ne, drugi način je obavezan | 3.1.3(e) |
| Satovi ili konzultacije uživo, jedan na jedan | Ne | 3.1.3(d) |
| Satovi uživo za više osoba | Da | 3.1.3(d) |
| Tisak, knjige, glazba, video kupljeni drugdje | Ne, za pristup | 3.1.3(a) |
| Višeplatformska usluga kupljena na tvojoj stranici | Pristup dopušten ako je i u aplikaciji | 3.1.3(b) |
| Alat prodan tvrtki za njezine zaposlenike | Ne | 3.1.3(c) |
| Besplatna prateća aplikacija web alata, bez kupnje | Ne | 3.1.3(f) |
Dva ograničenja. Aplikacija koja koristi iznimku ne smije, unutar aplikacije, guranje prema drugom načinu plaćanja, osim na američkom storefrontu i u slučajevima koje Apple predviđa. S druge strane, Apple navodi da „Developers can send communications outside of the app“: korisnicima možeš pisati izvan aplikacije, na primjer e-mailom.
Pravila po regijama u listopadu 2026.
Ovdje se tekstovi brzo mijenjaju. Ono što slijedi temelji se na Appleovim tekstovima pročitanima 15. listopada 2026.: ponovno ih pročitaj prije nego što programiraš vanjsko plaćanje.
| Regija | Što je dopušteno uz kupnju unutar aplikacije |
|---|---|
| SAD | Gumbi i linkovi prema drugom plaćanju, bez entitlementa |
| Europska unija | Alternativno plaćanje u aplikaciji i ponude izvan nje, uz uvjete |
| Japan, Brazil, Južna Koreja | Vlastiti programi, uz zahtjev za entitlement |
| Ostale zemlje | Nikakav gumb, link ni poziv na drugo plaćanje |
SAD
Pravilo 3.1.1(a) navodi da entitlementi „are not required for developers to include buttons, external links, or other calls to action in their United States storefront apps“. Na američkom storefrontu gumb prema tvojoj stranici je dakle dopušten. Tvoj binary je isti svugdje: ako dodaš taj gumb, aplikacija mora znati na kojem je storefrontu korisnik. StoreKit to daje preko Storefront.
Europska unija
Novi uvjeti vrijede od 1. listopada 2026., prema Appleovoj stranici o opcijama plaćanja u EU. Možeš zadržati samo kupnju unutar aplikacije, bez ikakvih promjena. Možeš i ponuditi pružatelja plaćanja u aplikaciji ili ponude izvan aplikacije, na primjer prema svojoj stranici. Apple tada, među ostalim, traži:
- entitlement „StoreKit External Purchases or Offers“ i, za link ili plaćanje u aplikaciji, sistemski informativni prozor;
- kupnja unutar aplikacije barem jednako vidljiva kao druga opcija, kad su obje na ekranu;
- nikakvo spominjanje tih plaćanja na tvojoj App Store stranici;
- roditeljski nadzor za maloljetnike i nikakve ponude izvan aplikacije prije 13. godine, ili više, ovisno o zemlji;
- isti izbor na svim EU storefrontovima tijekom 12 mjeseci.
Ovisno o odabranoj opciji primjenjuju se provizije. Pročitaj njihov odjeljak na istoj stranici prije nego što odlučiš.
Ostale zemlje
Drugdje pravilo ostaje strogo: „apps and their metadata may not include buttons, external links, or other calls to action“ prema drugom načinu plaćanja. Riječ „metadata“ je bitna: opis koji najavljuje „jeftinije na našoj stranici“ također pada pod pravilo. Neke zemlje, među njima Japan, Brazil i Južna Koreja, imaju vlastite programe, navedene u External Purchase dokumentaciji.
Kako ispraviti odbijanje po 3.1.1 i odgovoriti Appleu
- Pronađi ulaz. Poruka navodi sporni sadržaj ili ekran: sadržaj kupljen drugdje, gumb, kod, link.
- Zatvori ga ili ga udvostruči. Ili ukloniš gumb ili kod, ili isti sadržaj prodaješ kupnjom unutar aplikacije.
- Pozovi se na iznimku samo ako stvarno postoji. Navedi točku iz 3.1.3 i u dvije rečenice objasni zašto tvoj slučaj spada pod nju.
- Daj recenzentu nešto za testiranje. Demo račun i put do paywalla, u bilješkama za review, kako objašnjavam u vodiču o guidelineu 2.1.
Odgovaraš u odjeljku App Review u App Store Connectu, prema postupku za odgovor App Reviewu. Evo predloška za najčešći slučaj, sadržaj kupljen na stranici. To je primjer: zamijeni build, proizvod i put svojima.
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,
Gumb i paywall su u kodu: treba ti novi build. Ako si i dalje uvjeren da je tvoj slučaj iznimka, Apple ti omogućuje i žalbu App Review Boardu.
Kako spojiti kupnju unutar aplikacije bez prepisivanja svega
Za početnika je najjednostavnije stvoriti proizvode u App Store Connectu, a zatim ih povezati s aplikacijom preko RevenueCata: recept je u RevenueCat: postavljanje pretplate u aplikaciji. Ako se dvoumiš između dva modela, pročitaj pretplata ili jednokratna kupnja. Ako gradiš s no-code alatom, provjeri podržava li kupnju unutar aplikacije: to je jedna od točaka u izradi aplikacije bez kodiranja.
Čim je tvoja kupnja unutar aplikacije pretplata, dodaje se 3.1.2: istaknut iznos naplate, trajanje, obnavljanje, linkovi. Najčešće greške na ekranu su u iOS paywall: 7 početničkih grešaka.
Check-lista za 3.1.1 prije slanja
- Sve što se otključava u aplikaciji (funkcija, sadržaj, razina, valuta) kupuje se kupnjom unutar aplikacije.
- Nijedan gumb, link ni tekst ne upućuje na vanjsko plaćanje, osim na američkom storefrontu ili uz dobiveni regionalni program.
- Opis na tvojoj App Store stranici ne spominje nijedan drugi način plaćanja.
- Sadržaj koji prodaješ na svojoj stranici prodaje se i kupnjom unutar aplikacije.
- Nijedan licencni ključ, QR kod, vlastiti kod ni kripto ne otključava ništa.
- Za davanje pristupa koristiš Appleove offer codes.
- Kupljeni krediti ne istječu, a gumb „Restore Purchases“ radi.
- Svaka plaćena škrinja ili izvlačenje prikazuje vjerojatnosti prije kupnje.
- Fizički proizvod ili usluga izvan aplikacije ide preko Apple Paya ili kartice, ne preko kupnje unutar aplikacije.
- Tvoje bilješke za review kažu gdje se nalaze kupnje i, ako se pozivaš na iznimku, na koju.
Provjeri svoju aplikaciju prije slanja
Ako ti je aplikacija upravo odbijena po 3.1.1, Apple Review Kit pomaže ti pronaći navedeno pravilo, što ono traži, te primjer ispravka i odgovora. Njegove bilješke za testera pokrivaju kupnju unutar aplikacije. Ako želiš ljudski pogled, rezerviraj sat vremena sa mnom: zajedno čitamo Appleovu poruku i tražimo ulaz koji je uočio. Cijeli postupak je na stranici aplikacija odbijena od Applea, a postavljanje kupnje na stranici iOS pretplata u aplikaciji.
Ako pripremaš svoje prvo izdanje, napravi besplatnu dijagnostiku: posložit će korake redom i poslati ti moju check-listu protiv Appleovih odbijanja. Da napraviš mobilnu aplikaciju koja od početka prodaje kupnjom unutar aplikacije, iOS Kit kreće od koda u kojem su paywall i pretplate već postavljeni.
Nitko ne može jamčiti da će Apple prihvatiti tvoju aplikaciju. Ono što ja mogu jest pomoći ti odabrati pravi način plaćanja prije nego što napišeš kod.
Česta pitanja
Što znači „Guideline 3.1.1 - Business - Payments - In-App Purchase“?
To je puni naziv pravila o kupnji unutar aplikacije u Appleovoj poruci. Znači da tvoja aplikacija daje pristup digitalnom sadržaju ili funkciji nekim drugim putem osim kupnje unutar aplikacije: plaćanjem na stranici, kodom, licencnim ključem ili linkom prema stranici za plaćanje.
Smijem li staviti link na svoju stranicu gdje je plaćanje jeftinije?
Na američkom storefrontu da: pravilo dopušta gumbe i linkove bez entitlementa. U Europskoj uniji je moguće uz Appleov entitlement i njegove uvjete. Drugdje, osim uz regionalni program, ni aplikacija ni njezina stranica ne smiju upućivati na drugi način plaćanja.
Mogu li otključati aplikaciju promo kodom?
Ne vlastitim kodom: 3.1.1 zabranjuje mehanizme otključavanja svojstvene aplikaciji, poput licencnih ključeva. Koristi Appleove offer codes, stvorene u App Store Connectu. Rade za pretplate i za ostale vrste kupnji unutar aplikacije.
Treba li kupnja unutar aplikacije za prodaju fizičkog proizvoda ili usluge?
Ne. Fizički proizvod ili usluga korištena izvan aplikacije, poput dostavljenog obroka ili vožnje, mora ići drugim načinom plaćanja, Apple Payom ili bankovnom karticom. Sat uživo između dvije osobe također može bez nje, ali sat uživo za više osoba ne može.
Može li se klijent pretplaćen na mojoj stranici prijaviti u aplikaciju?
Da, za višeplatformsku uslugu, pod uvjetom da se isti pristup prodaje i kupnjom unutar aplikacije. To je pravilo 3.1.3(b). Bez te ponude u aplikaciji vraćaš se na tipično odbijanje po 3.1.1: sadržaj kupljen drugdje koji se ne može kupiti preko Applea.
Je li RevenueCat dovoljan za poštivanje 3.1.1?
RevenueCat se oslanja na Appleovu kupnju unutar aplikacije, pa ne stvara problem s 3.1.1. Ali time ne uklanja gumb za vanjsko plaćanje ili vlastiti kod koji tvoja aplikacija možda sadrži. Usklađenost i dalje trebaš provjeriti ekran po ekran, i na svojoj App Store stranici.