Pembayaran Pending¶
Gejala: Pelanggan klaim sudah bayar (transfer bank, QRIS, e-wallet, dll) tapi status invoice di TB Radius tetap Unpaid. Pelanggan akhirnya komplain — internet diisolir padahal mereka sudah bayar.
Dampak:
- Pelanggan tidak puas → trust turun
- Cashflow Anda tidak match dengan data sistem
- Risiko churn kalau berulang
Diagnostic Pertanyaan¶
Sebelum troubleshoot, minta info dari pelanggan:
- Kapan bayar? (Tanggal & jam)
- Bayar lewat apa? (QRIS / VA bank / e-wallet / transfer manual / tunai)
- Berapa nominal?
- Punya bukti bayar? (screenshot mutasi / receipt)
- Bayar untuk invoice mana? (Nomor invoice atau periode tagihan)
Penyebab Umum¶
1. Webhook Payment Gateway Delay / Miss¶
Pembayaran via PG (Tripay/Midtrans/Xendit/Duitku) sukses, tapi webhook ke TB Radius miss atau delay.
Cek di TB Radius:
- Settings → Webhook Log filter by transaction
- Cari entry untuk pembayaran tersebut
- Status:
- Received → webhook sampai, tapi mungkin gagal proses
- Tidak ada → webhook tidak diterima sama sekali
Solusi:
- Tunggu 5-10 menit (kadang delay PG)
- TB Radius polling ke PG tiap 5 menit sebagai fallback — biasanya auto-update dalam 10 menit
- Kalau lebih dari 30 menit, manual mark paid di dashboard
2. Pelanggan Bayar ke Akun yang Salah¶
Pelanggan transfer ke nomor rekening bukan rekening Anda — uang masuk ke orang lain.
Cek:
- Bukti transfer pelanggan → nomor rekening tujuan
- Bandingkan dengan rekening resmi Anda
Solusi:
- Kalau ke rekening salah: pelanggan harus claim sendiri ke bank atau orang yang nerima
- Edukasi pelanggan untuk double-check nomor rekening sebelum transfer
- Saran: pakai Virtual Account (auto-detect nominal) atau QRIS — lebih sulit salah
3. Pelanggan Bayar Nominal Salah¶
Bayar kurang atau lebih dari nominal invoice.
Cek:
- Invoice nominal: Rp 350.000
- Pelanggan transfer: Rp 300.000 → underpaid
- Pelanggan transfer: Rp 400.000 → overpaid
Solusi:
- Underpaid: invoice status
Partial. Inform pelanggan untuk transfer kekurangan. - Overpaid: kelebihan = credit balance untuk invoice berikutnya. Inform pelanggan.
4. Bayar via Manual Transfer (Tidak Auto-Detect)¶
Pelanggan transfer manual ke rekening Anda tanpa lewat VA. Sistem tidak otomatis tahu pelanggan ini bayar untuk invoice mana.
Cek:
- Mutasi rekening Anda — apakah ada masuk di tanggal yang pelanggan klaim?
- Bukti transfer pelanggan
Solusi:
- Anda manual input pembayaran di dashboard (lihat Pembayaran Manual)
- Edukasi pelanggan untuk pakai VA atau QRIS (auto-detect) supaya tidak perlu konfirmasi manual
5. Webhook URL Salah di Dashboard PG¶
PG kirim webhook ke URL salah → tidak sampai TB Radius.
Cek di dashboard PG:
- Login Tripay/Midtrans/dll
- Lihat webhook URL ter-config
- Harus exact match dengan URL yang TB Radius kasih
Solusi:
- Update webhook URL di dashboard PG sesuai instruksi TB Radius (lihat Integrasi PG)
- Test webhook (kebanyakan PG punya tombol "Test")
6. Webhook Signature Validation Failed¶
Webhook sampai TB Radius, tapi signature invalid → ditolak.
Cek:
- Settings → Webhook Log filter by error
- Lihat error message detail
Solusi:
- Update private key / signature key di TB Radius supaya match dengan dashboard PG
- Re-test webhook
7. Server TB Radius Down Saat Webhook¶
Webhook PG dikirim, tapi server TB Radius sedang restart/maintenance → webhook miss.
Cek:
- Status TB Radius saat pembayaran (jam berapa kira-kira)
- Apakah maintenance window saat itu
Solusi:
- PG biasanya retry webhook (sampai 3-5x)
- TB Radius polling fallback akan catch
- Kalau benar-benar miss, manual mark paid
8. Status Invoice Sudah Paid tapi Belum Sync ke RADIUS¶
Invoice paid, tapi pelanggan masih diisolir (RADIUS belum reaktivasi).
Cek:
- Invoice status di dashboard: Paid ✅
- Pelanggan status: masih Isolated ❌
Solusi:
- Settings → Auto Reactivate on Payment ON?
- Tunggu cron
reactivate-paid(default 5 menit) - Manual reaktivasi: edit pelanggan → status Active
9. Refund / Reversal Belum Di-record¶
Pelanggan klaim sudah bayar, tapi sebenarnya transaksi mereka failed / refund dari sisi bank.
Cek:
- Status di dashboard PG: apakah "Success" atau "Failed/Refunded"
- Mutasi rekening Anda — uang benar-benar masuk?
Solusi:
- Kalau memang failed di PG, inform pelanggan untuk bayar ulang
- Kalau refund (rare), inform pelanggan & tunggu transaksi baru
10. Pelanggan Salah Klaim (Sengaja atau Tidak)¶
Rare, tapi possible: pelanggan klaim sudah bayar padahal belum, untuk delay isolir.
Cek:
- Minta bukti transfer (screenshot mutasi mereka — bukan foto edit)
- Cek mutasi rekening Anda di tanggal klaim
- Cek dashboard PG kalau pakai online payment
Solusi:
- Kalau benar tidak ada bukti, jelaskan ke pelanggan: tidak ada data masuk, mohon bayar dulu
- Verifikasi mutasi adalah source of truth, bukan klaim verbal
Diagnostic Workflow¶
1. Pelanggan klaim bayar (tanpa info detail)
↓
2. Tanya 5 diagnostic questions (kapan, lewat apa, dll)
↓
3. Cek dashboard PG / mutasi rekening
├── Ada di PG/bank? → Step 4
└── Tidak ada? → Pelanggan salah/scam, klarifikasi
↓
4. Cek di TB Radius
├── Invoice Paid → Sudah benar, cek status pelanggan (mungkin perlu reaktivasi)
└── Invoice Unpaid → Step 5
↓
5. Cek webhook log
├── Webhook received → ada error proses, fix manual
└── Webhook tidak received → manual mark paid
↓
6. Update invoice + reaktivasi pelanggan kalau perlu
↓
7. Konfirmasi ke pelanggan + dokumentasi root cause
Best Practices¶
Setup multiple PG
Pakai 2-3 PG sekaligus sebagai fallback. Kalau 1 PG webhook bermasalah, yang lain masih jalan.
Edukasi pelanggan pakai VA / QRIS
Transaksi via VA / QRIS:
- Nominal exact (tidak salah)
- Auto-detect ke invoice (tidak perlu manual)
- Webhook real-time
Transaksi manual transfer = pekerjaan extra Anda.
Monitoring webhook health
Dashboard punya Webhook Health Status:
- Total webhook diterima per hari
- % success vs failed
- Alert kalau failure rate > 5%
Cek secara berkala.
Jangan trust klaim verbal
"Saya sudah transfer kemarin Rp 350.000" — minta bukti. Bukti = screenshot mutasi rekening pelanggan (yang menunjukkan saldo turun), bukan foto bukti transfer yang gampang di-edit.
Konfirmasi nominal & tanggal exact
Saat input manual pembayaran:
- Tanggal = tanggal pelanggan transfer (bukan tanggal Anda input)
- Nominal = nominal exact (jangan round-up)
- Catatan = source pembayaran ("Transfer BCA dari rek 1234")
Audit clean = reconciliation lancar.
FAQ¶
Q: Pelanggan bayar 1 menit lalu, invoice belum update — wait atau action? A: Tunggu 5-10 menit. Kebanyakan PG webhook < 1 menit, beberapa lebih lambat (terutama VA bank yang slow). Kalau lebih dari 15 menit, action.
Q: Pelanggan transfer ke nomor rekening saya tapi tanpa keterangan — bagaimana link ke invoice? A: Sulit auto. Anda harus manual:
- Cek mutasi rekening — confirm nominal & sender
- Kontak pelanggan via WA — confirm transfer mereka
- Manual input pembayaran di dashboard ke invoice yang sesuai
Q: Multiple invoice unpaid, pelanggan bayar 1× nominal total — auto detect? A: PG biasanya tidak. Anda manual split: input pembayaran ke 1 invoice (paling lama), kalau ada sisa = credit balance untuk invoice berikutnya.
Q: Refund pelanggan — gimana? A:
- Refund manual via dashboard PG (refund ke rekening pelanggan)
- Edit invoice di TB Radius: status
Refunded - Komunikasi ke pelanggan: kapan dana cair (biasanya T+1)
Q: Pelanggan bayar tunai ke kolektor lapangan — workflow? A:
- Kolektor terima tunai + kasih kwitansi fisik
- Kolektor input ke aplikasi TB Radius (atau report ke admin)
- Admin verify + mark paid di dashboard
- Pelanggan terima konfirmasi WA
Bulk import kolektor: lihat Pembayaran Manual.