# Guideline 3.1.2: aplikasi ditolak karena langganan

> Guideline 3.1.2: jumlah yang ditagih harus jadi harga paling menonjol di paywall, lengkap dengan durasi, perpanjangan, dan link syarat. Dua penolakan nyata.

Halaman asli: [Guideline 3.1.2: aplikasi ditolak karena langganan](https://devoria.fr/id/blog/guideline-3-1-2-aplikasi-ditolak-langganan)
Penulis: [Mehdi Azizi](https://devoria.fr/id/mehdi-azizi)
Terbit: 2026-10-17
Revisi konten terakhir: 2026-10-17


Guideline 3.1.2 mengatur langganan yang diperpanjang otomatis. Kalau Apple menyebut guideline ini, cek dua hal: **jumlah yang benar-benar ditagih harus jadi harga paling menonjol di paywall kamu**, dan aplikasi serta halaman App Store-nya harus mencantumkan durasi, harga, dan link yang berfungsi ke syarat penggunaan dan kebijakan privasi kamu.

Saya menerima penolakan ini di dua aplikasi saya pada Oktober 2026: Solys tanggal 10, TradaZen tanggal 12. Masalahnya sama: harga per minggu ditulis besar, jumlah yang benar-benar ditagih ditulis kecil. Berikut isi aturannya, dua kasus itu, lalu checklist yang sekarang saya pakai. Untuk alasan penolakan lain, baca [kenapa Apple menolak aplikasi](https://devoria.fr/id/blog/aplikasi-ditolak-apple-penyebab-solusi).

## Apa isi guideline 3.1.2?

Guideline 3.1.2, "Subscriptions", ada di bagian 3 "Business" dari [App Review Guidelines](https://developer.apple.com/app-store/review/guidelines/#3.1.2), subbagian 3.1 "Payments". Makanya judul email-nya: "Guideline 3.1.2 - Business - Payments - Subscriptions". Aturan ini punya tiga poin, dan **huruf di dalam kurung memberi tahu kamu harus mencari di mana**.

| Poin                              | Yang diminta Apple                    | Penolakan yang umum                          |
| --------------------------------- | ------------------------------------- | -------------------------------------------- |
| 3.1.2(a) Permissible uses         | Nilai berkelanjutan, minimal 7 hari   | Langganan tanpa konten yang berkembang       |
| 3.1.2(b) Upgrades and Downgrades  | Ganti paket tanpa tagihan ganda       | Dua paket dibayar bersamaan                  |
| 3.1.2(c) Subscription Information | Apa yang didapat, dengan harga berapa | Harga hitungan lebih besar dari yang ditagih |

Teks [3.1.2(c)](https://developer.apple.com/app-store/review/guidelines/#3.1.2c) itu pendek. Sebelum meminta seseorang berlangganan, kamu harus "clearly describe what the user will get for the price": menjelaskan dengan jelas apa yang dia dapat dengan harga itu. Lalu aturan ini merujuk ke lampiran 2 (Schedule 2) dari [perjanjian lisensi program developer](https://developer.apple.com/support/terms/apple-developer-program-license-agreement/#S2). Lampiran itu mendaftar apa saja yang harus kamu tampilkan "clearly and conspicuously", jelas dan mudah terlihat:

- judul langganan;
- durasinya;
- harganya, dan harga per unit kalau relevan;
- link ke kebijakan privasi dan syarat penggunaan kamu, yang bisa diakses di dalam aplikasi.

Aturan soal ukuran harga ada di [halaman Apple tentang langganan](https://developer.apple.com/app-store/subscriptions/). Di alur pembelian, "the amount that will be billed must be the most prominent pricing element in the layout": jumlah yang akan ditagih harus jadi elemen harga yang paling menonjol. Harga setara per bulan atau info penghematan tetap boleh, asalkan posisinya sekunder dan ukurannya lebih kecil. Halaman yang sama juga meminta, untuk uji coba gratis, agar durasinya dan harga yang ditagih setelahnya dicantumkan.

## Dua penolakan 3.1.2(c) yang saya terima

### Solys: 0,38 € besar, 19,99 € kecil

Solys adalah alarm saya yang "menidurkan" media sosial kamu. Di paywall onboarding, kartu "Tahunan" menampilkan "0,38 €/mgg" dengan ukuran 21 poin dan tebal. Di bawahnya, 15 poin: "atau 19,99 €/thn". Padahal yang ditagih 19,99 €, bukan 0,38 €.

Tanggal 10 Oktober 2026, Apple menolak versi itu dengan menyebut 3.1.2(c). Pesannya meminta jumlah yang ditagih jadi elemen harga yang paling jelas dan paling menonjol. Uji coba gratis, harga perkenalan, dan harga hitungan harus berada di bawahnya. Apple menyebut kriterianya: font, ukuran, warna, dan posisi.

Saya sengaja mempertahankan tampilan itu: versi TradaZen sebelumnya, dengan prinsip yang sama, pernah diterima. Itu taruhan, dan harganya satu siklus review.

**Perbaikannya**: "19,99 €/thn" ditulis besar, "atau 0,38 €/mgg" jadi keterangan abu-abu di bawahnya, di 30 bahasa aplikasi. Karena paywall ada di kode, saya perlu build baru sebelum mengirim ulang versinya.

![Timbangan menimbang dua harga di paywall Solys, yang dicetak jadi balok timah. Sebelum: "0,38 €/mgg" 21 poin lebih berat dari "atau 19,99 €/thn" 15 poin, dan jarumnya menunjuk ditolak; sesudah: "19,99 €/thn" 21 poin lebih berat, dan jarumnya menunjuk sesuai.](https://devoria.fr/ios/figures/balance-3-1-2c.svg)

### TradaZen: alasan yang sama, dua hari kemudian

TradaZen adalah simulator trading saya. Tanggal 12 Oktober 2026, versi 1.5.1 ditolak karena aturan yang sama. Pesannya menyebut harga "weekly calculated" yang ditampilkan "more clearly and conspicuously than the billed amount": harga setara per minggu lebih menonjol daripada jumlah yang ditagih.

Perbaikan pertama saya tidak cukup, dan saya menyadarinya sebelum mengirim. Saya mengecilkan "0,92 €/mgg" tapi tetap di kanan, di baris harga. Padahal kartu langganan mingguan menampilkan harga aslinya di kolom yang sama: "8,99 €/mgg". Dua angka itu terbaca setara. **Harga hitungan yang ditaruh di kolom harga asli akan terbaca sebagai harga yang ditagih**, walaupun kecil.

**Perbaikan yang dipakai**: setiap kartu menampilkan jumlah yang ditagih dengan besar, di kanan. Harga per minggu jadi keterangan abu-abu di bawahnya. Di kiri, hanya nama paket. Di review berikutnya, Apple tidak lagi menyebut 3.1.2(c).

Pelajaran lain dari aplikasi ini ada di [studi kasus TradaZen](https://devoria.fr/id/blog/studi-kasus-tradazen-meluncurkan-aplikasi-iphone).

## Yang ditolak Apple, yang lolos

Berikut tampilan aslinya, berurutan, beserta hasilnya.

| Tampilan harga                                                    | Hasil                                   |
| ----------------------------------------------------------------- | --------------------------------------- |
| TradaZen, versi sebelumnya: harga per minggu ditonjolkan          | Diterima di review sebelumnya           |
| Solys: "0,38 €/mgg" tebal, "19,99 €/thn" di bawahnya              | Ditolak 10/10/2026, 3.1.2(c)            |
| TradaZen 1.5.1: harga per minggu lebih menonjol dari yang ditagih | Ditolak 12/10/2026, 3.1.2(c)            |
| TradaZen: harga per minggu dikecilkan, tapi di kolom harga        | Saya batalkan sebelum dikirim           |
| TradaZen: yang ditagih besar di kanan, per minggu jadi keterangan | Tidak disebut lagi di review berikutnya |
| Solys: "19,99 €/thn" besar, per minggu jadi keterangan abu-abu    | Diperbaiki dan dikirim ulang ke Apple   |

Baris pertama yang paling penting. **Review yang lolos tidak menjamin paywall kamu lolos di review berikutnya.** Setiap versi diperiksa lagi oleh reviewer, yang bisa membaca aturan lebih ketat dari sebelumnya. Satu-satunya tampilan yang aman adalah yang mengikuti teks aturannya.

> Jumlah yang ditagih adalah satu-satunya harga yang ditulis besar. Semua harga setara, per minggu, per bulan, atau per hari, jadi keterangan yang lebih kecil dan lebih pudar, tidak pernah di posisinya.

## Checklist paywall yang sesuai 3.1.2

Ini daftar yang sekarang saya jalankan di setiap paywall aplikasi saya, sebelum setiap pengiriman:

- Di setiap kartu, jumlah yang ditagih adalah harga paling besar, paling kontras, dan posisinya paling baik.
- Semua harga hitungan (per minggu, per bulan, per hari) jadi keterangan, lebih kecil dan lebih pudar, di bawah jumlah yang ditagih.
- Tidak ada harga hitungan di kolom tempat paket lain menampilkan harga aslinya.
- Durasi ditulis jelas: "per tahun", "per minggu".
- Uji coba gratis menyebut durasinya dan jumlah yang ditagih saat uji coba berakhir.
- Ada kalimat yang menyebut langganan diperpanjang otomatis dan bisa dibatalkan di pengaturan akun Apple.
- Apa yang dibuka oleh langganan ditulis sebelum tombol beli.
- Tombol "Restore Purchases" terlihat di paywall.
- Link ke syarat penggunaan dan kebijakan privasi ada di paywall dan bisa dibuka.
- Kalau kamu menawarkan beberapa paket, semuanya ada di satu grup langganan, seperti saran Apple.
- Tampilan dicek di iPhone terkecil dan dengan harga terpanjang. Di TradaZen, saya mengetes harga dalam dong Vietnam: angka yang pindah baris merusak hierarkinya.

Kalau kamu pakai paywall RevenueCat, [dokumentasi RevenueCat](https://www.revenuecat.com/docs/tools/paywalls/creating-paywalls/app-review) memberi peringatan yang sama: variabel harga bulanan saja tidak cukup kalau jumlah yang ditagih dan periodenya tidak muncul di tempat lain. Integrasi lengkapnya ada di [RevenueCat: memasang langganan in-app](https://devoria.fr/id/blog/revenuecat-langganan-in-app-ios), dan kesalahan desainnya di [paywall iOS: 7 kesalahan pemula](https://devoria.fr/id/blog/paywall-ios-kesalahan-pemula-penjualan).

## Link syarat penggunaan dan privasi: di aplikasi dan di halaman App Store

Bentuk penolakan 3.1.2 lainnya bukan soal paywall, tapi metadata. Pesan yang dibagikan developer di [forum Apple](https://developer.apple.com/forums/thread/807082) menjelaskan tempat yang diharapkan: link kebijakan privasi di kolom khusus di App Store Connect, dan link syarat penggunaan (EULA) di deskripsi atau di kolom EULA.

Jebakannya ada di perjanjian standar. Menurut [bantuan App Store Connect](https://developer.apple.com/help/app-store-connect/manage-app-information/provide-a-custom-license-agreement), kalau kamu tidak menambahkan perjanjian khusus, perjanjian standar Apple yang berlaku dan "the license agreement link isn't shown on your App Store product page": tidak ada link yang muncul di halaman aplikasimu. **Kalau kamu pakai perjanjian standar, kamu sendiri yang harus menaruh link-nya di deskripsi**, ke halaman syarat kamu atau ke [perjanjian lisensi standar Apple](https://www.apple.com/legal/internet-services/itunes/dev/stdeula/).

Di aplikasi berlangganan saya, saya menutup deskripsi dengan dua baris, di setiap bahasa halaman App Store. Ini templatnya, sesuaikan dengan penawaran dan domain kamu:

```text
Uji coba gratis 7 hari, lalu langganan tahunan atau mingguan,
bisa dibatalkan kapan saja.
Syarat: https://your-domain.com/terms
Privasi: https://your-domain.com/privacy
```

Buka kedua link itu sebelum menempelkannya: halaman yang tidak ditemukan sama saja dengan link yang tidak ada. Isi kebijakan privasi dijelaskan di [kebijakan privasi aplikasi](https://devoria.fr/id/blog/kebijakan-privasi-aplikasi-ios-app-store), dan bagian lain halaman App Store di [ASO App Store](https://devoria.fr/id/expertise/aso-app-store).

**Masalah ini bisa diperbaiki tanpa build baru**: deskripsi dan kolom App Store Connect adalah metadata.

## 3.1.2(a): langganan harus memberi nilai berkelanjutan

Poin lain yang bisa bikin ditolak menyasar model bisnisnya, bukan layarnya. [3.1.2(a)](https://developer.apple.com/app-store/review/guidelines/#3.1.2a) meminta "ongoing value": nilai yang terus berlanjut. Periodenya minimal tujuh hari, dan langganan berfungsi di semua perangkat pengguna. Pelanggan mendapat apa yang dia bayar tanpa tugas tambahan, seperti posting di media sosial.

Kalau aplikasimu memberi layanan sekali jadi, pembelian satu kali mungkin lebih cocok. Kedua model dibandingkan di [langganan atau pembelian satu kali](https://devoria.fr/id/blog/langganan-atau-beli-sekali-aplikasi-ios).

## Cara membalas Apple setelah penolakan 3.1.2

Percakapannya ada di bagian App Review aplikasimu. Prosedur untuk [membalas App Review](https://developer.apple.com/help/app-store-connect/manage-submissions-to-app-review/reply-to-app-review-messages/) sama dengan aturan lain. Ada dua kasus:

- **Masalahnya di aplikasi** (ukuran harga, keterangan di paywall): perlu build baru, seperti Solys dan TradaZen. Reviewer mengetes kode yang ada di build, saya jelaskan di panduan [guideline 2.1](https://devoria.fr/id/blog/guideline-2-1-app-store-penolakan).
- **Masalahnya di halaman App Store** (link tidak ada atau mati): kamu perbaiki metadata, balas, dan submission yang sama dikirim lagi.

Tulis dalam bahasa Inggris, singkat: apa masalahnya, apa yang diubah, cara mengeceknya. Ini templat yang saya pakai (ganti nomor build, harga, dan alurnya dengan milikmu):

```text
Hello,

Thank you for your review.

Issue: on the paywall, the weekly equivalent price was displayed
more prominently than the billed amount.

Fix in build X:
- Each plan now shows its billed amount (e.g. "€19.99/year")
  as the largest price on the card.
- The weekly equivalent is a smaller grey caption below it.
- The paywall states the duration, the auto-renewal, and links
  to our Terms of Use and Privacy Policy.

How to verify: launch the app and complete the onboarding.
The paywall appears at the end.

Best regards,
```

## Perbaiki paywall kamu sebelum pengiriman berikutnya

Kalau aplikasimu baru ditolak karena 3.1.2, [Apple Review Kit](https://devoria.fr/id/kits/review-apple) membantu kamu menemukan aturan yang disebut, apa yang diminta, dan contoh perbaikan serta balasannya. Skill Claude Code di dalamnya juga memeriksa paywall dan halaman App Store kamu sebelum dikirim. Kalau mau dilihat langsung oleh manusia, [pesan satu jam dengan saya](https://devoria.fr/id/coaching): kita baca pesan Apple dan perbaiki paywall kamu langsung di layarmu. Langkah lengkapnya ada di halaman [aplikasi ditolak Apple](https://devoria.fr/id/expertise/aplikasi-ditolak-apple), dan pemasangan langganan di halaman [langganan in-app iOS](https://devoria.fr/id/expertise/langganan-in-app-ios).

Kalau kamu sedang menyiapkan rilis pertama, [ikuti diagnostik gratis](https://devoria.fr/id/diagnostic): diagnostik ini mengurutkan langkah-langkahnya dan mengirimkan checklist anti-penolakan Apple saya. Untuk [membuat aplikasi mobile](https://devoria.fr/id) yang langsung menghasilkan uang sejak rilis, [iOS Kit](https://devoria.fr/id/kits/ios) mendedikasikan tahap ketiganya, "memasang sumber uang", untuk langganan dan paywall.

Tidak ada yang bisa menjamin Apple akan menerima aplikasimu. Yang bisa saya lakukan adalah membantumu menghindari penolakan 3.1.2(c) yang sudah dua kali saya alami.

## Pertanyaan umum

### Apa arti "Guideline 3.1.2 - Business - Payments - Subscriptions"?

Itu judul lengkap aturan tentang langganan. Artinya ada harga yang hierarkinya salah, informasi yang kurang di paywall, link yang tidak ada di halaman App Store, atau langganan tanpa nilai berkelanjutan. Huruf di dalam kurung, misalnya 3.1.2(c), menunjukkan poin yang dimaksud.

### Apakah masih boleh menampilkan harga per minggu atau per bulan?

Boleh. Apple mengizinkan harga setara per minggu atau per bulan, atau info penghematan, asalkan lebih kecil dan kurang menonjol daripada jumlah yang benar-benar ditagih. Di aplikasi saya, harga setara itu jadi keterangan abu-abu di bawah harga yang ditagih, tidak pernah di kolom harga asli.

### Apakah perlu build baru setelah penolakan 3.1.2?

Perlu kalau masalahnya di paywall, karena reviewer mengetes kode yang ada di build. Tidak perlu kalau masalahnya di halaman App Store, misalnya link yang tidak ada di deskripsi: kamu perbaiki metadata dan submission yang sama dikirim lagi.

### Di mana menaruh link syarat penggunaan (EULA)?

Di aplikasi, di paywall. Di halaman App Store, di deskripsi atau di kolom EULA App Store Connect kalau kamu punya perjanjian khusus. Dengan perjanjian standar Apple, tidak ada link yang muncul di halamanmu: tambahkan sendiri di deskripsi, di setiap bahasa.

### Paywall saya pernah diterima, kenapa sekarang ditolak?

Karena setiap versi di-review lagi, kadang oleh reviewer lain. Harga per minggu yang ditonjolkan pernah diterima di TradaZen, lalu ditolak di Solys dan TradaZen pada Oktober 2026. Hanya teks aturannya yang bisa melindungi kamu.


## Proyekmu

[Apple Review Kit](https://devoria.fr/id/kits/review-apple): Checklist review App Store yang kupakai, penolakan Apple yang sudah kuperbaiki, catatan untuk penguji, dan dua skill Claude Code yang meninjau aplikasimu. 29 €.

[iOS Kit](https://devoria.fr/id/kits/ios): Bikin aplikasi iPhone dengan Claude Code: starter code aplikasiku, skill yang memeriksa kerjanya, plus Apple Review Kit, App Store Screenshots Kit, dan ASO Kit. 129,99 €.
