Semua artikel
PlaybookWaktu baca 7 menit

Pelanggan yang ditagih dua kali untuk langganan yang sama biasanya membayar di dua platform, dan hanya satu refund yang bisa Anda berikan

Saat pelanggan ditagih dua kali untuk langganan yang sama, biasanya satu paket dibeli lewat App Store dan satu lagi lewat Google Play atau situs web Anda. Berikut siapa yang bisa me-refund masing-masing, berapa biayanya bagi Anda, dan cara menghentikan tagihan kedua.

Sebuah iPhone dan sebuah ponsel Android berdampingan di meja, di samping rekening koran dengan dua tagihan yang sama, menggambarkan pelanggan yang ditagih dua kali untuk langganan yang sama

Poin utama

  • Pelanggan yang ditagih dua kali untuk langganan yang sama biasanya membelinya lewat dua toko berbeda, misalnya App Store dan Google Play. Setiap toko menagih dan me-refund pembeliannya sendiri secara terpisah.
  • Developer tidak bisa me-refund pembelian App Store. Apple yang memutuskan, melalui reportaproblem.apple.com atau melalui lembar refund yang bisa dibuka aplikasi dengan beginRefundRequest dari StoreKit. Menurut Apple, persetujuan atau penolakan memakan waktu hingga 48 jam.
  • Di Google Play, developer bisa me-refund pesanan dari Order management di Play Console atau melalui API orders.refund, yang tidak bisa me-refund pesanan berusia lebih dari 3 tahun.
  • Me-refund pesanan terbaru dari langganan Google Play langsung menghapus langganan dan membatalkan perpanjangan berikutnya. Me-refund pesanan yang lebih lama membuat langganan tetap aktif.
  • Apple mengirim CONSUMPTION_REQUEST untuk permintaan refund pada semua jenis produk, termasuk langganan yang diperpanjang otomatis. Developer punya waktu 12 jam untuk merespons dengan Send Consumption Information jika pelanggan memberi persetujuan.
  • Untuk pesanan Google Play yang dibuat setelah 3 Agustus 2026, chargeback membebani developer sebesar harga pembelian, dikurangi biaya layanan Play, ditambah biaya chargeback dari bank.
  • Dengan memasang appAccountToken pada pembelian Apple dan ID akun yang disamarkan pada pembelian Google Play, server Anda bisa melihat satu pelanggan di balik dua langganan toko sebelum tagihan kedua terjadi.

Tidak ada apa pun di sistem penagihan Apple maupun Google yang mencegah satu orang membayar keduanya untuk langganan Anda di bulan yang sama. Saat pelanggan ditagih dua kali untuk langganan yang sama, hampir selalu itulah yang terjadi. Mereka berlangganan di iPhone, lalu berlangganan lagi di tablet Android atau di situs web Anda, dan aplikasi Anda tidak mengenali paket pertama. Pelanggan melihat dua tagihan dan menghubungi Anda. Masalahnya, Anda hanya bisa me-refund salah satunya sendiri, dan itu pun hanya jika tidak dibeli lewat Apple. Berikut cara kerja masing-masing sisi, berapa kerugian akibat duplikat ini, dan cara memastikan hal ini tidak terulang.

Mengapa pelanggan ditagih dua kali untuk langganan yang sama

Setiap toko memiliki pembeliannya sendiri. Apple menagih langganan App Store, Google menagih langganan Google Play, dan pemroses pembayaran Anda menagih paket web. Tidak ada yang tahu keberadaan yang lain. Server Anda satu-satunya tempat kedua pembelian bisa bertemu, dan itu pun hanya jika keduanya membawa ID yang mengaitkannya ke akun yang sama.

Jalur yang biasa berujung pada tagihan ganda terlihat seperti ini:

  • Pelanggan berganti ponsel, dari iOS ke Android atau sebaliknya, lalu berlangganan lagi karena aplikasi baru menampilkan paywall.
  • Pelanggan berlangganan di situs web Anda, memasang aplikasi, dan belum masuk ke akun, sehingga aplikasi menjual langganan toko di atas paket yang sudah ada.
  • Pelanggan mencopot aplikasi dan mengira paketnya ikut berakhir. Bantuan Google menyatakan bahwa mencopot aplikasi tidak membatalkan langganan Google Play-nya, dan paket App Store terus diperpanjang sampai dibatalkan di akun Apple.

“Aplikasi dan situs web Anda jelas tidak saling terhubung”

