Semua artikel
Deep diveWaktu baca 8 menit

Refund aplikasi berbayar tidak pernah sampai ke server Anda, jadi aplikasi itu sendiri yang harus mendeteksinya

Refund untuk aplikasi berbayar di muka melewati semua notifikasi yang didengarkan server Anda. Google memberi pembeli waktu dua jam untuk mengembalikan aplikasi dan menghapusnya dari perangkat, Apple dapat memberi refund dalam 90 hari berdasarkan perjanjian Anda, dan keduanya tidak meminta bukti. Berikut yang disampaikan setiap store, biayanya, dan cara memeriksanya di dalam aplikasi.

Smartphone di atas meja kayu di samping struk toko yang robek dan beberapa koin, menggambarkan refund aplikasi berbayar

Poin utama

  • Refund aplikasi berbayar mencakup harga unduhan aplikasi itu sendiri, bukan pembelian dalam aplikasi, dan baik Apple maupun Google tidak mendokumentasikan notifikasi server untuknya.
  • Bantuan Play Console Google menyatakan pembeli punya waktu hingga dua jam setelah membeli aplikasi berbayar untuk mengembalikannya dengan refund penuh, dan aplikasi yang sama hanya bisa dikembalikan sekali.
  • Kebijakan refund Google Play menyatakan aplikasi dihapus sebagai bagian dari refund, dan pembeli yang membeli aplikasi yang sama lagi tidak bisa mendapat refund kedua.
  • Tipe REFUND di App Store Server Notifications V2 milik Apple mencakup consumable, non-consumable, langganan perpanjangan otomatis, dan langganan tanpa perpanjangan. Pembelian aplikasi tidak ada dalam daftar itu.
  • Developer Program License Agreement Apple, Schedule 2 bagian 6.3, mengizinkan Apple memberi refund kepada pembeli yang membatalkan dalam 90 hari sejak unduhan, dan developer mengganti jumlah itu kepada Apple.
  • Dokumentasi StoreKit Apple mencantumkan revocationDate pada AppTransaction, catatan bertanda tangan atas pembelian aplikasi, yang dapat diperiksa aplikasi di perangkat.
  • Baik CONSUMPTION_REQUEST maupun orders.reviewrefund milik Google Play tidak didokumentasikan untuk pembelian unduhan aplikasi, jadi refund aplikasi berbayar diputuskan tanpa bukti dari developer.

Aplikasi berbayar di muka mendapat refund lewat pintu samping yang tidak pernah dipantau sebagian besar alat refund. Saat pembeli mengembalikan aplikasinya sendiri, bukan sesuatu yang dibeli di dalamnya, Apple dan Google menarik uangnya dari pembayaran Anda tanpa mengirim satu notifikasi pun ke server Anda. Setidaknya Google menghapus aplikasinya. Di iOS, developer di forum resmi Apple melaporkan bahwa pembeli yang sudah di-refund tetap memakainya. Jika Anda menjual aplikasi berbayar, refund aplikasi berbayar adalah satu-satunya refund yang hanya akan Anda lihat sebagai baris negatif di laporan, kecuali aplikasi memeriksanya di perangkat.

Aturan refund aplikasi berbayar di Google Play dan App Store

Kedua store memperlakukan pembelian unduhan sebagai produk tersendiri dengan aturannya sendiri. Berikut isi dokumentasi masing-masing store.

AturanGoogle PlayApp Store
Pengembalian mandiri yang cepatHingga dua jam setelah pembelian, refund penuhTidak ada yang didokumentasikan
Jangka waktu permintaan lebih panjangPembeli dapat meminta dalam 48 jam, lalu menghubungi developerApple dapat memberi refund dalam 90 hari sejak unduhan, berdasarkan Schedule 2 perjanjian developer
Berapa kaliSekali per aplikasi. Pembelian ulang tidak bisa di-refund lagiTidak didokumentasikan
Apa yang terjadi pada aplikasiDihapus sebagai bagian dari refundTidak didokumentasikan. Developer melaporkan pembeli yang di-refund tetap punya akses
Developer dapat memberi refundYa, hanya refund penuh, dari Play ConsoleTidak
Notifikasi server kepada AndaTidak ada yang didokumentasikanTidak ada yang didokumentasikan
Permintaan bukti kepada AndaTidak ada yang didokumentasikanTidak ada yang didokumentasikan

