Semua artikel
PlaybookWaktu baca 8 menit

Penyalahgunaan refund berulang membebani Anda dua kali, begini cara toko membiarkan Anda melawan balik

Pelanggan yang meminta refund lagi dan lagi bukanlah kebetulan. Penyalahgunaan refund membebani Anda uang yang dikembalikan ditambah komputasi yang sudah Anda keluarkan, dan kedua toko memberi Anda sinyal identitas, appAccountToken milik Apple dan ID akun tersamar milik Google, untuk merangkai pola itu menjadi satu.

Sebuah pintu putar di aula transit yang temaram dengan satu sosok melewatinya berulang kali, menggambarkan penyalahgunaan refund berulang

Poin utama

  • Hanya dua alur refund yang pernah membiarkan developer mengirimkan bukti melawan penyalahgunaan refund: CONSUMPTION_REQUEST milik Apple, dengan jendela 12 hours, dan tinjauan chargeback Google Play melalui Review Refund API, dengan jendela 24 hours.
  • appAccountToken milik Apple adalah UUID yang Anda buat dan lampirkan pada sebuah pembelian, dan StoreKit mengikatnya ke transaksi yang dihasilkan, sehingga server Anda dapat mengaitkan setiap refund kembali ke akun persis yang melakukannya.
  • ID akun tersamar Google Play adalah string ter-hash, dibatasi 64 characters, yang digunakan Google sendiri untuk mendeteksi aktivitas tidak wajar seperti banyak perangkat melakukan pembelian pada satu akun dalam jendela waktu singkat.
  • Menyimpan data pribadi teks terbuka dalam ID akun tersamar Google membuat pembelian Anda diblokir, jadi kolom itu harus berupa nilai terenkripsi atau hash satu arah, tidak pernah email mentah.
  • Kolom voidedReason Google Play menandai friendly_fraud dan fraud sebagai alasan yang berbeda dari refund remorse biasa, yang membuat Anda dapat mengarahkan penyalahguna berulang ke antrean tinjauan alih-alih jalur refund dan lupakan otomatis.
  • Google mengatakan mereka memblokir lebih dari $2 billion transaksi curang dan menyalahgunakan pada 2022, dan kolom identitas yang memberi makan sistem itu hanya berfungsi jika Anda mengisinya pada setiap pembelian.
  • Setiap pembelian yang di-refund namun tetap mempertahankan aksesnya adalah komputasi, penyimpanan, dan biaya API yang terus Anda bayar atas uang yang sudah Anda kembalikan, dan penyalahguna refund berulang melipatgandakan tagihan itu dengan sengaja.

Satu refund adalah biaya menjalankan bisnis. Akun yang sama meminta refund untuk keempat kalinya, setelah menggunakan apa yang dibelinya setiap kali, adalah penyalahgunaan refund, dan itu adalah pola yang hanya bisa Anda lihat jika setiap pembelian membawa identitas yang Anda kendalikan. Apple dan Google keduanya memberi Anda identitas itu, dan keduanya memberi Anda jendela sempit untuk menyodorkannya ke toko sebelum sebuah refund atau chargeback diputuskan. Lewatkan jendelanya, atau tidak pernah melampirkan identitasnya, dan seorang penyalahguna refund berulang tampak persis seperti pelanggan yang tidak puas untuk pertama kalinya. Berikut cara membedakan mereka, dan berapa nilai perbedaan itu dalam uang.

Mengapa penyalahgunaan refund adalah masalah identitas, bukan masalah refund

Toko yang memutuskan refund. Anda tidak bisa menghentikan pelanggan untuk meminta, dan pada sebagian besar alur Anda tidak bisa menghentikan toko untuk mengabulkan. Yang bisa Anda lakukan adalah memutuskan apakah sebuah akun tertentu pernah melakukan ini sebelumnya, dan apakah konten yang dibelinya benar-benar dikirim dan digunakan. Kedua hal itu adalah pertanyaan tentang identitas: pengguna Anda yang mana yang ada di balik transaksi ini, dan bagaimana riwayatnya. Jika pembelian Anda tidak membawa pengenal stabil kembali ke catatan pengguna Anda sendiri, Anda tidak bisa menjawab pertanyaan mana pun, dan setiap refund datang tanpa konteks.

