Setiap jenis pembelian dalam aplikasi diproses pengembaliannya secara berbeda, dan hanya dua di antaranya yang pernah menanyakan pihak Anda
Produk habis pakai, produk tidak habis pakai, langganan perpanjangan otomatis, dan langganan tanpa perpanjangan masing-masing dikembalikan menurut aturannya sendiri. Beberapa bisa dipulihkan, beberapa lenyap begitu dibelanjakan, dan hanya permintaan produk habis pakai serta permintaan langganan yang pernah meminta bukti dari pengembang. Berikut cara jenis pembelian dalam aplikasi yang Anda jual mengubah dampak sebuah pengembalian dana bagi Anda.

Poin utama
- Ada empat jenis pembelian dalam aplikasi di App Store, yaitu habis pakai, tidak habis pakai, langganan perpanjangan otomatis, dan langganan tanpa perpanjangan, dan masing-masing dikembalikan menurut aturan berbeda. Google Play menyortir katalog yang sama menjadi produk sekali beli dan langganan.
- Hanya dua alur Apple yang pernah meminta bukti dari pengembang sebelum sebuah pengembalian diputuskan, yaitu CONSUMPTION_REQUEST produk habis pakai dan, sejak WWDC24, CONSUMPTION_REQUEST langganan perpanjangan otomatis. Produk tidak habis pakai dan langganan tanpa perpanjangan jarang sekali membuka jendela itu.
- Produk habis pakai membawa risiko pengembalian terbesar. Produk itu dibelanjakan saat penyerahan, tidak bisa dipulihkan, dan nilainya sudah hilang sebelum pengembalian tiba, itulah persis alasan Apple meminta data konsumsi Anda untuk produk tersebut.
- Produk tidak habis pakai bersifat permanen dan dapat dipulihkan, sehingga sebuah pengembalian harus mencabut hak yang masih diingat oleh akun pelanggan. Di Google Play, pembelian yang gagal Anda konfirmasi dalam 72 hours akan dikembalikan otomatis dan aksesnya ditarik kembali.
- Langganan perpanjangan otomatis dikembalikan berdasarkan jam. Apple menghitung seberapa banyak yang dikonsumsi dari waktu yang telah berlalu, bukan dari angka yang Anda kirim, jadi tugas Anda adalah refundPreference yang jujur dan bukti penggunaan di baliknya.
- Di App Store hanya Apple yang bisa menerbitkan pengembalian pembelian dalam aplikasi. Di Google Play Anda bisa mengembalikan sebuah pesanan sendiri dari Play Console, yang menjadikan jenis produk yang Anda jual sebagai keputusan Anda sendiri untuk ditanggung.
- Apa pun jenisnya, sebuah pengembalian mengembalikan komisi toko kepada pelanggan tetapi tidak pernah mengembalikan pengeluaran Anda. Komputasi, panggilan API, penyimpanan, dan pembayaran yang sudah dipicu oleh produk habis pakai tetap hilang.
Jenis pembelian dalam aplikasi yang Anda pilih di App Store Connect atau Play Console menentukan lebih dari sekadar cara produk dijual. Ia menentukan bagaimana sebuah pengembalian bertindak saat tiba, apakah pelanggan bisa mendapatkan kembali item itu secara gratis setelahnya, dan apakah pihak Anda pernah ditanya sebelum uang berpindah. Sebuah paket koin, buka kunci seumur hidup, langganan bulanan, dan tiket musim sekali pakai adalah empat objek hukum dan teknis yang berbeda, dan aturan pengembalian memperlakukannya seperti itu. Kebanyakan pengembang merilis semuanya melalui kode pembelian yang sama lalu bertanya-tanya mengapa pengembalian terasa tidak konsisten. Semuanya tidak konsisten. Semuanya spesifik menurut jenis.
Berikut apa itu setiap jenis pembelian dalam aplikasi, bagaimana sebuah pengembalian menghantamnya, dan mengapa hanya dua dari empat yang pernah mengarahkan keputusan melalui server Anda.
Empat jenis pembelian dalam aplikasi, dan mengapa pengembalian terbagi menurutnya
Apple mendefinisikan empat jenis produk. Produk habis pakai dipakai habis dan dibeli lagi: mata uang game, petunjuk, isi ulang energi. Produk tidak habis pakai dibeli sekali dan disimpan selamanya: buka kunci pro, peningkatan hapus iklan, paket level yang bisa diunduh. Langganan perpanjangan otomatis menagih dalam siklus berulang sampai pelanggan membatalkan. Langganan tanpa perpanjangan memberikan akses untuk rentang waktu tetap yang tidak diperpanjang dengan sendirinya, seperti satu musim konten yang dijual sebagai satu masa tunggal.
Google Play menyortir katalog yang sama secara berbeda tetapi berujung di tempat yang sama. Ia membagi produk menjadi produk sekali beli dan langganan, dan produk sekali beli ditandai habis pakai atau tidak berdasarkan apakah aplikasi Anda mengonsumsinya setelah pembelian. Katanya berbeda. Konsekuensi pengembaliannya tidak.
| Jenis pembelian dalam aplikasi | Dapat dipulihkan setelah pengembalian | Nilai saat pengembalian | Apakah Apple meminta bukti Anda |
|---|---|---|---|
| Habis pakai | Tidak, tidak bisa dipulihkan | Biasanya sudah dibelanjakan | Ya, CONSUMPTION_REQUEST |
| Tidak habis pakai | Ya, terikat ke akun | Masih dipegang, hak dicabut | Jarang |
| Langganan perpanjangan otomatis | Ya, selama aktif | Diprorata menurut waktu berlalu | Ya, sejak WWDC24 |
| Langganan tanpa perpanjangan | Aplikasi Anda harus memulihkannya | Masa sebagian berlalu | Jarang |
Produk habis pakai adalah jenis yang benar-benar disasar oleh penipuan pengembalian
Produk habis pakai adalah kasus pengembalian tersulit yang akan Anda hadapi, dan bukan kebetulan bahwa itulah produk yang menjadi dasar Apple membangun permintaan konsumsi. Saat pelanggan membeli 10,000 koin dan server Anda memberikannya, nilai sudah diserahkan. Jika mereka membelanjakan koin itu lalu mengajukan pengembalian, toko bisa mengembalikan uangnya, tetapi koin sudah hilang begitu pula apa pun yang Anda keluarkan untuk memenuhinya. Perkakas Apple sendiri mencerminkan ini: produk habis pakai meninggalkan catatan transaksi setelah selesai dan tidak pernah membawa tanggal pembatalan, karena tidak ada yang bersifat permanen untuk dibatalkan.
Itulah alasan produk habis pakai adalah jenis produk di mana bukti membuahkan hasil. Ketika pelanggan meminta pengembalian pada produk habis pakai, Apple mengirim server Anda sebuah CONSUMPTION_REQUEST dan menunggu hingga 12 hours untuk panggilan Send Consumption Information. Dalam panggilan itu Anda mengatur deliveryStatus dan, jika Anda menyerahkan, consumptionPercentage. Persentase adalah bilangan bulat dalam milliunits dari 0 sampai 100,000, di mana 100,000 berarti pelanggan menggunakan seluruh pembelian. Saldo koin yang menurut catatan Anda telah sepenuhnya dibelanjakan adalah 100,000 yang bisa Anda laporkan, dan itu adalah satu fakta terkuat yang bisa Anda hadirkan di depan klaim pembelian tak disengaja.
Produk habis pakai tidak bisa dipulihkan, jadi waktu adalah segalanya
Karena produk habis pakai tidak bisa dipulihkan, Anda tidak bisa menariknya kembali seperti Anda bisa mencabut sebuah langganan. Begitu pengembalian diberikan, satu-satunya perlindungan Anda adalah catatan yang Anda simpan pada saat penjualan. Jika Anda tidak mencatat penyerahan dan konsumsi saat itu terjadi, Anda merekonstruksinya di bawah jam 12 jam, yang merupakan saat terburuk untuk mencari data. Catat saat masuk, bukan saat keluar.
Langganan dikembalikan berdasarkan jam yang tidak Anda kendalikan
Langganan perpanjangan otomatis adalah tempat kebanyakan aplikasi menghasilkan uang, dan pembaruan pengembalian WWDC24 akhirnya mengarahkannya melalui jendela bukti yang sama dengan produk habis pakai. Sejak App Store Server Notifications version 2.11, permintaan pengembalian pada langganan perpanjangan otomatis juga memicu sebuah CONSUMPTION_REQUEST. Jadi pengembalian langganan yang dulunya diputuskan sepenuhnya tanpa Anda kini tiba dengan jendela 12 jam terlampir.
Jebakannya adalah bagaimana konsumsi diukur. Untuk langganan perpanjangan otomatis, Apple tidak ingin Anda mengarang persentase penggunaan. Apple menghitung konsumsi dari waktu yang telah berlalu dengan sendirinya, jadi seseorang yang sudah enam bulan menjalani paket tahunan terbaca kira-kira setengah terkonsumsi apa pun yang Anda kirim. Tuas Anda bukan persentase. Melainkan refundPreference yang jujur berupa GRANT_FULL, GRANT_PRORATED, atau DECLINE, didukung oleh sinyal penggunaan apa pun yang benar-benar Anda pegang. Kirim preferensi yang didukung bukti dan biarkan Apple menimbangnya.
Langganan tanpa perpanjangan lebih dekat ke buka kunci sekali pakai
Langganan tanpa perpanjangan adalah masa tetap yang dibeli pelanggan sekali, dan untuk keperluan pengembalian ia berperilaku lebih seperti produk tidak habis pakai daripada paket perpanjangan otomatis. Apple jarang mengarahkan CONSUMPTION_REQUEST kepadanya, dan tidak ada perpanjangan otomatis untuk diprorata. Aplikasi Anda bertanggung jawab melacak masa itu dan memulihkannya di seluruh perangkat pelanggan, jadi sebuah pengembalian berarti mengakhiri jendela akses yang Anda kelola sendiri, bukan yang Apple hitung untuk Anda.
Produk tidak habis pakai bersifat permanen, yang bermata dua
Produk tidak habis pakai adalah hal terbersih untuk dijual dan jebakan diam-diam saat pengembalian. Ia dibeli sekali, terikat ke akun toko pelanggan selamanya, dan toko bisa memulihkannya ke perangkat mana pun sesuai permintaan. Permanensi itu adalah fitur sampai sebuah pengembalian tiba, karena kini Anda harus mencabut hak yang masih diingat oleh akun. Jika logika pencabutan Anda hanya memeriksa saat pembelian dan tidak pernah memverifikasi ulang, pelanggan yang telah dikembalikan uangnya bisa memulihkan pembelian dan berjalan kembali masuk ke fitur berbayar.
Google Play menambahkan satu tepi tajam di sini yang menjebak pengembang baru. Jika aplikasi Anda tidak mengonfirmasi sebuah pembelian dalam 72 hours, Google secara otomatis mengembalikannya dan mencabut haknya. Produk tidak habis pakai yang lupa dikonfirmasi oleh kode penagihan Anda tidak menggantung dalam ketidakpastian. Ia membalik dirinya sendiri, dan pelanggan kehilangan akses ke sesuatu yang mereka bayar, tanpa permintaan apa pun dari mereka.