Cara kerja pengembalian dua jam di Google Play

Bantuan Play Console Google menyatakannya dengan jelas: setelah membeli aplikasi berbayar, pengguna punya waktu hingga dua jam untuk mengembalikannya dengan refund penuh, dan mereka hanya bisa mengembalikan sebuah aplikasi sekali. Kebijakan refund konsumen Google menambahkan bahwa dalam 48 jam pembeli mungkin bisa mendapat refund tergantung pembeliannya, bahwa aplikasi dihapus sebagai bagian dari refund, dan bahwa orang yang membeli aplikasi yang sama lagi tidak bisa mendapat refund untuknya. Setelah 48 jam, Google mengarahkan pembeli ke developer.

Cara Apple memberi refund untuk aplikasi berbayar

Di App Store, pembeli mengajukan permintaan ke Apple melalui reportaproblem.apple.com, memilih alasan, lalu memilih aplikasinya. Apple menyebut pembaruan biasanya datang dalam 24 hingga 48 jam. Anda tidak bisa me-refund pembelian App Store sendiri. Kontrak Anda menetapkan batas terluarnya. Bagian 6.3 dari Schedule 2 Apple Developer Program License Agreement menyatakan bahwa jika pembeli ingin membatalkan dalam sembilan puluh hari sejak unduhan, atau aplikasi tidak sesuai dengan spesifikasi Anda atau hukum yang berlaku, Apple dapat me-refund harga penuh, dan Anda mengganti jumlah itu kepada Apple atau memberinya kredit sebesar jumlah tersebut.

Mengapa server Anda tidak pernah tahu tentang refund aplikasi berbayar

Setiap sinyal refund yang dikirim kedua store dibuat untuk pembelian dalam aplikasi. Apple menggambarkan notificationType sebagai peristiwa In-App Purchase atau pembelian eksternal yang memicu notifikasi. Tipe REFUND-nya mencakup consumable, non-consumable, langganan perpanjangan otomatis, atau langganan tanpa perpanjangan. Get Refund History mengembalikan pembelian dalam aplikasi pelanggan yang sudah di-refund. Unduhan aplikasi tidak ada di daftar mana pun.

Google pun sama. Real-time developer notifications mencakup langganan, produk sekali beli, dan pembelian yang dibatalkan, dan productType untuk pembelian yang dibatalkan hanya berupa langganan atau pembelian sekali beli. Voided Purchases API menyatakan bahwa API itu berlaku untuk pesanan dalam aplikasi sekali beli dan langganan, dan hanya menjangkau 30 hari ke belakang.

Apakah refund aplikasi berbayar memicu CONSUMPTION_REQUEST?

Tidak. Dokumentasi Apple menyatakan CONSUMPTION_REQUEST dikirim saat pelanggan meminta refund untuk In-App Purchase consumable atau langganan perpanjangan otomatis. Itu salah satu dari hanya dua alur refund di kedua store yang meminta bukti dari developer. Yang lain adalah peninjauan chargeback Google Play, yang dijawab melalui orders.reviewrefund dalam 24 jam, dan datang melalui aliran notifikasi dalam aplikasi yang sama. Keduanya tidak didokumentasikan untuk unduhan aplikasi. Refund aplikasi berbayar diputuskan tanpa apa pun yang bisa Anda kirim.

Apakah pembeli yang di-refund tetap memakai aplikasinya?

Di Google Play, kebijakannya menyatakan aplikasi dihapus. Di iOS, forum Apple memuat utas dari developer yang menanyakan persis hal ini. Salah satunya, dari Maret 2025, berbunyi: "Ketika pengguna me-refund aplikasi berbayar di muka, mereka tetap punya akses ke aplikasi itu." Utas lain, dari 2022, mencurigai pembeli membeli, memasang, meminta refund, lalu tetap memakai aplikasinya. Utas ketiga, dari Juni 2025, menanyakan apakah App Store Server Notifications V2 melaporkan refund tingkat aplikasi sama sekali. Tidak satu pun dari ketiganya dijawab Apple.

Berapa biaya refund aplikasi berbayar bagi Anda

