Pembayaran Online¶
Pembayaran online = pelanggan bayar lewat payment gateway (Tripay/Midtrans/Xendit/Duitku) tanpa Anda harus konfirmasi manual. Sistem otomatis update status invoice saat pembayaran sukses.
Method Pembayaran yang Didukung¶
Tergantung PG yang Anda aktifkan, pelanggan bisa pilih:
| Method | Pro | Settlement |
|---|---|---|
| QRIS | Universal, semua app bank/e-wallet support | T+1 |
| Virtual Account Bank (BCA, Mandiri, BRI, BNI, Permata) | Familiar, no app required | T+1 |
| E-wallet (OVO, DANA, GoPay, ShopeePay) | Instan, popular | T+1 |
| Retail (Alfamart, Indomaret) | Buat pelanggan tanpa rekening/e-wallet | T+2 |
| Credit Card | International support | T+7 |
| Direct Debit | Auto-debet rekening | T+1 |
Persyaratan¶
- ✅ Payment Gateway sudah ter-integrasi — lihat Integrasi Payment Gateway
- ✅ Invoice ter-generate (status Unpaid)
- ✅ Pelanggan punya akses ke portal client.tbradius.com atau link bayar yang Anda kirim
Flow Pembayaran Online¶
[Pelanggan terima reminder WA dengan link bayar]
↓
[Klik link → buka portal pelanggan]
↓
[Login (HP+OTP atau email/password)]
↓
[Pilih invoice yang mau dibayar]
↓
[Pilih method: QRIS / VA / e-wallet]
↓
[Generate kode bayar / scan QR]
↓
[Bayar via app bank / e-wallet pelanggan]
↓
[Payment Gateway terima → kirim webhook ke TB Radius]
↓
[Invoice auto-update → status Paid]
↓
[Pelanggan terima konfirmasi WA + email]
↓
[Kalau isolated → auto-reaktivasi internet]
Cara Pelanggan Bayar Online¶
Via Portal Pelanggan (Recommended)¶
- Pelanggan buka client.tbradius.com (atau subdomain tenant kalau whitelabel)
- Login dengan HP+OTP atau email/password
- Dashboard: lihat tagihan aktif
- Klik "Bayar Sekarang"
- Pilih method (QRIS/VA/e-wallet)
- Sistem generate kode → tampilkan ke pelanggan
- Pelanggan bayar lewat app bank/e-wallet
- Setelah bayar, kembali ke portal → status auto-update Paid
Via Link Direct (No Login Required)¶
Untuk pelanggan yang tidak mau login portal:
- Reminder WhatsApp include link bayar direct (mis.
https://app.tbradius.com/pay/{token}) - Klik link → buka halaman bayar tanpa login
- Pilih method → bayar
- Sama flow di atas
Via Aplikasi Android (TBR Client)¶
Kalau pelanggan install app Android:
- Buka app TBR Client
- Login otomatis (kalau sudah pernah)
- Dashboard → klik tagihan → "Bayar"
- Method picker
- Bayar via app bank → kembali ke TBR Client → status update
QRIS Dynamic (Detail)¶
QRIS adalah metode paling populer. Cara kerjanya:
- Pelanggan klik "Bayar dengan QRIS"
- Sistem generate QR code dynamic (nominal sudah include di QR)
- Pelanggan scan QR pakai app bank (Livin BCA, BRImo, dll) atau e-wallet
- Bayar otomatis dengan nominal sesuai
- Webhook PG ke TB Radius → invoice paid
Keuntungan QRIS dynamic:
- Pelanggan tidak perlu input nominal manual (no typo)
- Bisa bayar dari semua app yang support QRIS (universal)
- Settlement cepat (T+1)
- Fee paling rendah (0.7%)
Catatan QRIS:
- QR expire dalam 1 jam (default) — kalau expired, generate ulang
- Min Rp 1.000, Max Rp 10 juta per transaksi
- Beberapa app QRIS belum support nominal > Rp 1 juta untuk merchant aggregator
Virtual Account (Detail)¶
Untuk pelanggan yang prefer transfer bank:
- Pilih bank (BCA / Mandiri / BRI / dll)
- Sistem generate nomor VA unique untuk invoice ini
- Pelanggan buka m-banking → transfer ke nomor VA → nominal auto-detect
- Sukses → webhook → invoice paid
Keuntungan VA:
- Pelanggan familiar (transfer bank biasa)
- Tidak perlu app baru / scan QR
- Bisa nominal besar (sesuai limit transfer bank)
Catatan VA:
- Nomor VA biasanya expire 24 jam (default)
- Fee lebih tinggi dari QRIS (~Rp 4.000 per transaksi)
- Settlement T+1
Best Practices¶
Default highlight QRIS
Di portal pelanggan, highlight QRIS sebagai default method. Alasan:
- Conversion rate paling tinggi (paling cepat)
- Fee paling rendah
- Pelanggan tidak perlu pilih bank manual
VA & e-wallet sebagai fallback option.
Link bayar di reminder WhatsApp
Setiap reminder WA wajib include link bayar:
- Pelanggan langsung klik dan bayar — 1-click experience
- Pakai short URL biar nggak panjang & encourage click
- Link harus persistent (tidak expire kalau pelanggan klik 1 minggu kemudian)
Multi-method untuk reach lebih luas
Aktifkan minimal 3 method: QRIS + VA + E-wallet.
Pelanggan punya preference berbeda — yang penting mereka bisa bayar dengan cara yang familiar.
Webhook reliability
99% pembayaran otomatis update via webhook. Tapi 1% bisa miss karena:
- Network glitch saat PG kirim webhook
- Server TB Radius down sebentar
- Bug parsing webhook
Mitigasi: TB Radius juga polling ke PG tiap 5 menit untuk pembayaran pending — sebagai fallback kalau webhook miss.
Refund online butuh manual
Kalau pelanggan minta refund (mis. salah bayar 2x), proses refund harus manual di dashboard PG:
- Login dashboard PG → cari transaksi
- Klik "Refund" → input alasan
- Setelah refund, edit invoice di TB Radius: status → Refunded
Troubleshooting¶
Pelanggan klik "Bayar" tapi error "Gateway not configured"
Payment gateway belum aktif untuk tenant ini. Cek Settings → Payment Gateway — pastikan minimal 1 PG Active dan kredensial valid.
QRIS generated tapi pelanggan tidak bisa scan
Penyebab:
- QR expired (default 1 jam) — generate ulang
- Nominal di luar range (< Rp 1.000 atau > Rp 10 juta)
- App pelanggan belum support QRIS dynamic dari merchant aggregator (rare, update app pelanggan)
- Hasil generate corrupt — refresh halaman
Pembayaran sukses di app bank, tapi invoice tetap Unpaid
Standard troubleshoot:
- Tunggu 5-10 menit (webhook delay)
- Cek log webhook di Settings → Webhook Log — apakah ter-log?
- Kalau ter-log tapi tidak diproses, ada error parsing (cek log detail)
- Kalau tidak ter-log sama sekali, webhook URL salah di dashboard PG, atau IP TB Radius di-block firewall PG
- Manual mark paid sambil debug
Status invoice flickering (Paid → Unpaid → Paid)
Mungkin webhook PG dikirim berulang (retry). TB Radius normally dedupe by transaction_id, tapi kalau bug, bisa terjadi.
Cek log webhook → kalau duplicate, fix idempotency check di code.
Pelanggan komplain "tagihan saya bayar 2x kepotong"
- Buka invoice → cek history pembayaran
- Kalau memang ada 2 transaksi sukses:
- Refund 1 transaksi via dashboard PG
- Atau credit balance untuk invoice berikutnya (kalau pelanggan setuju)
Pelanggan tidak terima notif konfirmasi setelah bayar
Cek:
- WhatsApp gateway aktif & saldo cukup
- Template "Payment Confirmation" enabled
- Nomor pelanggan format internasional benar
FAQ¶
Q: Berapa lama settlement dana masuk ke rekening saya? A: Tergantung PG:
- QRIS: T+1 (besok)
- VA bank: T+1
- E-wallet: T+1 sampai T+2
- Credit Card: T+7
- Retail (Alfamart/Indomaret): T+2
Cek schedule settlement di dashboard PG.
Q: Pelanggan komplain "tidak bisa bayar QRIS dari app bank tertentu"? A: Beberapa app m-banking masih belum 100% support QRIS dari merchant aggregator (mis. Tripay). Solusi:
- Edukasi pelanggan pakai e-wallet (OVO/DANA/GoPay) untuk scan QRIS
- Atau pakai VA bank yang spesifik (BCA → Klik BCA bisa)
Q: Bisa bayar lewat link tanpa portal?
A: Bisa. Reminder WA include link direct https://app.tbradius.com/pay/{token} — buka halaman bayar yang tidak butuh login. Pelanggan langsung pilih method dan bayar.
Q: Bisa bayar partial via PG? A: Default tidak — PG biasanya generate kode dengan nominal exact. Untuk partial:
- Manual minta pelanggan transfer manual sebagian
- Anda input manual via Pembayaran Manual
Q: Multi-PG di 1 invoice (failover)? A: Pelanggan pilih PG dari list yang aktif. Kalau PG pilihan down (rare), pelanggan bisa pilih PG lain. TB Radius tidak auto-failover, tapi UI menampilkan multiple option.