Semua artikel
PanduanWaktu baca 8 menit

Refund add-on langganan Google Play bisa menyasar satu item, tetapi pelanggan Anda hanya bisa membatalkan seluruh paket

Google Play mengizinkan satu langganan dasar membawa hingga 49 add-on dalam satu purchase token. Berikut cara kerja refund add-on langganan, panggilan API mana yang me-refund satu item tanpa menyentuh item lain, kapan Google memblokirnya, dan berapa biaya setiap jalur refund bagi Anda.

Seseorang di meja kafe memeriksa ponsel Android di samping struk berisi rincian item, jenis pembelian paket di mana refund add-on langganan Google Play berlaku per baris

Poin utama

  • Fitur langganan dengan add-on di Google Play menaruh satu langganan dasar dan hingga 49 add-on, total 50 item, dalam satu pembelian, dan setiap item harus memakai periode penagihan berulang yang sama.
  • Pengguna Google Play tidak bisa membatalkan satu add-on dari Play Subscription Center. Mereka hanya bisa membatalkan langganan dasar beserta add-on-nya sekaligus, jadi penghapusan satu add-on harus dilakukan di dalam aplikasi developer.
  • Metode purchases.subscriptionsv2.revoke menerima itemBasedRefund dengan satu productId. Jika item lain tetap aktif, Google hanya mencabut dan me-refund penuh item tersebut, dan langganan tetap berjalan.
  • Google memblokir refund berbasis item saat langganan berada dalam status pembayaran ditolak, saat item sudah kedaluwarsa atau tidak dimiliki, dan pada langganan prabayar.
  • proratedRefund pada langganan dengan add-on me-refund pesanan terbaru dari setiap item, diprorata sesuai sisa waktu hingga perpanjangan berikutnya, dan mencabut akses ke semua item sekaligus.
  • Real-time developer notifications untuk langganan dengan add-on tidak membawa subscriptionId, jadi backend harus memanggil purchases.subscriptionsv2.get dan membaca setiap lineItem untuk melihat item mana yang masih berhak diakses.
  • Satu-satunya alur refund Google Play yang meminta bukti dari developer adalah chargeback yang ditandai untuk ditinjau melalui orders.reviewrefund, dengan jendela waktu 24 jam. Untuk pesanan yang dibuat setelah 3 Agustus 2026, chargeback yang kalah membuat developer menanggung harga pembelian dikurangi biaya layanan Play, ditambah biaya dari bank.

Jual satu langganan dasar dengan tiga add-on di Google Play, dan Anda bisa me-refund salah satu add-on tanpa membatalkan sisanya. Pelanggan Anda tidak bisa melakukan hal yang sama dari sisi mereka. Google hanya mengizinkan pengguna membatalkan seluruh paket, jadi alat yang presisi untuk refund add-on langganan Google Play ada di tangan Anda sebagai developer, dan hanya lewat API. Gunakan dengan tepat, dan Anda me-refund baris yang bermasalah saja. Salah memilih panggilan, dan Anda me-refund, atau mencabut, semuanya.

Bagaimana langganan dengan add-on disusun

Google mengumumkan checkout multi-produk untuk langganan di I/O 2025. Satu alur pembelian menjual langganan dasar plus add-on opsional, ditagih bersama dalam satu jadwal. Panduan developer Google menetapkan batas yang tegas:

  • Hanya base plan yang diperpanjang otomatis yang bisa membawa add-on. Paket prabayar tidak bisa.
  • Setiap item harus memakai periode penagihan berulang yang sama. Add-on bulanan pada langganan dasar tahunan tidak diizinkan.
  • Satu pembelian memuat paling banyak 50 item, artinya satu langganan dasar dan hingga 49 add-on.
  • Fitur ini tidak tersedia di Korea Selatan.

Semuanya berada di satu purchase token. Saat Anda memanggil purchases.subscriptionsv2.get, respons berisi daftar lineItems, satu entri per item. Setiap line item punya productId, expiryTime, dan latestSuccessfulOrderId sendiri. Field terakhir itulah yang membuat refund per item mungkin dilakukan: setiap item punya pesanan terbarunya sendiri.

