Semua artikel
Deep diveWaktu baca 8 menit

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.

Setumpuk koin, sebuah gembok, sebuah kalender, dan sebuah tiket berjajar di atas meja bercahaya hangat, menggambarkan bagaimana setiap jenis pembelian dalam aplikasi dikembalikan secara berbeda

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 aplikasiDapat dipulihkan setelah pengembalianNilai saat pengembalianApakah Apple meminta bukti Anda
Habis pakaiTidak, tidak bisa dipulihkanBiasanya sudah dibelanjakanYa, CONSUMPTION_REQUEST
Tidak habis pakaiYa, terikat ke akunMasih dipegang, hak dicabutJarang
Langganan perpanjangan otomatisYa, selama aktifDiprorata menurut waktu berlaluYa, sejak WWDC24
Langganan tanpa perpanjanganAplikasi Anda harus memulihkannyaMasa sebagian berlaluJarang

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.

Sebuah ponsel pintar menampilkan konfirmasi pembayaran di samping setumpuk kecil koin dengan beberapa disingkirkan, menggambarkan bagaimana setiap jenis pembelian dalam aplikasi dikembalikan menurut aturan berbeda

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

RefundHalt

Autopilot refund untuk App Store dan Google Play

Baca selanjutnya

Permintaan refund berikutnya sudah menuju kepada Anda.

Siapkan RefundHalt dalam waktu yang dibutuhkan untuk membaca satu lagi email dukungan tentang refund yang tidak sempat Anda sengketakan.