Itulah kesenjangan yang sesungguhnya. Mekanika refund ditetapkan oleh kebijakan. Bukti yang Anda bawa kepadanya sepenuhnya milik Anda untuk dibangun, dan itu dimulai pada saat pembelian, bukan saat refund.

Dua jendela di mana bukti mengubah hasilnya

Ada tepat dua alur di mana apa pun yang Anda kirim dapat menggerakkan sebuah keputusan. CONSUMPTION_REQUEST milik Apple terpicu ketika pelanggan meminta refund atas produk consumable atau langganan yang diperpanjang otomatis, dan Anda punya 12 hours untuk menjawab. Tinjauan chargeback Google Play terpicu ketika pengguna menyengketakan tagihan dengan banknya, dan Anda punya 24 hours untuk merespons melalui Review Refund API. Setiap refund lainnya, refund swalayan Play 48-hour, refund yang diberikan dukungan, refund otomatis atas pembelian yang tidak diakui, diputuskan tanpa Anda.

Kedua saluran bukti itu jauh lebih kuat ketika transaksi sudah membawa pengenal Anda. Informasi konsumsi Apple dapat menyertakan appAccountToken bersama riwayat dan pengeluaran akun, dan tinjauan Google dapat bersandar pada ID akun tersamar yang telah diawasinya sejak pembelian. Akun tanpa pengenal adalah akun tanpa riwayat untuk diserahkan.

Dua kolom identitas, berdampingan

Apple dan Google memecahkan masalah yang sama dengan cara yang hampir sama, dengan nama berbeda dan aturan berbeda. Keduanya membiarkan Anda mencap sebuah pembelian dengan nilai yang menunjuk kembali ke catatan pengguna Anda sendiri. Tidak satu pun aktif secara bawaan. Keduanya tidak berguna jika Anda tidak mengaturnya pada saat pembelian.

Apple: appAccountToken

appAccountToken adalah UUID yang Anda buat dan berikan saat sebuah pembelian dimulai. StoreKit mengasosiasikannya dengan transaksi yang dihasilkan, dan itu muncul dalam data transaksi yang diverifikasi server Anda serta dalam informasi konsumsi yang Anda kirim balik selama sebuah CONSUMPTION_REQUEST. Karena itu nilai milik Anda, ia memetakan transaksi toko langsung ke akun di basis data Anda, tanpa melibatkan email atau nama. Ia harus berupa UUID sungguhan, dan apa pun selain itu ditolak. Apple kemudian menambahkan endpoint Set App Account Token yang dapat melampirkan atau memperbarui token pada transaksi lampau, termasuk pembelian yang dibuat di luar aplikasi Anda seperti penukaran kode penawaran.

Google Play: ID akun tersamar

Padanan Google adalah setObfuscatedAccountId, sebuah string opsional yang terikat pada akun yang membeli. Dokumentasi Google sendiri terus terang tentang tujuannya: Google Play menggunakannya untuk mendeteksi aktivitas tidak wajar, seperti banyak perangkat melakukan pembelian pada akun yang sama dalam rentang waktu singkat, dan untuk memblokir sebagian transaksi curang sebelum selesai. Ia dibatasi 64 characters, dan tidak boleh membawa data pribadi teks terbuka. Simpan email mentah di sana dan Google memblokir pembelian secara langsung, karena kolom itu mengharapkan nilai terenkripsi atau hash satu arah. Kolom saudara, setObfuscatedProfileId, ada untuk aplikasi di mana satu akun memegang beberapa profil.

KolomTokoTipe dan batasDiatur olehBawaanApa yang toko lakukan dengannya
appAccountTokenAppleUUIDAnda, saat pembelianTidak diaturMengikat transaksi ke pengguna Anda, dikembalikan dalam data transaksi dan konsumsi
obfuscatedAccountIdGoogle PlayString ter-hash, maks 64 karakterAnda, saat pembelianTidak diaturMendeteksi aktivitas tidak wajar dan memblokir sebagian penipuan sebelum selesai

Berapa sebenarnya biaya sebuah refund dari penyalahguna berulang

Refund itu sendiri adalah bagian terkecil dari tagihan. Ketika sebuah toko mengabulkan refund, Anda mengembalikan pendapatan, dan sebanyak itu terlihat di buku besar. Yang tidak ada di baris refund adalah segala hal yang Anda keluarkan untuk mengirimkan produk yang sekarang gratis.