Sisi pembayarannya dapat diprediksi. Bantuan Play Console Google menyatakan Google mengembalikan biaya layanannya saat Anda memberi refund, jadi potongan dari pembayaran Anda adalah bagian Anda, bukan harga di label. Refund yang diterbitkan setelah Google membayar Anda diambil dari pembayaran berikutnya, dan jika saldo Anda tetap negatif selama setidaknya 48 jam, Google dapat mendebit rekening bank Anda. Di sisi Apple, kontrak menyatakan Anda mengganti jumlah yang setara dengan harga. Dalam praktiknya, RevenueCat melaporkan pada 2022 bahwa Apple memotong angka setelah komisi yang ditampilkan sebagai Extended Partner Share, jadi Apple tidak menyimpan potongannya.

Biaya yang tidak kembali adalah biaya yang Anda bayar untuk melayani pembeli itu. Berikut contoh ilustratif. Aplikasi foto berbayar seharga $6.99 menjalankan filternya lewat model cloud dan menyinkronkan proyek ke penyimpanan cloud. Anda membayar iklan yang mendatangkan pembeli itu.

Pos biayaDikembalikan di Google PlayDikembalikan di App Store
Bagian Anda dari $6.99Ditarik kembali dari pembayaran AndaDitarik kembali dari pembayaran Anda
Biaya layanan atau komisi storeDikembalikan kepada Anda oleh GoogleTidak dikenakan, menurut laporan RevenueCat
Inferensi cloud dan panggilan API yang sudah terpakaiTidakTidak
Penyimpanan untuk proyek yang disinkronkanTidakTidak
Biaya iklan untuk mendapatkan pembeliTidakTidak
Biaya server berjalan jika pembeli tetap memakai aplikasiBerhenti, aplikasi dihapusBerlanjut sampai aplikasi Anda memeriksa

Baris terakhir itulah yang membuat iOS mahal. Pembeli yang sudah di-refund dan tetap menyimpan aplikasinya terus memanggil backend Anda, dan setiap permintaan inferensi, sinkronisasi, dan panggilan API setelah refund adalah biaya tanpa pendapatan di baliknya. Pada aplikasi berbayar tanpa biaya server, refund berarti satu penjualan hilang. Pada aplikasi dengan backend, refund bisa berubah menjadi tagihan yang terus berjalan.

Cara mendeteksi refund aplikasi berbayar di dalam aplikasi

Karena server tidak menerima apa pun, pemeriksaan harus dimulai di perangkat lalu memberi tahu server Anda.

Di iOS, baca revocationDate pada AppTransaction

AppTransaction adalah catatan bertanda tangan App Store atas pembelian aplikasi oleh pelanggan. Dokumentasi StoreKit Apple kini mencantumkan properti revocationDate di dalamnya, yang dijelaskan sebagai tanggal pencabutan pembelian aplikasi. Baca AppTransaction.shared saat aplikasi dibuka, verifikasi hasilnya, dan perlakukan revocationDate yang tidak nil sebagai unduhan yang sudah di-refund. Kirim nilai bertanda tangan itu ke server Anda agar server dapat berhenti melayani akun tersebut.

  • Menurut Apple, appTransactionID tetap sama untuk sebuah Apple Account bahkan setelah refund atau pembelian ulang, jadi jadikan nilai itu kunci catatan Anda dan pembeli yang membayar lagi akan dikenali.
  • AppTransaction.refresh() mengambil catatan terbaru dari App Store, tetapi menampilkan permintaan masuk akun. Apple menyarankan memanggilnya hanya setelah tindakan eksplisit dari pengguna, seperti mengetuk tombol Restore.
  • Nilai bertanda tangan itu berada di perangkat. Dokumentasi Apple tidak menjelaskan notifikasi server untuknya, jadi server Anda hanya tahu apa yang dilaporkan aplikasi.
Seorang developer memegang ponsel dengan gembok di layar di depan laptop, memeriksa akses setelah refund aplikasi berbayar

Di Android, minta verdict lisensi dari Play Integrity

