Guideline 3.1.1: kapan in-app purchase wajib di App Store
Oleh Mehdi Azizi
Terbit , 9 mnt
Guideline 3.1.1: semua konten atau fitur digital yang dibuka di app wajib lewat in-app purchase Apple. Pengecualian, aturan UE dan AS, serta cara memperbaikinya.
Guideline 3.1.1 mewajibkan in-app purchase Apple begitu app kamu membuka konten atau fitur digital: langganan, versi lengkap, mata uang game, konten premium. Penolakan 3.1.1 berarti Apple menemukan pintu masuk lain ke konten itu: pembayaran di situs kamu, kunci lisensi, kode buatan sendiri, tombol ke halaman pembayaran. Perbaikannya lewat in-app purchase, kecuali kasus kamu termasuk pengecualian atau aturan regional.
Saya merilis app iOS saya sendiri, dan app yang punya langganan menjualnya lewat in-app purchase Apple. Saya belum pernah kena penolakan 3.1.1, dan saya tidak akan pura-pura pernah. Panduan ini berpegang pada teks resmi, versi 8 Juni 2026 yang saya baca pada 15 Oktober 2026, dan pada ketentuan regional yang dipublikasikan Apple. Kasus tetangganya, soal langganan, dengan dua penolakan nyata, ada di panduan tentang guideline 3.1.2.
Apa isi guideline 3.1.1?
Aturan 3.1.1, "In-App Purchase", membuka bagian 3.1 "Payments" dari App Review Guidelines. Makanya judul emailnya: "Guideline 3.1.1 - Business - Payments - In-App Purchase". Kalimat pertamanya sudah merangkum intinya: untuk membuka fitur di app kamu, "you must use in-app purchase", kamu wajib memakai in-app purchase. Apple menyebut langganan, mata uang game, level, konten premium, dan versi lengkap.
Kalimat berikutnya menyasar cara-cara mengakali aturan. App tidak boleh memakai mekanisme sendiri untuk membuka konten: Apple menyebut kunci lisensi, penanda augmented reality, QR code, mata uang kripto, dan dompet kripto.
Aturan yang sama menambahkan kewajiban yang sering terlupa:
- kredit dan mata uang yang dibeli lewat in-app purchase tidak boleh kedaluwarsa, dan setiap pembelian yang bisa dipulihkan harus punya mekanisme pemulihan;
- peti atau undian berbayar ("loot box") harus menampilkan peluang mendapatkan tiap jenis item sebelum pembelian;
- kartu hadiah, voucher, atau kupon digital dijual di dalam app lewat in-app purchase; kartu fisik yang dikirim lewat pos boleh memakai cara lain;
- app tanpa langganan boleh menawarkan uji coba terbatas waktu, dalam bentuk in-app purchase gratis bernama "XX-day Trial", yang sebelum dimulai menjelaskan durasinya, apa yang akan hilang, dan apa yang harus dibayar;
- tip untuk developer diperbolehkan, lewat in-app purchase.
Situasi yang memicu penolakan 3.1.1
| Yang dilakukan app | Kenapa Apple menolak | Perbaikannya |
|---|---|---|
| Membuka konten yang dibeli di situs kamu | Tidak ada in-app purchase setara | Jual juga lewat in-app purchase |
| Menampilkan "Bayar di situs kami" | Mengarahkan ke pembayaran lain | Hapus tombolnya, kecuali ada pengecualian |
| Meminta kunci lisensi atau kode buatan sendiri | Mekanisme pembuka yang dilarang | Offer code dari Apple |
| Membuka konten dengan bayaran kripto | Mekanisme pembuka yang dilarang | In-app purchase |
| Menjual kredit yang bisa kedaluwarsa | Kewajiban dari 3.1.1 | Kredit permanen dan pemulihan |
| Menjual peti tanpa probabilitas | Peluang tidak ditampilkan | Probabilitas terlihat sebelum pembelian |
Baris pertama paling sering disalahpahami. Dalam satu penolakan yang dibagikan di forum Apple, pesannya menyebut app "accesses digital content purchased outside the app", mengakses konten yang dibeli di tempat lain, "but that content isn't available to purchase using in-app purchase". Apple tidak mempermasalahkan kamu punya situs yang berjualan: yang dipermasalahkan adalah app tidak menawarkan pembelian yang sama lewat Apple.
Untuk memberi akses gratis atau diskon, Apple punya sistem sendiri, yaitu offer code. Menurut dokumentasi StoreKit, offer code berlaku untuk semua jenis in-app purchase: langganan, consumable, dan non-consumable. Kamu membuatnya di App Store Connect, lalu pengguna memasukkannya di App Store atau di app kamu.
Pengecualian: kapan in-app purchase tidak diwajibkan
Aturan 3.1.3 mendaftar app yang boleh memakai metode pembayaran lain. Ini tabel yang saya pakai untuk menentukan posisi sebuah proyek.
| Kasus kamu | Wajib in-app purchase? | Aturan |
|---|---|---|
| Langganan, versi lengkap, konten digital | Ya | 3.1.1 |
| Produk fisik, layanan yang dipakai di luar app | Tidak, wajib cara lain | 3.1.3(e) |
| Kelas atau konsultasi langsung, satu lawan satu | Tidak | 3.1.3(d) |
| Kelas langsung untuk banyak peserta | Ya | 3.1.3(d) |
| Majalah, buku, musik, video yang dibeli di tempat lain | Tidak untuk mengaksesnya | 3.1.3(a) |
| Layanan multiplatform yang dibeli di situs kamu | Akses boleh jika juga ada di in-app purchase | 3.1.3(b) |
| Tool yang dijual ke perusahaan untuk karyawannya | Tidak | 3.1.3(c) |
| App gratis pendamping tool web, tanpa pembelian | Tidak | 3.1.3(f) |
Ada dua batasan. App yang memanfaatkan pengecualian tidak boleh, di dalam app, mendorong ke metode pembayaran lain, kecuali di storefront AS dan kasus yang diatur Apple. Sebaliknya, Apple menegaskan bahwa "Developers can send communications outside of the app": kamu boleh menghubungi pengguna di luar app, misalnya lewat email.
Aturan per wilayah per Oktober 2026
Di bagian ini, teksnya cepat berubah. Isi di bawah mengikuti teks Apple yang saya baca pada 15 Oktober 2026: baca ulang sebelum kamu membuat kode pembayaran eksternal.
| Wilayah | Yang diizinkan selain in-app purchase |
|---|---|
| Amerika Serikat | Tombol dan link ke pembayaran lain, tanpa entitlement |
| Uni Eropa | Pembayaran alternatif di app dan penawaran di luar app, dengan syarat |
| Jepang, Brasil, Korea Selatan | Program masing-masing, dengan mengajukan entitlement |
| Negara lain | Tidak ada tombol, link, atau ajakan ke pembayaran lain |
Amerika Serikat
Aturan 3.1.1(a) menyebut bahwa entitlement "are not required for developers to include buttons, external links, or other calls to action in their United States storefront apps". Jadi di storefront AS, tombol ke situs kamu diperbolehkan. Binary kamu sama di semua negara: kalau kamu menambahkan tombol ini, app harus tahu pengguna berada di storefront mana. StoreKit menyediakannya lewat Storefront.
Uni Eropa
Ketentuan baru berlaku sejak 1 Oktober 2026, menurut halaman Apple tentang opsi pembayaran di UE. Kamu bisa tetap memakai in-app purchase saja, tanpa mengubah apa pun. Kamu juga bisa menawarkan penyedia pembayaran di dalam app, atau penawaran di luar app, misalnya ke situs kamu. Dalam hal ini Apple antara lain mewajibkan:
- entitlement "StoreKit External Purchases or Offers" dan, untuk link atau pembayaran di dalam app, jendela informasi dari sistem;
- in-app purchase minimal sama terlihatnya dengan opsi lain, jika keduanya tampil di layar;
- tidak ada penyebutan pembayaran ini di halaman App Store kamu;
- kontrol orang tua untuk anak di bawah umur, dan tidak ada penawaran di luar app untuk usia di bawah 13 tahun, atau lebih tergantung negaranya;
- pilihan yang sama di semua storefront UE selama 12 bulan.
Ada komisi yang berlaku tergantung opsi yang dipilih. Baca bagian tentang itu di halaman yang sama sebelum memutuskan.
Negara lain
Di tempat lain, aturannya tetap ketat: "apps and their metadata may not include buttons, external links, or other calls to action" ke metode pembayaran lain. Kata "metadata" itu penting: deskripsi yang menulis "lebih murah di situs kami" juga kena aturan ini. Beberapa negara, termasuk Jepang, Brasil, dan Korea Selatan, punya program sendiri yang tercantum di dokumentasi External Purchase.
Memperbaiki penolakan 3.1.1 dan membalas Apple
- Temukan pintu masuknya. Pesan Apple menyebut konten atau layar yang bermasalah: konten yang dibeli di tempat lain, tombol, kode, link.
- Tutup atau gandakan. Kamu hapus tombol atau kodenya, atau kamu jual konten yang sama lewat in-app purchase.
- Ajukan pengecualian hanya kalau memang berlaku. Sebutkan poin dari 3.1.3 dan jelaskan dalam dua kalimat kenapa kasus kamu termasuk di situ.
- Beri reviewer bahan untuk menguji. Akun demo dan jalur menuju paywall, di catatan review, seperti yang saya jelaskan di panduan tentang guideline 2.1.
Kamu membalas di bagian App Review di App Store Connect, sesuai prosedur untuk membalas App Review. Ini template untuk kasus paling umum, yaitu konten yang dibeli di situs. Ini hanya contoh: ganti build, produk, dan alurnya dengan milikmu.
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,
Tombol dan paywall ada di dalam kode: kamu butuh build baru. Kalau kamu tetap yakin kasusmu termasuk pengecualian, Apple juga memungkinkan kamu mengajukan banding ke App Review Board.
Memasang in-app purchase tanpa menulis ulang semuanya
Untuk pemula, jalur paling mudah adalah membuat produk di App Store Connect, lalu menghubungkannya ke app dengan RevenueCat: resepnya ada di RevenueCat: memasang langganan in-app. Kalau kamu ragu memilih di antara dua model, baca langganan atau pembelian sekali bayar. Kalau kamu membangun dengan tool tanpa kode, pastikan tool itu mendukung in-app purchase: ini salah satu poin di membuat aplikasi tanpa coding.
Begitu in-app purchase kamu berupa langganan, aturan 3.1.2 ikut berlaku: jumlah tagihan ditampilkan menonjol, durasi, perpanjangan, link. Kesalahan layar yang paling sering ada di paywall iOS: 7 kesalahan pemula.
Checklist 3.1.1 sebelum submit
- Semua yang bisa dibuka di app (fitur, konten, level, mata uang) dibeli lewat in-app purchase.
- Tidak ada tombol, link, atau teks yang mengarah ke pembayaran eksternal, kecuali storefront AS atau program regional yang sudah kamu dapatkan.
- Deskripsi di halaman app kamu tidak menyebut metode pembayaran lain.
- Konten yang dijual di situs kamu juga dijual lewat in-app purchase di app.
- Tidak ada kunci lisensi, QR code, kode buatan sendiri, atau kripto yang membuka apa pun.
- Untuk memberi akses, kamu memakai offer code dari Apple.
- Kredit yang dibeli tidak kedaluwarsa, dan tombol "Restore Purchases" berfungsi.
- Setiap peti atau undian berbayar menampilkan probabilitasnya sebelum pembelian.
- Produk fisik atau layanan di luar app dibayar lewat Apple Pay atau kartu, bukan lewat in-app purchase.
- Catatan review kamu menjelaskan di mana pembelian bisa ditemukan dan, jika kamu mengajukan pengecualian, pengecualian yang mana.
Cek app kamu sebelum dikirim
Kalau app kamu baru ditolak karena 3.1.1, Apple Review Kit membantumu menemukan aturan yang disebut, apa yang dimintanya, serta contoh perbaikan dan balasan. Catatan untuk penguji di dalamnya mencakup in-app purchase. Kalau butuh pendapat langsung, pesan satu jam bersama saya: kita baca pesan Apple dan cari pintu masuk yang dilihatnya. Langkah lengkapnya ada di halaman aplikasi ditolak Apple, dan pemasangan pembeliannya di halaman langganan in-app iOS.
Kalau kamu sedang menyiapkan rilis pertama, ikuti diagnostik gratis: diagnostik ini mengurutkan langkah-langkahnya dan mengirimkan checklist anti-penolakan Apple dari saya. Untuk membuat aplikasi mobile yang berjualan lewat in-app purchase sejak awal, iOS Kit dimulai dari kode yang sudah punya paywall dan langganan.
Tidak ada yang bisa menjamin Apple akan menerima app kamu. Yang bisa saya lakukan adalah membantumu memilih metode pembayaran yang tepat sebelum menulis kode.
Pertanyaan umum
Apa arti "Guideline 3.1.1 - Business - Payments - In-App Purchase"?
Itu judul lengkap aturan tentang in-app purchase di pesan Apple. Artinya app kamu memberi akses ke konten atau fitur digital lewat jalur selain in-app purchase: pembayaran di situs, kode, kunci lisensi, atau link ke halaman pembayaran.
Bolehkah memasang link ke situs sendiri supaya bayar lebih murah?
Di storefront Amerika Serikat, boleh: aturannya mengizinkan tombol dan link tanpa entitlement. Di Uni Eropa, bisa dengan entitlement Apple dan syarat-syaratnya. Di tempat lain, kecuali ada program regional, app maupun halamannya tidak boleh mengarah ke metode pembayaran lain.
Bisakah membuka app dengan kode promo?
Tidak dengan kode buatan sendiri: 3.1.1 melarang mekanisme pembuka milik app sendiri, seperti kunci lisensi. Pakai offer code dari Apple, yang dibuat di App Store Connect. Offer code berlaku untuk langganan dan jenis in-app purchase lainnya.
Apakah perlu in-app purchase untuk menjual produk fisik atau layanan?
Tidak. Produk fisik atau layanan yang dipakai di luar app, seperti makanan yang diantar atau perjalanan, harus memakai metode pembayaran lain, Apple Pay atau kartu bank. Kelas langsung antara dua orang juga boleh tanpa in-app purchase, tapi tidak untuk kelas langsung dengan banyak peserta.
Bisakah pelanggan yang berlangganan di situs saya login di app?
Bisa untuk layanan multiplatform, asalkan akses yang sama juga dijual lewat in-app purchase di app. Itu aturan 3.1.3(b). Tanpa penawaran di dalam app itu, kamu kembali ke penolakan 3.1.1 yang khas: konten dibeli di tempat lain dan tidak bisa dibeli lewat Apple.
Apakah RevenueCat cukup untuk mematuhi 3.1.1?
RevenueCat berjalan di atas in-app purchase Apple, jadi tidak menimbulkan masalah 3.1.1. Tapi RevenueCat tidak menghapus tombol pembayaran eksternal atau kode buatan sendiri yang ada di app kamu. Kepatuhan tetap harus kamu cek layar demi layar, dan di halaman app kamu.