Prorata dimulai sejak hari pertama

Saat pengguna menambahkan add-on di tengah siklus, Google langsung menagih jumlah prorata agar add-on diperpanjang pada tanggal yang sama dengan langganan dasar. Contoh dari Google sendiri adalah add-on bulanan $10 yang ditambahkan pada 15 Agustus setelah masa uji coba 7 hari, ditagih $2.90 untuk menutup sisa bulan Agustus. Jadi satu add-on bisa punya pesanan pertama yang pendek dengan nominal tidak lazim sebelum pesanan penuh pertamanya. Ingat hal ini saat Anda mencari pesanan mana yang akan terkena refund.

Pelanggan Anda hanya bisa membatalkan seluruh paket

Halaman bantuan konsumen Google menyatakannya dengan lugas. Pengguna hanya bisa membatalkan langganan dasar dan add-on secara bersamaan, dan saat ini mereka tidak bisa membatalkan add-on satu per satu dari Google Play. Fitur jeda juga tidak tersedia. Jika pengguna menolak kenaikan harga, Google membatalkan langganan dasar beserta semua add-on-nya.

Akibatnya, pelanggan yang ingin berhenti dari satu add-on hanya punya dua pilihan di Play Store: membatalkan semuanya, atau meminta uangnya kembali. Keduanya tidak menguntungkan Anda. Panduan Google menyebutkan bahwa aplikasi Anda bisa menawarkan penghapusan sebagai gantinya. Add-on yang dihapus akan kedaluwarsa di akhir periode penagihan saat ini, dan sisa paket tetap diperpanjang.

Perbandingan alat refund add-on langganan Google Play

Google memberi Anda lima cara untuk mengembalikan uang pada langganan dengan add-on. Kelimanya berbeda dalam hal apa yang di-refund dan apakah akses berakhir.

AlatApa yang di-refundApa yang terjadi pada akses
Refund di Play Console pada pesanan tertentuJumlah yang Anda pilih pada pesanan ituTidak ada yang dicabut
orders.refund, revoke tidak diaturJumlah penuh dari satu pesananTidak ada yang dicabut
subscriptionsv2.revoke dengan itemBasedRefundTagihan terbaru penuh pada satu itemHanya item itu yang berakhir, kecuali jika itu item aktif terakhir
subscriptionsv2.revoke dengan proratedRefundPesanan terbaru setiap item, diprorata sesuai sisa waktuSemua item langsung berakhir
subscriptionsv2.revoke dengan fullRefundTagihan terbaru penuh pada setiap itemSemua item langsung berakhir

Google menambahkan satu peringatan keras dalam panduan add-on: jangan memanggil purchases.subscriptions.refund yang sudah usang pada langganan dengan add-on. Selain itu, orders.refund tidak bisa menyentuh pesanan yang lebih lama dari tiga tahun.

Cara kerja itemBasedRefund

Objek itemBasedRefund menerima satu field wajib, productId, yang menyebut item yang akan dicabut. Google menjelaskan dua kemungkinan hasil:

  • Item lain masih aktif: hanya item yang disebut yang dicabut dan di-refund penuh, dan langganan tetap berjalan.
  • Tidak ada item lain yang aktif: item dicabut, di-refund penuh, dan seluruh langganan dibatalkan.

Anda bisa menyebut satu item per permintaan. Untuk me-refund dua add-on, lakukan dua panggilan.

Kapan Google memblokir refund berbasis item

Google menolak itemBasedRefund dalam tiga kasus. Langganan berada dalam status pembayaran ditolak apa pun, termasuk masa tenggang dan penangguhan akun. Item yang Anda sebut tidak dimiliki atau sudah kedaluwarsa. Atau pembelian tersebut adalah langganan prabayar, di mana penghentian per item sama sekali tidak didukung.

Apa yang terjadi saat refund berdasarkan ID pesanan