Siapa yang bahkan bisa menerbitkan pengembalian berubah menurut toko dan jenis
Sebelum Anda merencanakan respons pengembalian apa pun, ketahui siapa yang memegang pena. Di App Store, hanya Apple yang bisa menerbitkan pengembalian pembelian dalam aplikasi, untuk setiap jenis produk. Kode StoreKit Anda tidak bisa mengembalikan sebuah pembelian, begitu pula meja dukungan Anda. Anda bisa mengirim data konsumsi untuk memengaruhi keputusan Apple pada dua jenis yang membuka jendela, dan itulah seluruh kendali langsung Anda.
Google Play adalah kebalikannya. Anda bisa mengembalikan produk sekali beli atau pesanan langganan sendiri dari Play Console atau dari Voided Purchases dan API pengembalian, penuh atau sebagian. Kebebasan itu juga sebuah tanggung jawab: pengembalian yang Anda terbitkan pada produk habis pakai tetap harus mencabut item itu di backend Anda sendiri, karena Google tidak tahu koin Anda sudah dibelanjakan. Jenis produk yang Anda pilih menentukan seberapa bersih pencabutan itu.
Berapa biaya sebenarnya setiap jenis pengembalian bagi Anda
Harga yang dikembalikan adalah baris yang semua orang perhatikan dan bagian terkecil dari tagihan. Ketika toko mana pun memberikan pengembalian, ia membalik komisinya sendiri bersamanya, sehingga Anda kehilangan hasil bersih Anda alih-alih harga tercantum penuh. Itu kabar baiknya, dan berhenti di situ. Yang toko kembalikan adalah potongan yang ia ambil. Yang tidak pernah ia kembalikan adalah apa yang sudah Anda keluarkan untuk memenuhi penjualan, dan angka itu berubah tajam menurut jenis produk.
Produk habis pakai adalah pengembalian yang mahal
Produk habis pakai yang dikembalikan adalah yang bisa berbiaya lebih dari harganya. Katakanlah seorang pelanggan membeli 5,000 kredit yang masing-masing memicu panggilan inferensi berbayar, membelanjakan 4,000 di antaranya, lalu mengajukan pengembalian. Toko mengembalikan harga dan komisinya, tetapi komputasi, tagihan API per token, gambar yang Anda hasilkan, dan pembayaran kreator apa pun yang didanai kredit itu semuanya sudah terpakai. Pengembalian produk tidak habis pakai setidaknya menarik sebuah hak kembali ke kendali Anda. Pengembalian produk habis pakai menarik kembali sebuah penjualan yang seluruh biayanya sudah Anda bayar.
Tagihan balik adalah versi lebih berat dari tagihan yang sama
Pengembalian dan tagihan balik adalah peristiwa berbeda, dan selisihnya kini punya tanggal. Ketika pelanggan menyengketakan tagihan dengan banknya alih-alih meminta ke toko, tagihan balik yang selesai bersifat final di sisi bank. Untuk pesanan Google Play yang dibuat pada atau setelah 3 Agustus 2026, tagihan balik yang kalah menagihkan kepada pengembang harga pembelian dikurangi biaya layanan Play, ditambah biaya tagihan balik bank, sebuah biaya tetap yang ditetapkan jaringan kartu. Google Play mengarahkan tagihan balik kepada Anda untuk ditinjau melalui orders.reviewrefund dengan jendela 24 jam, satu-satunya alur Google yang meminta bukti Anda, dan itu bisa tiba pada jenis produk mana pun.
Cara merespons ketika jenis menentukan aturannya
Anda tidak bisa mengubah jenis produk mana yang menjadi sasaran pengembalian setelah penjualan, tetapi Anda bisa berhenti menangani keempatnya dengan cara yang sama.
- Catat penyerahan dan konsumsi untuk produk habis pakai pada saat itu terjadi. Catatan itu adalah seluruh pembelaan Anda pada satu jenis yang tidak bisa dipulihkan, dan jendela 12 jam terlalu singkat untuk membangunnya dari nol.
- Verifikasi ulang hak untuk produk tidak habis pakai setelah pengembalian, bukan hanya saat pembelian. Panggilan pemulihan harus memeriksa status saat ini, agar pelanggan yang telah dikembalikan uangnya tidak bisa berjalan kembali masuk ke fitur berbayar.
- Jawab kedua jendela bukti secara otomatis. Permintaan konsumsi 12 jam dan tinjauan tagihan balik 24 jam tidak bisa menunggu seseorang membaca kotak masuk, dan keduanya tidak diperpanjang untuk zona waktu.
- Nilai pembelaan pengembalian Anda hanya pada dua jenis yang bisa dibantah. Jumlah pengembalian yang meningkat pada jenis yang tidak pernah membuka jendela adalah sinyal produk atau harga, bukan kegagalan bukti Anda.
Semua ini bukan tentang mengalahkan toko. Ini tentang menyelaraskan respons Anda dengan objek yang sebenarnya dijual. RefundHalt menjawab CONSUMPTION_REQUEST produk habis pakai dan langganan serta tinjauan Google Play orders.reviewrefund secara otomatis, di dalam jendela, dengan bukti penyerahan dan penggunaan yang Anda catat pada saat penjualan, dan ia menyimpan pengembalian yang tidak pernah dibiarkan Anda bantah oleh jendela mana pun dalam buku besarnya sendiri, sehingga angka yang Anda pakai untuk menilai diri sendiri tetap jujur.
Pertanyaan yang sering diajukan
- Bisakah saya mengembalikan pembelian dalam aplikasi sendiri?
- Itu tergantung tokonya. Di App Store, hanya Apple yang bisa menerbitkan pengembalian pembelian dalam aplikasi, untuk setiap jenis produk, jadi satu-satunya pengaruh Anda adalah data konsumsi yang Anda kirim pada dua alur yang memintanya. Di Google Play Anda bisa mengembalikan produk sekali beli atau pesanan langganan sendiri dari Play Console atau dari API pengembalian, penuh atau sebagian.
- Jenis pembelian dalam aplikasi mana yang memiliki risiko pengembalian tertinggi?
- Produk habis pakai. Produk habis pakai dibelanjakan saat penyerahan, tidak bisa dipulihkan, dan nilainya biasanya sudah hilang sebelum permintaan pengembalian tiba. Itulah persis alasan Apple mengirim CONSUMPTION_REQUEST untuk produk habis pakai dan meminta data konsumsi Anda, dan alasan biaya komputasi atau API di balik produk habis pakai bisa membuat pengembaliannya berbiaya lebih dari penjualannya.
- Apakah Apple mengirim permintaan konsumsi untuk setiap jenis pembelian?
- Tidak. Apple mengirim CONSUMPTION_REQUEST untuk produk habis pakai dan, sejak pembaruan WWDC24, untuk langganan perpanjangan otomatis. Produk tidak habis pakai dan langganan tanpa perpanjangan jarang membuka jendela bukti itu. Untuk setiap jenis, pengembalian itu sendiri tetap diputuskan oleh Apple, bukan oleh Anda.
- Bisakah pelanggan memulihkan produk habis pakai setelah pengembalian?
- Tidak. Produk habis pakai tidak bisa dipulihkan, itulah yang membuat pengembaliannya final bagi Anda. Produk tidak habis pakai dan langganan aktif terikat ke akun toko pelanggan dan bisa dipulihkan, jadi pengembalian pada produk tersebut harus mencabut hak yang seharusnya diverifikasi ulang oleh backend Anda alih-alih dipercaya dari saat pembelian.
- Bagaimana pengembalian langganan dihitung secara berbeda?
- Untuk langganan perpanjangan otomatis, Apple menghitung seberapa banyak yang dikonsumsi dari waktu yang telah berlalu alih-alih dari persentase yang Anda kirim, jadi setengah masa terbaca kira-kira setengah terkonsumsi. Peran Anda adalah refundPreference yang jujur berupa GRANT_FULL, GRANT_PRORATED, atau DECLINE, didukung oleh bukti penggunaan yang Anda pegang, bukan angka konsumsi yang dikarang.
Sumber dan bacaan lanjutan
- Apple Developer: In-App Purchase (product types)
- Apple Developer: ConsumptionRequest (App Store Server API)
- Apple Developer: Send Consumption Information
- Google Play Console Help: Understand in-app product types
- Android Developers: One-time products (Play Billing)
- Android Developers: Process purchases and acknowledgement (72-hour auto-refund)
- WWDC24: Explore App Store server APIs for In-App Purchase
RefundHalt
Autopilot refund untuk App Store dan Google Play
Baca selanjutnya
Undang-undang refund aplikasi berubah mengikuti negara pelanggan, dan hampir tidak satu pun memberi Anda hak bersuara
Undang-undang refund aplikasi berbeda di UE, Inggris, dan AS, tetapi untuk sebagian besar penjualan aplikasi hasilnya sama. Hak penarikan 14 hari di UE biasanya dilepaskan saat checkout, pembeli AS bergantung pada kebijakan toko, dan tidak ada refund berdasarkan undang-undang yang membiarkan Anda merespons. Hanya dua alur toko yang pernah menanyakan pihak Anda.
Penipuan ramah adalah chargeback di mana pelanggan sudah menerima apa yang mereka bayar, dan itu satu-satunya sengketa yang masih bisa dipengaruhi oleh bukti Anda
Penipuan ramah adalah ketika pelanggan sungguhan membeli pembelian dalam aplikasi Anda, menggunakannya, lalu memberi tahu banknya bahwa transaksinya salah. Barangnya sudah habis dan uangnya berbalik. Berikut biayanya bagi pengembang aplikasi, mengapa hal ini meningkat, dan jendela singkat yang diberikan Apple dan Google untuk melawan.