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.

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.
| Aturan | Google Play | App Store |
|---|---|---|
| Pengembalian mandiri yang cepat | Hingga dua jam setelah pembelian, refund penuh | Tidak ada yang didokumentasikan |
| Jangka waktu permintaan lebih panjang | Pembeli dapat meminta dalam 48 jam, lalu menghubungi developer | Apple dapat memberi refund dalam 90 hari sejak unduhan, berdasarkan Schedule 2 perjanjian developer |
| Berapa kali | Sekali per aplikasi. Pembelian ulang tidak bisa di-refund lagi | Tidak didokumentasikan |
| Apa yang terjadi pada aplikasi | Dihapus sebagai bagian dari refund | Tidak didokumentasikan. Developer melaporkan pembeli yang di-refund tetap punya akses |
| Developer dapat memberi refund | Ya, hanya refund penuh, dari Play Console | Tidak |
| Notifikasi server kepada Anda | Tidak ada yang didokumentasikan | Tidak ada yang didokumentasikan |
| Permintaan bukti kepada Anda | Tidak ada yang didokumentasikan | Tidak 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 biaya | Dikembalikan di Google Play | Dikembalikan di App Store |
|---|---|---|
| Bagian Anda dari $6.99 | Ditarik kembali dari pembayaran Anda | Ditarik kembali dari pembayaran Anda |
| Biaya layanan atau komisi store | Dikembalikan kepada Anda oleh Google | Tidak dikenakan, menurut laporan RevenueCat |
| Inferensi cloud dan panggilan API yang sudah terpakai | Tidak | Tidak |
| Penyimpanan untuk proyek yang disinkronkan | Tidak | Tidak |
| Biaya iklan untuk mendapatkan pembeli | Tidak | Tidak |
| Biaya server berjalan jika pembeli tetap memakai aplikasi | Berhenti, aplikasi dihapus | Berlanjut 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.

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
- Play Console Help: Issue refunds and cancellations
- Google Play Help: Apps, games and in-app purchases refund policies
- Google Play Developer API: Voided Purchases API
- Android Developers: Real-time developer notifications reference
- Android Developers: Play Integrity API integrity verdicts
- Apple Developer Documentation: notificationType (App Store Server Notifications V2)
- Apple Developer Documentation: AppTransaction
- Apple Developer Documentation: Supporting business model changes by using the app transaction
- Apple Developer Program License Agreement, Schedule 2 section 6.3
- Apple Support: Request a refund for apps or content that you bought from Apple
- Apple Developer Forums: How to detect refund for paid app? (March 2025)
- Apple Developer Forums: AppTransactionId support and app-level refunds (June 2025)
- RevenueCat: Does Apple keep its commission after you refund a purchase?
RefundHalt
Autopilot refund untuk App Store dan Google Play
Baca selanjutnya
Jika aplikasi Anda masih memakai App Store Server Notifications V1, Apple tidak pernah menanyakan pengembalian dana langganan kepada Anda
Apple menghentikan dukungan App Store Server Notifications V1 pada Juni 2023, dan versi itu tidak pernah mendapatkan CONSUMPTION_REQUEST untuk langganan, REFUND_DECLINED, maupun REFUND_REVERSED. Inilah yang terlewat oleh server V1, berapa kerugiannya, dan cara pindah ke V2 tanpa kehilangan satu pun pengembalian dana.
Refund pada langganan bulanan Apple dengan komitmen 12 bulan bisa mengakhiri setahun penuh, atau hanya satu bulannya
Langganan bulanan Apple dengan komitmen 12 bulan membagi refund menjadi dua. Refund untuk bulan yang sudah lewat, tagihan tetap berjalan. Refund untuk bulan berjalan, komitmen langsung berakhir. Berikut cara setiap kasus sampai ke server Anda, berapa biayanya, dan apa yang perlu dikirim ke Apple.