Upload data dari sumber yang mau dibandingkan — Midtrans (CSV), Stamps (CSV), ZPay Report (Excel .xlsx); semua input menerima .csv maupun .xlsx. Lalu pilih data utama: tiap transaksinya dicek berdasarkan invoice ke dua sumber lainnya — ADA / TIDAK ADA. Prefix lokasi (kode outlet 3 karakter + -) diabaikan saat matching: AKI-0I0N98ZA di satu sumber cocok dengan 0I0N98ZA di sumber lain.
Upload file Excel export ZPay Report. Transaksi dianggap double kalau kombinasi Invoice ID + Location + Machine No yang sama muncul lebih dari sekali — baris double di-highlight kuning.
Upload file export Stamps (CSV / .xlsx, bisa lebih dari satu). Transaksi dianggap double / triple kalau Invoice ID yang sama muncul lebih dari sekali — hanya berdasarkan invoice, tanpa lokasi/mesin. Dengan Abaikan prefix lokasi, AKI-0I0N98ZA dan 0I0N98ZA dihitung invoice yang sama; kolom Aksi menandai versi tanpa prefix sebagai yang perlu di-cancel (versi berprefix dipertahankan) — pakai filter "Hanya yang perlu di-cancel" lalu download. Centang Abaikan canceled supaya transaksi berstatus canceled / cancelled / void tidak ikut dihitung (status Created dan Open tetap dihitung). Baris double di-highlight kuning dan dikelompokkan per invoice.
Daftar Outlet → Store ID (JSON)
Upload file (CSV / .xlsx) berisi transaksi Stamps yang mau dibatalkan — misal hasil Stamps — Cek Double yang sudah difilter di Excel, atau export Stamps. Default dibatalkan berdasarkan transaction_id (kolom transaction_id di export Stamps) lewat API transactions/cancel dengan body {"id": …} — paling presisi, karena tepat transaksi itu yang dibatalkan. Alternatif: invoice + tanggal (API v2) kalau file tidak punya transaction_id — invoice dikirim apa adanya, EDO-X dan X dianggap dua transaksi berbeda. Klik Preview data, cek tabel, lalu Cancel N di Stamps.