Bayangkan sebuah produk consumable yang memicu kerja nyata: satu pembuatan gambar, serangkaian panggilan API ke penyedia model, sebuah ekspor video, sebuah pembayaran ke kreator. Anda membayar komputasi itu pada saat pelanggan menggunakannya. Refund menarik kembali harganya, tapi tidak menarik kembali tagihan penyedia. Penyalahguna refund berulang adalah orang yang telah belajar bahwa konten bertahan setelah refund, jadi mereka menjalankan putarannya lagi: beli, pakai, refund, ulangi. Setiap siklus, Anda menanggung biaya pengiriman untuk kedua kalinya.

Lalu ada pergeseran biaya milik toko itu sendiri. Mulai August 3 2026, Google Play memindahkan harga pembelian dan biaya chargeback bank ke developer untuk pesanan yang ditempatkan setelah tanggal itu. Sebuah chargeback yang dulunya sebagian besar masalah Google menjadi pendapatan Anda ditambah sebuah biaya, dan seorang penyengketa berulang menaikkan angka itu setiap kali. Kolom identitas adalah yang membuat Anda dapat memberi Review Refund API bukti untuk melawan sengketa tidak sah di dalam jendela 24 hours.

Google membingkai skalanya dengan gamblang: mereka mengatakan memblokir lebih dari $2 billion transaksi curang dan menyalahgunakan pada 2022. Angka itu ada karena sinyalnya, ID akun tersamar di antaranya, terisi. Aplikasi yang mengirim pembelian dengan kolom identitas kosong memilih keluar dari perlindungan itu.

Sebuah sidik jari dibaca pada sensor kaca yang menyala, menggambarkan bagaimana kolom identitas toko mengikat sebuah pembelian kembali ke akun di balik penyalahgunaan refund

Cara menangkap penyalahguna refund berulang sebelum toko memutuskan

Tandai setiap pembelian dengan identitas yang Anda miliki

Atur appAccountToken pada setiap pembelian StoreKit dan setObfuscatedAccountId pada setiap pembelian Play Billing, keduanya dibuat dari catatan pengguna Anda sendiri. Di Apple, gunakan UUID sungguhan yang dipetakan ke akun. Di Google, hash kunci akun agar tidak ada data pribadi yang berjalan dalam teks terbuka. Lakukan ini pada saat pembelian, karena di Google inilah satu langkah yang tidak bisa Anda pulihkan nanti.

Simpan buku besar yang dikunci pada identitas itu

Simpan setiap pembelian, pengiriman, peristiwa konsumsi, dan refund terhadap pengenal tersebut. Ketika sebuah CONSUMPTION_REQUEST atau tinjauan chargeback tiba, riwayat lengkap akun, termasuk refund sebelumnya, hanya sejauh satu pencarian. Informasi konsumsi Apple punya kolom eksplisit persis untuk ini: consumptionStatus, deliveryStatus, playTime, accountTenure, lifetimeDollarsPurchased, dan refundPreference Anda.

Baca voidedReason dan arahkan penyalahguna secara berbeda

Ketika sebuah pembelian Google dibatalkan, kolom voidedReason memberi tahu Anda alasannya, dan friendly_fraud serta fraud adalah nilai yang terpisah dari refund remorse biasa. Arahkan itu ke antrean tinjauan dan kebijakan yang lebih ketat, bukan jalur otomatis yang sama seperti refund pertama kali. Panduan Google sendiri adalah model beberapa peringatan: peringatkan pelanggar pertama, ambil tindakan lebih tegas pada yang berulang, dan nonaktifkan pembelian untuk akun yang terus melakukannya.

Jawab jendela setiap kali

Bukti hanya dihitung di dalam kedua jendela. Otomatiskan respons CONSUMPTION_REQUEST agar terpicu dengan aman di dalam 12 hours, dan tinjauan chargeback agar terpicu di dalam 24 jam. Riwayat sempurna yang Anda serahkan terlambat adalah riwayat yang tidak pernah dibaca toko.

Sinyal yang ingin Anda tangkapDi mana ia beradaKolom atau alur yang memunculkannya
Akun sama, banyak perangkat, jendela singkatGoogle PlayDeteksi aktivitas tidak wajar ID akun tersamar
Akun ini pernah refund sebelumnyaBuku besar AndaRiwayat yang dikunci pada appAccountToken atau ID akun tersamar
Konten dikirim dan digunakanAppledeliveryStatus dan consumptionStatus dalam info konsumsi
Sebuah sengketa sebenarnya penipuan pihak pertamaGoogle PlayNilai voidedReason friendly_fraud

