Semua artikel
PanduanWaktu baca 7 menit

Order ID App Store di struk pelanggan memberi tahu apa yang mereka beli dan apakah Apple sudah me-refund-nya

Endpoint Look Up Order ID milik Apple mengubah order ID dari struk App Store pelanggan menjadi transaksi bertanda tangan, termasuk tanggal dan alasan refund. Berikut cara memakainya untuk email refund, apa yang tidak bisa dilakukannya, dan bagaimana order ID Google Play dibandingkan.

Meja dukungan pelanggan dengan kotak masuk di laptop dan iPhone yang menampilkan struk pembelian, tempat order ID App Store memulai percakapan refund

Poin utama

  • Apple mengirim email struk berisi order ID setiap kali pelanggan melakukan pembelian dalam aplikasi, dan pelanggan juga bisa menemukan order ID mereka di riwayat pembelian App Store.
  • Endpoint App Store Server API milik Apple, Look Up Order ID (GET /inApps/v1/lookup/{orderId}), mengembalikan satu atau lebih transaksi bertanda tangan untuk order ID yang valid, sehingga tim dukungan bisa melihat productId dan purchaseDate tanpa menebak.
  • Transaksi App Store yang sudah didekode memuat revocationDate dan revocationReason, sehingga pencarian order ID menunjukkan apakah Apple sudah me-refund pembelian itu. Alasan 1 berarti Apple me-refund karena masalah nyata atau yang dirasakan di dalam aplikasi.
  • Look Up Order ID mengembalikan OrderLookupStatus 1 tanpa array signedTransactions jika order ID tidak valid untuk aplikasi Anda, tanda struk yang salah atau pembelian dari aplikasi lain.
  • Look Up Order ID tidak tersedia di lingkungan sandbox Apple, dan batas lajunya di produksi adalah 10 permintaan per detik per aplikasi, diberlakukan per jam.
  • Developer tidak bisa mengeluarkan refund App Store. Apple yang memutuskannya di reportaproblem.apple.com, dan satu-satunya langkah bukti bagi developer adalah menjawab CONSUMPTION_REQUEST dalam 12 jam.
  • Google Play mengirim email order ID untuk setiap pembelian sekali bayar dan setiap perpanjangan langganan, dan developer bisa mencari order ID itu di Play Console lalu me-refund-nya langsung. Play Console menyatakan refund tidak bisa dibatalkan.

Sebelum membalas email refund dari pelanggan iPhone, minta order ID App Store yang tertera di struk Apple mereka. Satu string itu, jika dijalankan lewat endpoint Look Up Order ID milik Apple, memberi tahu produk apa yang mereka beli, kapan, dan apakah Apple sudah me-refund-nya. Tanpa itu, Anda mencocokkan tangkapan layar dan alamat email dengan database sambil berharap. Dengan itu, dalam hitungan detik Anda tahu apakah lawan bicara Anda pelanggan yang membayar, pelanggan yang uangnya sudah dikembalikan Apple, atau seseorang yang memegang struk dari aplikasi lain.

Dari mana order ID App Store berasal

Dokumentasi Apple cukup jelas. Saat pelanggan melakukan satu atau lebih pembelian dalam aplikasi Anda, App Store mengirim struk lewat email, dan struk itu berisi order ID. Pelanggan juga bisa menemukan order ID di riwayat pembelian App Store mereka. Halaman riwayat pembelian Apple ada di reportaproblem.apple.com dan di aplikasi App Store pada menu Apps & Purchase History, dan secara default menampilkan 90 hari terakhir, dengan filter untuk pembelian yang lebih lama.

Jadi pelanggan sudah memegang kuncinya. Formulir dukungan Anda tinggal memintanya.

Kenapa alamat email saja tidak cukup

Apple tidak membagikan email Apple Account pelanggan kepada Anda. Alamat yang menulis ke kotak masuk dukungan Anda bisa saja tidak ada hubungannya dengan akun yang membayar. Jika Anda mengisi appAccountToken saat pembelian, Anda bisa mengaitkan transaksi dengan ID pengguna Anda sendiri, tetapi hanya dari sisi Anda. Order ID bekerja dari sisi pelanggan, dari struk yang bisa mereka teruskan dengan satu ketukan.

Apa yang dikembalikan Look Up Order ID

Look Up Order ID adalah bagian dari App Store Server API, tersedia sejak versi 1.1.0. Anda memanggil GET https://api.storekit.apple.com/inApps/v1/lookup/{orderId} dengan JWT bertanda tangan milik Anda. Apple menyatakan respons didasarkan pada riwayat pembelian dalam aplikasi pelanggan, terlepas dari apakah mereka memasang, menghapus, atau memasang ulang aplikasi.