Panduan Google mencatat bahwa flag revoke pada orders.refund hanya mengakhiri akses jika pesanan tersebut adalah pesanan terbaru pada langganan. Pada pesanan yang lebih lama, refund berhasil dan tidak ada yang dicabut. Play Console bekerja dengan cara yang sama: refund pesanan terbaru dan langganan dihapus, refund pesanan yang lebih lama dan langganan tetap aktif. Dengan add-on, ambil pesanan dari latestSuccessfulOrderId milik line item yang benar, atau Anda bisa me-refund tagihan yang berbeda dari yang Anda maksud.

Siapa yang memutuskan refund, dan kapan Anda diminta bukti

Sebagian besar refund pada langganan dengan add-on diputuskan tanpa melibatkan Anda, sama seperti langganan Play lainnya. Dalam 48 jam setelah pembelian, pengguna bisa mengajukan permintaan ke Google melalui Laporkan masalah, dan Google yang memutuskan. Setelah itu, Google mengarahkan mereka kepada Anda. Dan jika Anda tidak melakukan acknowledge atas pembelian langganan baru dalam tiga hari, Google otomatis me-refund pengguna dan mencabut pembelian tersebut.

Hanya satu alur yang meminta penjelasan dari sisi Anda. Saat pemegang kartu mengajukan chargeback dan Google menandainya untuk ditinjau developer, Anda menerima PendingRefundReviewNotification dan punya waktu 24 jam untuk memanggil orders.reviewrefund dengan preferensi refund dan bukti penggunaan. Chargeback sendiri diputuskan oleh bank, dan keputusan bank bersifat final.

Melacak refund add-on di server Anda

Referensi RTDN Google mencantumkan SUBSCRIPTION_ITEMS_CHANGED untuk perubahan pada item dalam paket langganan, dan SUBSCRIPTION_REVOKED untuk langganan yang dicabut sebelum waktu kedaluwarsanya. Panduan Google menyebutkan bahwa pencabutan melalui subscriptionsv2.revoke memicu notifikasi SUBSCRIPTION_REVOKED sekaligus VoidedPurchaseNotification, dan dicatat di Voided Purchases API.

Masalahnya ada pada subscriptionId. Google menyatakan field ini tidak disertakan dalam RTDN untuk langganan dengan add-on. Jadi jangan mengandalkan notifikasi untuk memberi tahu item mana yang berubah. Pada setiap notifikasi untuk sebuah paket:

  • Panggil purchases.subscriptionsv2.get dengan purchaseToken.
  • Baca setiap lineItem beserta expiryTime-nya. Google menyatakan Anda harus memperbarui expiryTime untuk semua item, bukan hanya item yang Anda perkirakan.
  • Berikan atau cabut akses per productId, bukan per purchase token.
  • Lakukan polling ke Voided Purchases API sebagai cadangan. API ini mencakup 30 hari terakhir.

Masa tenggang dan penangguhan akun berlaku untuk seluruh paket

Masalah pembayaran berdampak pada semua item sekaligus. Google memilih masa tenggang terpendek di antara item yang aktif dan menerapkannya pada seluruh perpanjangan. Selama masa tenggang, pengguna tetap memiliki semua item. Dalam penangguhan akun, akses ke semua item ditangguhkan. Jika pembayaran tidak pernah pulih, item yang pembayarannya ditolak akan kedaluwarsa dan item lainnya dilanjutkan untuk sisa periode penagihannya.

Meja kerja developer dengan laptop yang menampilkan grafik biaya server di samping invoice berisi rincian item, tempat biaya di balik setiap add-on langganan Google Play dilacak

Berapa biaya setiap jalur refund bagi Anda

Add-on biasanya terkait dengan sesuatu yang Anda bayar. Penyimpanan cloud tambahan ditagih oleh penyedia penyimpanan Anda. Paket kredit AI ditagih dalam bentuk panggilan API model. Kursi tambahan berarti komputasi lebih banyak, dan tier kreator bisa memicu pembayaran ke kreator. Setiap biaya itu muncul saat pengguna memakai add-on, dan refund mengembalikan harganya tanpa mengembalikan satu pun biaya tersebut.

Me-refund terlalu banyak