Itulah keluhan yang akan Anda baca di email dukungan, dan dari sisi pelanggan, keluhan itu wajar. Mereka membayar untuk satu produk. Diminta membayar lagi terasa seperti jebakan, meskipun itu kekeliruan dari kedua belah pihak. Cara tercepat untuk meredakannya adalah menyampaikan dengan jelas pembelian mana yang bisa Anda refund dan mana yang harus mereka ajukan ke Apple.

Siapa yang bisa me-refund setiap tagihan

Di sinilah sebagian besar balasan dukungan keliru. Anda hanya bisa menjanjikan apa yang Anda kendalikan.

Tempat duplikat dibeliSiapa yang memutuskan refundCara paket berhenti diperpanjangPeran Anda
App StoreHanya Apple, melalui reportaproblem.apple.com atau lembar refund di dalam aplikasi AndaPelanggan membatalkannya di akun Apple merekaCONSUMPTION_REQUEST, jawab dalam 12 jam jika pelanggan memberi persetujuan
Google Play, dalam 48 jam setelah pembelianPelanggan bisa memintanya ke Google, atau Anda bisa me-refund-nyaMe-refund pesanan terbaru membatalkan perpanjangan berikutnyaTidak ada untuk refund mandiri Google
Google Play, setelah 48 jamAnda, dari Play Console atau orders.refundMe-refund pesanan terbaru membatalkan perpanjangan berikutnyaAnda yang memutuskan
Situs web AndaAnda, melalui pemroses pembayaran AndaAnda membatalkannya di sisi AndaAnda yang memutuskan

Bisakah developer me-refund langganan App Store?

Tidak. Apple menangani setiap refund App Store. Yang bisa Anda lakukan adalah mempersingkat prosesnya. beginRefundRequest dari StoreKit membuka lembar refund Apple di dalam aplikasi Anda, dengan detail pembelian dan daftar alasan yang sudah terisi. Dokumentasi Apple menyebutkan App Store butuh waktu hingga 48 jam untuk menyetujui atau menolak permintaan. Di luar aplikasi, pelanggan masuk ke reportaproblem.apple.com, memilih “Request a refund”, memilih alasan, lalu memilih langganannya.

Me-refund sisi Google Play sendiri

Di Google Play, Anda yang memegang kendali. Di Play Console, buka Order management, pilih pesanan, lalu refund. Bantuan Play Console tegas soal langganan: refund pesanan terbaru dan langganan langsung dihapus, dengan perpanjangan berikutnya dibatalkan. Refund pesanan yang lebih lama dan langganan tetap aktif. Jika Anda mengotomatiskannya, API orders.refund melakukan hal yang sama, menerima flag revoke untuk langsung mengakhiri akses, dan menolak pesanan berusia lebih dari 3 tahun.

Berapa kerugian akibat langganan duplikat

Duplikat itu sejak awal bukan pendapatan yang boleh Anda simpan. Pertanyaan soal uangnya adalah berapa biaya tambahan di luar refund.

Kasus yang bersih

Misalkan pelanggan membayar $9.99 per bulan di App Store dan Google Play selama tiga bulan sebelum menyadarinya. Itu berarti $29.97 tagihan duplikat. Jika Anda me-refund tiga pesanan Google Play sendiri, Anda mengembalikan $29.97 dan masalah selesai hari itu juga. Jika pelanggan justru mengajukan sisi App Store ke Apple, Apple yang menentukan besaran refund dan Anda baru tahu melalui notifikasi server. Bagaimanapun juga, pendapatan satu platform untuk tiga bulan itu kembali ke pelanggan.

Kasus yang mahal

Kerugian sesungguhnya muncul saat pelanggan menyerah pada tim dukungan dan menelepon bank. Chargeback bersifat final begitu bank memutuskan. Google Play memberi Anda satu kesempatan untuk membela diri, yaitu tinjauan chargeback yang harus Anda jawab dalam 24 jam melalui orders.reviewrefund. Untuk pesanan Google Play yang dibuat setelah 3 Agustus 2026, chargeback yang kalah membebani Anda sebesar harga pembelian, dikurangi biaya layanan Play, ditambah biaya chargeback dari bank. Refund $29.97 yang bisa Anda proses dalam satu menit berubah menjadi $29.97 ditambah biaya yang tidak Anda kendalikan.

Biaya yang terus Anda bayar selama itu

Selama kedua paket aktif, backend Anda melayani satu orang tetapi melihat dua langganan. Jika Anda menghitung kursi, menyinkronkan data, atau memanggil API pihak ketiga berbayar per langganan, Anda mungkin membayar dua kali untuk komputasi, penyimpanan, dan panggilan API bagi satu pelanggan. Menggabungkan kedua catatan itu mengakhirinya.

Seorang developer membaca kotak masuk dukungan pelanggan di laptop di samping ponsel, sedang menangani refund langganan duplikat