Field atau perilakuKata dokumentasi AppleYang dilakukan tim dukungan
OrderLookupStatus 0Order ID valid. Respons berisi array satu atau lebih transaksi bertanda tanganDekode masing-masing dan baca pembeliannya
OrderLookupStatus 1Respons tidak berisi array signedTransactionsAnggap order ID tidak valid untuk aplikasi Anda. Minta struk yang benar
productId dan purchaseDateApple menyebut field ini untuk dipakai dalam dukungan pelangganPastikan apa yang dibeli dan kapan
revocationDateWaktu App Store me-refund transaksi atau mencabutnya dari Family SharingJika ada, Apple sudah mengembalikan uang pelanggan
revocationReason0: di-refund karena alasan lain, misalnya pembelian tidak sengaja. 1: di-refund karena masalah nyata atau yang dirasakan di dalam aplikasi AndaNilai 1 adalah sinyal produk, bukan sekadar tiket dukungan
appAccountTokenUUID yang Anda isi saat pembelian, jika Anda mengisinyaCocokkan pesanan dengan data pengguna Anda sendiri
price dan currencyApple menyatakan jangan dipakai untuk rekonsiliasi pendapatanPakai laporan App Store Connect untuk urusan uang
SandboxEndpoint tidak tersedia di lingkungan sandboxUji hanya dengan order ID produksi
Batas laju10 permintaan per detik per aplikasi, diberlakukan per jam. Kelebihannya mendapat HTTP 429 dengan header Retry-AfterLebih dari cukup untuk tim dukungan, tidak untuk pemindaian massal

Apakah struk ini valid untuk aplikasi saya?

Itulah pertanyaan pertama yang dijawab OrderLookupStatus. Nilai 1 berarti order ID tidak mengarah ke pembelian di aplikasi Anda. Penyebab umumnya salah ketik, struk dari aplikasi lain, atau struk yang sama sekali bukan dari App Store. Jangan me-refund, memberi kredit, atau memulihkan apa pun saat nilainya 1. Minta pelanggan memeriksa struknya lagi.

Apakah Apple sudah me-refund pembelian ini?

Periksa revocationDate di setiap transaksi yang sudah didekode. Jika terisi, Apple sudah me-refund pembelian itu atau mencabutnya dari Family Sharing, dan uang pelanggan sudah kembali. App Store Server Notifications Anda seharusnya sudah mengirim REFUND untuk transaksi yang sama, jadi ini juga cara murah untuk memastikan server Anda benar-benar mencabut akses.

Seorang developer membandingkan struk App Store yang dicetak dengan baris transaksi di laptop, memeriksa order ID App Store sebelum membalas permintaan refund

Apa yang tidak bisa dilakukan order ID di App Store

Order ID tidak bisa mengeluarkan refund. Developer tidak punya tombol refund App Store. Apple yang memutuskan refund, dan artikel dukungannya mengarahkan pelanggan ke reportaproblem.apple.com, tempat mereka memilih "I'd like to", lalu "Request a refund", memilih alasan, dan memilih item. Apple juga menyatakan tagihan yang masih tertunda tidak bisa di-refund sampai pelanggan menerima struk email.

Satu-satunya tempat Anda punya suara adalah CONSUMPTION_REQUEST dari Apple. Saat pelanggan meminta refund ke Apple, Apple bisa mengirim notifikasi itu, dan Anda punya 12 jam untuk menjawab dengan Send Consumption Information. Pencarian order ID adalah alat dukungan. Ia tidak membuka jendela itu dan tidak memperpanjangnya.

Berapa biaya email refund jika Anda melewatkan pencarian

Dukungan tanpa order ID adalah tempat uang bocor diam-diam. Tiga pola muncul berulang kali.

  • Kompensasi di atas refund. Apple me-refund pembelian, pelanggan juga menulis kepada Anda, dan tim dukungan memberi kredit gratis atau tambahan satu bulan. Setiap kredit yang Anda berikan berjalan di atas komputasi, panggilan API, dan penyimpanan yang Anda bayar, untuk akun yang uangnya sudah dikembalikan.
  • Akses yang tidak pernah dicabut. Jika penanganan REFUND Anda gagal, pelanggan yang sudah di-refund tetap menghasilkan pemakaian. Pencarian yang menunjukkan revocationDate sementara database Anda masih menulis aktif adalah laporan bug dengan label harga.
  • Akun yang salah, perbaikan yang salah. Memulihkan atau memberi kredit pada akun di balik email yang diteruskan, padahal order ID-nya milik orang lain, berarti memberi layanan berbayar kepada orang yang tidak pernah membelinya.

Tidak satu pun dari ini butuh sengketa atau tenggat untuk merugikan. Semuanya hanya balasan dukungan yang dibuat tanpa fakta. Satu panggilan API per tiket menghilangkan tebak-tebakan.

Apakah revocationReason 1 berarti saya melakukan kesalahan?

Belum tentu. Apple menyatakan alasan 1 berarti pembelian di-refund karena masalah nyata atau yang dirasakan di dalam aplikasi Anda. Kata "dirasakan" punya bobot besar di sini. Namun sekumpulan refund dengan alasan 1 pada satu produk, setelah satu rilis, adalah masukan produk paling jelas yang diberikan Apple. Hitunglah.

