Lewati ke isi

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

  1. Pelanggan buka client.tbradius.com (atau subdomain tenant kalau whitelabel)
  2. Login dengan HP+OTP atau email/password
  3. Dashboard: lihat tagihan aktif
  4. Klik "Bayar Sekarang"
  5. Pilih method (QRIS/VA/e-wallet)
  6. Sistem generate kode → tampilkan ke pelanggan
  7. Pelanggan bayar lewat app bank/e-wallet
  8. Setelah bayar, kembali ke portal → status auto-update Paid

Untuk pelanggan yang tidak mau login portal:

  1. Reminder WhatsApp include link bayar direct (mis. https://app.tbradius.com/pay/{token})
  2. Klik link → buka halaman bayar tanpa login
  3. Pilih method → bayar
  4. Sama flow di atas

Via Aplikasi Android (TBR Client)

Kalau pelanggan install app Android:

  1. Buka app TBR Client
  2. Login otomatis (kalau sudah pernah)
  3. Dashboard → klik tagihan → "Bayar"
  4. Method picker
  5. Bayar via app bank → kembali ke TBR Client → status update

QRIS Dynamic (Detail)

QRIS adalah metode paling populer. Cara kerjanya:

  1. Pelanggan klik "Bayar dengan QRIS"
  2. Sistem generate QR code dynamic (nominal sudah include di QR)
  3. Pelanggan scan QR pakai app bank (Livin BCA, BRImo, dll) atau e-wallet
  4. Bayar otomatis dengan nominal sesuai
  5. 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:

  1. Pilih bank (BCA / Mandiri / BRI / dll)
  2. Sistem generate nomor VA unique untuk invoice ini
  3. Pelanggan buka m-banking → transfer ke nomor VA → nominal auto-detect
  4. 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:

  1. Login dashboard PG → cari transaksi
  2. Klik "Refund" → input alasan
  3. 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:

  1. Tunggu 5-10 menit (webhook delay)
  2. Cek log webhook di Settings → Webhook Log — apakah ter-log?
  3. Kalau ter-log tapi tidak diproses, ada error parsing (cek log detail)
  4. Kalau tidak ter-log sama sekali, webhook URL salah di dashboard PG, atau IP TB Radius di-block firewall PG
  5. 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"
  1. Buka invoice → cek history pembayaran
  2. Kalau memang ada 2 transaksi sukses:
  3. Refund 1 transaksi via dashboard PG
  4. 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.