Kesalahan yang mahal adalah memakai fullRefund atau proratedRefund saat keluhannya hanya soal satu add-on. Keduanya mencabut semua item, jadi Anda ikut mengembalikan harga langganan dasar dan kehilangan pelanggan yang sebenarnya ingin bertahan. itemBasedRefund hanya mengembalikan tagihan terbaru add-on tersebut. Saat itu diblokir, orders.refund pada pesanan terbaru item tersebut mengembalikan uang tanpa mengakhiri apa pun.

Refund sebagian dan biaya

Play Console memungkinkan Anda memberikan refund sebagian pada pesanan langganan, dan Google menyatakan persentase refund juga berlaku untuk payout dan biaya layanan Anda. Refund setengah pesanan, dan setengah biaya Google ikut kembali. Biaya Anda sendiri untuk menyediakan add-on itu tidak kembali.

Chargeback pada sebuah paket

Untuk pesanan yang dibuat setelah 3 Agustus 2026, Google memindahkan biaya chargeback ke developer. Saat chargeback berhasil, Anda membayar harga pembelian dikurangi biaya layanan Play, ditambah biaya yang dikenakan bank. Pesanan paket dengan beberapa add-on berarti nilai yang lebih besar untuk hilang. Log penggunaan per add-on, yang dikaitkan dengan ID akun yang disamarkan, adalah bukti yang Anda kirim dalam peninjauan 24 jam.

Checklist untuk refund add-on

  • Sediakan cara di dalam aplikasi untuk menghapus satu add-on, karena Google Play tidak menyediakannya.
  • Simpan productId, expiryTime, dan latestSuccessfulOrderId dari setiap lineItem pada setiap notifikasi.
  • Gunakan itemBasedRefund sebagai pilihan utama saat masalahnya hanya pada satu add-on.
  • Saat langganan berada dalam masa tenggang atau penangguhan akun, refund pesanan item tersebut dengan orders.refund sebagai gantinya.
  • Jangan pernah memanggil purchases.subscriptions.refund yang sudah usang pada sebuah paket.
  • Catat penggunaan add-on per akun agar peninjauan chargeback bisa dikirim dalam 24 jam.
  • Laporkan tingkat refund per add-on, bukan hanya per langganan, agar satu add-on yang lemah tidak tersembunyi di balik angka base plan.

Pertanyaan yang sering diajukan

Apakah pengguna bisa membatalkan satu add-on saja dalam langganan Google Play?
Tidak dari Google Play. Halaman bantuan Google menyatakan pengguna hanya bisa membatalkan langganan dasar dan add-on secara bersamaan. Aplikasi Anda bisa menawarkan penghapusan satu add-on, yang kemudian kedaluwarsa di akhir periode penagihan saat ini.
Bagaimana cara me-refund satu add-on tanpa membatalkan langganan?
Panggil purchases.subscriptionsv2.revoke dengan itemBasedRefund yang menyebut productId add-on tersebut. Jika item lain tetap aktif, Google hanya mencabut dan me-refund penuh item itu. Anda juga bisa me-refund pesanan terbaru item tersebut dengan orders.refund tanpa flag revoke, yang mengembalikan uang dan membiarkan akses tetap utuh.
Mengapa panggilan itemBasedRefund saya gagal?
Google memblokirnya saat langganan berada dalam status pembayaran ditolak, saat item tidak dimiliki atau sudah kedaluwarsa, dan pada langganan prabayar. Periksa expiryTime milik line item dan status langganan sebelum memanggilnya.
Apakah refund prorata berfungsi pada langganan dengan add-on?
Ya, tetapi refund ini mencabut semuanya. Google me-refund pesanan terbaru dari setiap item, diprorata sesuai sisa waktu hingga perpanjangan berikutnya, dan akses ke semua item langsung berakhir.
RTDN mana yang memberi tahu saya bahwa sebuah add-on telah di-refund?
Panduan Google menyebutkan pencabutan memicu SUBSCRIPTION_REVOKED dan VoidedPurchaseNotification, sementara SUBSCRIPTION_ITEMS_CHANGED mencakup perubahan pada item dalam sebuah paket. Karena subscriptionId tidak tersedia untuk paket, panggil purchases.subscriptionsv2.get dan baca setiap lineItem untuk melihat apa yang berubah.

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.