Afteroffice Studio EN
ENTRI 012 Plat lipat

Pembayaran, rekonsiliasi, dan Rp198 juta yang hilang dari laporan

Penjualan Merchandise Sekolah

Platform transaksi untuk hub sekolah dengan pembayaran Midtrans — dan audit yang menemukan pendapatan yang selama ini tidak terhitung.

Node.jsExpressMidtransGoogle Sheets APITelegram Bot API

Masalahnya

Penjualan merchandise di banyak hub sekolah dicatat lewat link pembayaran Midtrans dan direkap ke spreadsheet. Laporannya terlihat rapi, dan justru itu masalahnya: tidak ada yang pernah mencocokkan isi spreadsheet dengan apa yang sebenarnya tercatat di Midtrans.

Alur penggunanya

  1. Petugas hub membuka platform, memilih produk, dan sistem menghitung total sesuai daftar harga hub tersebut.
  2. Pembayaran diarahkan ke link Midtrans milik hub itu, lalu bukti bayar difoto langsung dari alur pemesanan.
  3. Status pembayaran ditarik otomatis dari Midtrans setiap 30 menit dan dicocokkan ke catatan transaksi.
  4. Tim menerima laporan harian di grup Telegram, dan bisa bertanya bebas dalam bahasa sehari-hari untuk mendapatkan rekap yang mereka butuhkan.

Yang dibangun

Layanan Node.js yang menghubungkan alur pemesanan, Midtrans, Google Sheets sebagai basis data operasional yang tetap bisa dibuka tim, dan bot Telegram untuk laporan serta tanya-jawab.

Arsitektur

Order flow web · foto bukti bayar
Node service Express · PM2
Midtrans 121 payment link
Sheets catatan operasional
Telegram bot laporan harian · tanya-jawab

Bagian yang sulit

Rekonsiliasinya. Saya menarik ulang seluruh riwayat dari 121 link pembayaran Midtrans — masing-masing mengembalikan catatan sejak 2024 — lalu membandingkannya baris demi baris dengan 8.375 baris di spreadsheet.

Hasilnya

  • 137 baris ternyata berstatus salah: 113 sebenarnya sudah lunas tapi tercatat belum, dan 23 tercatat lunas padahal tidak.
  • 8 baris rusak yang hanya terisi kolom status — akibat pergeseran baris saat penulisan otomatis — ditemukan dan dihapus.
  • Satu bug menyebabkan pesanan berisi lebih dari satu barang hanya dihitung harga barang pertamanya. 685 dari 1.105 pesanan terdampak, dan Rp198.381.500 tidak pernah muncul di laporan mana pun.
  • Setelah perbaikan, pencocokan ulang menghasilkan nol selisih.

Yang belum selesai

Rekonsiliasi rutin tidak memeriksa ulang baris yang statusnya sudah final, jadi kerusakan serupa di masa depan tetap butuh audit manual seperti ini. Saya catat itu sebagai batasan yang diketahui, bukan sebagai masalah yang sudah tertutup.

Peran saya

Product, implementasi, integrasi pembayaran, audit data, dan operasional.

Dicatat oleh
Ihsan Nugraha
Diperiksa
6 Agu 2026, 17.17 WIB
Cara verifikasi
Klik URL mana pun di halaman ini
Dicatat oleh