Penghapusan oleh Google menangani sebagian besar kasus, tetapi salinan aplikasi bisa bertahan, misalnya salinan yang dipasang dari cadangan secara sideload. Play Integrity API mengembalikan appLicensingVerdict untuk akun yang sedang masuk. LICENSED berarti pengguna memiliki hak atas aplikasi. UNLICENSED berarti tidak, dan Google menyarankan menampilkan dialog GET_LICENSED. UNEVALUATED berarti Google tidak bisa memeriksa, misalnya karena pengguna belum masuk ke Google Play. Google juga mencatat bahwa di beberapa perangkat lama, pengguna tetap memiliki hak itu setelah menghapus aplikasi, jadi LICENSED bukan bukti pembelian yang masih aktif di semua perangkat.

Jadikan server sebagai penjaga gerbang

Pemeriksaan di sisi klien bisa ditambal hingga hilang. Bagian yang layak dilindungi adalah pekerjaan berbayar yang dilakukan backend Anda, jadi buat backend menolak panggilan dari akun yang laporan terakhirnya berupa refund, verdict UNLICENSED, atau tidak ada verdict sama sekali setelah masa tenggang yang Anda tentukan. Itulah yang mencegah refund berubah menjadi komputasi gratis.

Kapan aplikasi berbayar sebaiknya beralih ke pembelian dalam aplikasi

Panduan Apple sendiri tentang perubahan model bisnis menjelaskan peralihan dari aplikasi berbayar ke aplikasi gratis dengan In-App Purchases, serta penggunaan originalAppVersion pada AppTransaction untuk terus memberikan fitur premium kepada orang yang membeli versi berbayar. Keuntungan peralihan ini dari sisi refund cukup nyata. Begitu harga ditempatkan pada non-consumable atau langganan, refund datang sebagai notifikasi REFUND dan pembelian yang dibatalkan yang bisa ditindaklanjuti server Anda, dan permintaan refund langganan di App Store memicu CONSUMPTION_REQUEST. Itulah sinyal yang didengarkan RefundHalt dan dijawabnya dalam jangka waktu 12 jam dan 24 jam. Unduhan berbayar tidak memberi Anda satu pun dari sinyal itu.

Pertanyaan yang sering diajukan

Berapa lama waktu yang dimiliki pembeli untuk mengembalikan aplikasi berbayar di Google Play?
Hingga dua jam setelah pembelian untuk refund penuh, menurut bantuan Play Console Google, dan hanya sekali per aplikasi. Kebijakan refund Google juga menyatakan pembeli mungkin bisa mendapat refund dalam 48 jam, setelah itu Google mengarahkan mereka ke developer. Aplikasi dihapus sebagai bagian dari refund.
Apakah Apple memberi tahu server saya saat seseorang me-refund aplikasi berbayar saya?
Tidak ada notifikasi yang didokumentasikan. App Store Server Notifications milik Apple mencakup peristiwa In-App Purchase, dan tipe REFUND hanya mencantumkan consumable, non-consumable, langganan perpanjangan otomatis, dan langganan tanpa perpanjangan. Aplikasi dapat membaca revocationDate pada AppTransaction di perangkat dan melaporkannya ke server Anda.
Apakah pembeli yang di-refund tetap punya akses ke aplikasi iOS berbayar?
Developer di forum Apple melaporkan bahwa mereka tetap punya akses, dan dokumentasi Apple tidak menjelaskan langkah apa pun yang menghapus aplikasi setelah refund. Periksa revocationDate pada AppTransaction saat aplikasi dibuka dan buat server Anda berhenti melayani akun yang melaporkan unduhan yang sudah di-refund.
Bisakah saya me-refund aplikasi berbayar sendiri?
Di Google Play, bisa. Play Console memungkinkan Anda menerbitkan refund penuh untuk aplikasi berbayar, tidak pernah sebagian, dan Google mengembalikan biaya layanannya. Di App Store, tidak bisa. Hanya Apple yang dapat me-refund pembelian App Store.
Bisakah saya menyanggah refund aplikasi berbayar dengan bukti penggunaan?
Tidak. CONSUMPTION_REQUEST milik Apple didokumentasikan untuk consumable dan langganan perpanjangan otomatis, dan peninjauan chargeback Google Play melalui orders.reviewrefund datang lewat notifikasi yang dibuat untuk produk dalam aplikasi dan langganan. Tidak satu pun store mendokumentasikan alur bukti untuk pembelian aplikasi itu sendiri.

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.