Pembayaran Manual¶
Pembayaran manual = pelanggan bayar di luar payment gateway (tunai, transfer manual, dll), lalu admin input ke sistem untuk update status invoice.
Kapan Pakai Pembayaran Manual?¶
- 💵 Tunai — pelanggan datang ke kantor / kasir Anda
- 🏦 Transfer bank manual — pelanggan transfer ke rekening Anda, kirim bukti via WA
- 🤝 Pembayaran via reseller / agen — agen kolektor di area pelanggan
- 📃 Pembayaran cek/giro — untuk pelanggan korporat
- ⚙️ Refund / penyesuaian — koreksi data manual
Persyaratan¶
- ✅ Invoice sudah di-generate (status Unpaid)
- ✅ Admin punya permission "Edit Invoice"
- ✅ Bukti pembayaran (untuk audit) — screenshot transfer, kwitansi, dll
Langkah Input Pembayaran Manual¶
Single Invoice¶
- Buka pelanggan target → tab Invoice / Tagihan
- Cari invoice yang mau di-mark paid (status Unpaid)
- Klik "Tandai Lunas" atau "Catat Pembayaran"
- Isi:
- Tanggal Bayar (default = hari ini)
- Metode (Tunai / Transfer / Cek / Lainnya)
- Bank/E-wallet (mis. "BCA")
- Nomor Referensi (opsional)
- Catatan (opsional)
- Upload bukti (foto kwitansi/screenshot)
- Save
Setelah save:
- ✅ Status invoice → Paid
- ✅ Pelanggan terima konfirmasi via WhatsApp
- ✅ Kalau Isolated, otomatis kembali Active
- ✅ Pendapatan tercatat di laporan revenue
Partial Payment (Cicilan)¶
Pelanggan bayar sebagian, sisanya nanti:
- Buka invoice → klik "Catat Pembayaran"
- Isi nominal partial (mis. invoice Rp 500.000, bayar Rp 300.000)
- Status invoice → Partial
- Sisa tagihan tetap di-track
- Saat pelanggan bayar sisa, ulangi dengan sisa nominal
Partial payment policy
Default: Partial = belum isolir. Tapi kalau setelah grace period sisa belum lunas, sistem auto-isolir.
Set policy di Settings → Billing → Partial Payment Rules.
Overpayment¶
Pelanggan bayar lebih dari nominal:
- Input pembayaran dengan nominal lebih besar
- Sistem prompt: "Kelebihan Rp X, simpan sebagai credit?"
- Pilih:
- Credit balance — untuk invoice berikutnya
- Refund — refund manual ke pelanggan
Bulk Input (untuk kolektor)¶
Untuk agen kolektor kumpulkan banyak pembayaran:
- Menu Invoice → Bulk Payment
- Upload CSV format:
- Preview → konfirmasi → bulk update
Komponen Pembayaran Manual¶
| Field | Wajib? | Penjelasan |
|---|---|---|
| Invoice ID | ✅ | Invoice yang dibayar |
| Tanggal Bayar | ✅ | Kapan pelanggan bayar (bukan input) |
| Nominal | ✅ | Berapa dibayar (full/partial) |
| Metode | ✅ | Tunai / Transfer / E-wallet manual / Cek |
| Bank/Detail | ⚠️ | Wajib kalau bukan tunai |
| Nomor Referensi | ❌ | Untuk track ke statement bank |
| Bukti Upload | 💡 | Sangat disarankan untuk audit |
| Diterima Oleh | auto | User admin yang input |
| Catatan | ❌ | Internal note |
Best Practices¶
Verifikasi sebelum mark paid
Sebelum klik "Lunas", verifikasi pembayaran sungguhan masuk:
- Transfer bank: cek mutasi rekening Anda, bukan hanya foto bukti
- E-wallet: cek di app e-wallet Anda
- Tunai: hitung uang fisik
Risiko: scam dengan foto bukti edit/palsu.
Upload bukti = anti-dispute
Selalu upload bukti. Kalau ada dispute "saya sudah bayar tapi belum di-mark":
- Bukti upload = source of truth
- Audit trail jelas
- Cross-check timestamp gampang
Konsisten dengan rekening bank
Tag pembayaran dengan bank yang sesuai (BCA / Mandiri / dll). Berguna untuk reconciliation cashflow per bank.
Permission control
Jangan kasih akses "Mark Paid" ke semua staff. Risiko:
- Staff input fiktif (uang masuk kantong pribadi)
- Salah input (typo nominal)
Limit ke 1-2 admin trusted. Atau pakai 2-person approval untuk pembayaran > Rp 1 juta.
Backdating tanggal bayar
Boleh backdate (mis. tunai diterima kemarin, baru sempat input hari ini) — tapi konsisten dengan tanggal sebenarnya untuk laporan akurat.
Hindari backdate ekstrem (>30 hari) tanpa alasan jelas.
Troubleshooting¶
Mark paid tapi pelanggan masih dapat reminder
Sync gap antara mark paid dan reminder queue. Tunggu cron cycle berikutnya atau cancel reminder manual.
Status "Paid" tapi pelanggan masih Isolated
Cek:
- Auto-reaktivasi enabled? Settings → Auto Reactivate on Payment → ON
- RADIUS sync sukses? Cek log
- Manual: edit pelanggan → status Active
Salah input nominal
- Buka invoice → "Edit Payment" atau "Reverse Payment"
- Hapus payment record salah
- Input ulang dengan nominal benar
Audit: 2 entry (reversed + new), history tetap ada.
Pembayaran double-counted
Mungkin pelanggan bayar via PG dan admin input manual juga. Cek history → hapus 1 entry duplicate. Kalau memang dobel masuk uang, refund.
Bulk import gagal
Penyebab umum:
- Format CSV salah
nomor_invoicetidak matchnominallebih besar dari invoice- Encoding bukan UTF-8
Cek log error → fix row → retry.
FAQ¶
Q: Bisa hapus pembayaran yang sudah di-input? A: Pakai "Reverse Payment" — bukan hard delete. Tandai sebagai reversed, audit trail tetap.
Q: Pelanggan bayar cash, lupa input, 2 minggu kemudian masih bisa? A: Bisa. Backdate tanggal bayar. Catat di notes alasan delay input.
Q: Kirim kwitansi/receipt otomatis? A: Bisa. Setelah mark paid:
- WhatsApp konfirmasi otomatis
- Email PDF receipt (kalau aktif)
- Print manual dari dashboard
Q: Pelanggan ngotot sudah bayar tapi tidak ada record? A: Standard troubleshoot:
- Minta bukti transfer (screenshot mutasi, bukan foto edit)
- Cek mutasi rekening Anda di tanggal klaim
- Kalau ada di mutasi tapi tidak ke-input → admin lupa, input retroaktif
- Kalau tidak ada → edukasi pelanggan, butuh verifikasi mutasi
Q: Multi-currency? A: Belum native. Workaround: convert ke IDR manual, input dengan rate konversi di catatan.