Bagaimana order ID Google Play dibandingkan

Google Play bekerja sebaliknya. Dokumentasi penagihan Google menyatakan pengguna menerima email dengan order ID unik untuk setiap pembelian produk sekali bayar, untuk pembelian langganan pertama, dan untuk setiap perpanjangan berulang, dan Anda bisa memakai order ID itu untuk mengelola refund di Play Console. Anda mencari di Order management berdasarkan order ID atau alamat email lengkap pengguna, lalu me-refund-nya sendiri.

PertanyaanOrder ID App StoreOrder ID Google Play
Tempat pelanggan menemukannyaStruk email dan riwayat pembelian App StoreStruk email untuk setiap pembelian dan setiap perpanjangan
Cara Anda mencarinyaLook Up Order ID di App Store Server APICari di Order management di Play Console
Bisakah Anda me-refund dari situTidak. Apple yang memutuskanYa. Refund penuh, dan refund sebagian untuk pembelian dalam aplikasi dan langganan
Jendela bukti untuk refundCONSUMPTION_REQUEST, 12 jam, Apple yang memutuskanPeninjauan chargeback lewat orders.reviewrefund, 24 jam
Bisakah refund dibatalkanTidak oleh AndaTidak. Play Console menyatakan refund tidak bisa dibatalkan

Di Google Play, order ID lebih penting karena Anda yang menekan tombolnya. Play Console menyatakan me-refund pesanan langganan terbaru langsung menghapus langganan dan membatalkan perpanjangan berikutnya, sedangkan me-refund pesanan lama hanya berupa refund dan langganan tetap aktif. Refund sebagian hanya didukung untuk pesanan yang dibuat setelah Maret 2018, dan Anda tidak bisa me-refund sebagian aplikasi berbayar.

Letakkan order ID di depan alur dukungan refund Anda

  • Minta order ID di formulir dukungan Anda, dengan petunjuk satu baris: ada di email struk Apple atau Google Play.
  • Di iOS, panggil Look Up Order ID, dekode setiap transaksi, dan tampilkan productId, purchaseDate, revocationDate, dan revocationReason dalam satu layar untuk tim dukungan.
  • Jika OrderLookupStatus bernilai 1, berhenti dan minta struk yang benar. Jangan berikan apa pun.
  • Jika revocationDate terisi, pastikan akses sudah dicabut di server Anda, lalu tutup tiketnya. Tanpa kompensasi tambahan.
  • Jika tidak terisi dan pelanggan ingin uangnya kembali, arahkan mereka ke reportaproblem.apple.com dan siapkan penangan CONSUMPTION_REQUEST Anda untuk jendela 12 jam. RefundHalt menjawab permintaan itu dengan data konsumsi yang diminta Apple.
  • Di Android, temukan pesanan yang tepat di Play Console sebelum me-refund, dan pilih antara refund saja atau refund dan cabut akses dengan sengaja.

Pertanyaan yang sering diajukan

Bagaimana cara developer mencari order ID App Store?
Panggil endpoint App Store Server API Look Up Order ID, GET https://api.storekit.apple.com/inApps/v1/lookup/{orderId}, dengan JWT bertanda tangan Anda. Order ID yang valid mengembalikan OrderLookupStatus 0 dan satu atau lebih transaksi bertanda tangan yang Anda dekode untuk membaca productId, purchaseDate, dan detail refund apa pun. Endpoint ini tidak tersedia di sandbox.
Di mana pelanggan menemukan order ID App Store mereka?
Di struk email yang dikirim Apple setiap kali mereka melakukan pembelian dalam aplikasi, dan di riwayat pembelian App Store mereka di reportaproblem.apple.com atau di menu Apps & Purchase History pada aplikasi App Store. Riwayat pembelian menampilkan 90 hari terakhir secara default, dengan filter untuk pembelian yang lebih lama.
Bisakah saya me-refund pembelian App Store dengan order ID?
Tidak. Developer tidak bisa mengeluarkan refund App Store. Apple yang memutuskannya saat pelanggan memintanya di reportaproblem.apple.com. Masukan Anda adalah menjawab CONSUMPTION_REQUEST dari Apple dalam 12 jam dengan Send Consumption Information.
Bagaimana saya tahu apakah Apple sudah me-refund sebuah pembelian?
Cari order ID-nya dan periksa revocationDate di setiap transaksi yang sudah didekode. Jika terisi, Apple sudah me-refund pembelian itu atau mencabutnya dari Family Sharing. revocationReason 0 berarti alasan lain seperti pembelian tidak sengaja, dan 1 berarti masalah nyata atau yang dirasakan di dalam aplikasi Anda.
Apa arti OrderLookupStatus 1?
Artinya order ID tidak valid untuk aplikasi Anda, dan respons tidak berisi array signedTransactions. Biasanya pelanggan mengirim struk dari aplikasi lain, salah mengetik ID, atau mengirim struk yang bukan dari App Store. Minta struk yang benar sebelum memberikan apa pun.

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.