Cara menangani tagihan ganda di tim dukungan

Jawab dengan cepat dan dalam satu pesan. Setiap balasan tambahan memperbesar peluang sengketa di bank.

  • Cari kedua pembelian berdasarkan akun pelanggan, bukan berdasarkan alamat email yang mereka pakai untuk menulis.
  • Tanyakan paket mana yang ingin mereka pertahankan. Biasanya paket di perangkat yang mereka pakai sekarang.
  • Jika duplikatnya ada di Google Play atau situs web Anda, refund sendiri dan beri tahu mereka bahwa refund sudah diproses.
  • Jika duplikatnya ada di App Store, arahkan mereka ke reportaproblem.apple.com, atau ke tombol refund di aplikasi Anda jika sudah ada, dan minta mereka membatalkannya di pengaturan akun Apple mereka.
  • Jika Apple kemudian mengirim CONSUMPTION_REQUEST dan pelanggan memberi persetujuan, jawab dalam 12 jam dengan data penggunaan yang akurat. Paket duplikat yang tidak pernah dipakai mudah disetujui Apple.

Cara mencegah tagihan kedua sebelum terjadi

Pencegahan lebih murah daripada refund apa pun, dan alatnya sudah tersedia di kedua toko.

Kaitkan setiap pembelian dengan ID akun Anda

Di iOS, buat UUID untuk setiap akun dan kirimkan sebagai opsi pembelian appAccountToken. Apple mengembalikan nilai yang sama di transaksi dan di informasi perpanjangan langganan. Jika pembelian terjadi di luar aplikasi Anda, endpoint Set App Account Token memungkinkan Anda memasang atau memperbarui token belakangan. Di Android, kirimkan ID akun yang di-hash dengan panjang maksimal 64 karakter ke setObfuscatedAccountId, jangan pernah data pribadi mentah.

Periksa hak akses sebelum menampilkan paywall

Sebelum paywall muncul, tanyakan ke server Anda sendiri apakah akun yang sedang masuk sudah memiliki paket aktif dari platform mana pun. Tampilkan ajakan masuk terlebih dahulu, lalu tampilkan paywall hanya untuk akun tanpa paket aktif.

Pantau dua paket aktif pada satu akun

Jalankan pemeriksaan harian untuk akun yang memiliki lebih dari satu langganan aktif di berbagai toko. Menemukannya di minggu pertama berarti refund satu bulan, bukan tiga bulan, dan email singkat, bukan chargeback.

RefundHalt melacak langganan App Store dan Google Play berdasarkan ID akun Anda sendiri, sehingga pelanggan yang membayar dua kali terlihat sebagai satu orang dengan dua paket sebelum bank mereka menyadarinya.

Pertanyaan yang sering diajukan

Mengapa pelanggan ditagih dua kali untuk langganan yang sama?
Biasanya karena mereka membelinya di dua platform, misalnya App Store dan Google Play, atau di sebuah toko dan di situs web Anda. Setiap toko menagih langganannya sendiri dan tidak tahu tentang yang lain, sehingga keduanya terus diperpanjang sampai salah satunya dibatalkan.
Bisakah saya me-refund langganan App Store untuk pelanggan?
Tidak. Hanya Apple yang bisa me-refund pembelian App Store. Anda bisa membuka lembar refund Apple di dalam aplikasi dengan beginRefundRequest dari StoreKit, atau mengarahkan pelanggan ke reportaproblem.apple.com. Menurut Apple, persetujuan atau penolakan permintaan memakan waktu hingga 48 jam.
Bagaimana cara me-refund langganan Google Play yang duplikat?
Refund pesanan dari Order management di Play Console, atau panggil API orders.refund. Me-refund pesanan terbaru langsung menghapus langganan dan membatalkan perpanjangan berikutnya. API ini tidak bisa me-refund pesanan berusia lebih dari 3 tahun.
Apakah me-refund langganan juga membatalkannya?
Di Google Play, me-refund pesanan terbaru membatalkan perpanjangan berikutnya, tetapi me-refund pesanan yang lebih lama membuat langganan tetap aktif. Di App Store, refund adalah keputusan Apple dan pelanggan membatalkan langganan dari akun Apple mereka.
Bagaimana cara mencegah pengguna berlangganan dua kali di iOS dan Android?
Pasang ID akun Anda sendiri pada setiap pembelian, dengan appAccountToken di Apple dan ID akun yang disamarkan di Google Play. Lalu periksa server Anda untuk paket aktif di platform mana pun sebelum menampilkan paywall, dan minta pengguna masuk terlebih dahulu.

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.