Apa yang akan dan tidak akan toko lakukan untuk Anda

Perlu tepat soal pembagian tugas, karena mudah untuk mengira toko menangani penyalahgunaan, dan mereka sebagian besar tidak memberi tahu Anda ketika mereka tidak. Google secara aktif menggunakan ID akun tersamar untuk memblokir sebagian penipuan sebelum sebuah pembelian selesai, dan sistemnya menangkap sebagian besar di tingkat platform. Apple memutuskan setiap refund sendiri dan memperlakukan informasi konsumsi Anda sebagai masukan, tidak pernah sebagai suara. Tidak ada toko yang mengelola daftar penyalahguna Anda untuk Anda, memotong produk consumable yang di-refund dari saldo Anda, atau menolak seorang penyalahguna refund berulang atas nama Anda. Identitas adalah milik toko untuk ditindaklanjuti di tepi dan milik Anda untuk ditindaklanjuti di mana pun lainnya.

Ini alasan yang sama mengapa RefundHalt mengunci segalanya pada identitas pembelian: sebuah refund, sebuah tinjauan chargeback, dan sebuah permintaan konsumsi untuk akun yang sama teratasi menjadi satu riwayat, sehingga penyalahguna refund berulang muncul sebagai sebuah pola pada saat pertama kali mereka mengulang, bukan setelah tagihan keempat yang sudah Anda bayar.

Pertanyaan yang sering diajukan

Apa itu penyalahgunaan refund dalam sebuah aplikasi?
Penyalahgunaan refund adalah pelanggan yang berulang kali meminta refund setelah menerima dan menggunakan apa yang dibelinya, sehingga mereka menyimpan konten atau manfaatnya sambil mendapatkan uangnya kembali. Di toko aplikasi biasanya muncul sebagai akun yang sama me-refund produk consumable atau langganan lagi dan lagi, atau sebagai friendly fraud, di mana tagihan yang sah disengketakan dengan bank.
Bagaimana cara mengaitkan pembelian dalam aplikasi ke pengguna tertentu?
Di Apple, buat sebuah UUID dan berikan sebagai appAccountToken saat pembelian dimulai, dan StoreKit mengikatnya ke transaksi lalu mengembalikannya dalam data transaksi dan konsumsi. Di Google Play, panggil setObfuscatedAccountId dengan nilai ter-hash yang terikat ke akun. Keduanya memetakan transaksi toko ke catatan pengguna Anda sendiri tanpa mengekspos data pribadi.
Bisakah Apple atau Google memberi tahu saya bahwa sebuah akun adalah penyalahguna refund berulang?
Tidak secara langsung. Google menggunakan ID akun tersamar untuk mendeteksi aktivitas tidak wajar dan memblokir sebagian penipuan sebelum pembelian, dan Apple membiarkan Anda mengirimkan riwayat akun selama sebuah permintaan konsumsi, tapi tidak ada toko yang menyerahkan daftar penyalahguna refund berulang kepada Anda. Anda membangunnya sendiri dari buku besar Anda sendiri yang dikunci pada kolom identitas.
Mengapa Google memblokir pembelian saya ketika saya mengatur ID akun?
Karena ID akun tersamar tidak boleh mengandung data pribadi teks terbuka. Menyimpan sesuatu seperti alamat email mentah di dalamnya membuat Google Play memblokir pembelian. Gunakan nilai terenkripsi atau hash satu arah, dan tetap di dalam batas 64 characters.
Apakah melawan refund melalui permintaan konsumsi menghentikan penyalahgunaan?
Itu bisa menguranginya. CONSUMPTION_REQUEST adalah salah satu dari hanya dua alur di mana bukti Anda mencapai toko sebelum ia memutuskan, dan riwayat akun ditambah data pengiriman dan konsumsi membantu Apple mengidentifikasi penyalahgunaan pengembalian dan friendly fraud. Namun ini bukan pemblokiran. Apple tetap memutuskan, dan penyalahgunaan yang tiba melalui alur yang tidak dapat dilawan tidak terpengaruh.

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.