Webhook adalah notifikasi otomatis yang dikirim oleh payment gateway ketika status pembayaran berubah.
Konfigurasi webhook diperlukan untuk memastikan status pembayaran di aplikasi selalu up-to-date.
Webhook URL:
Konfigurasi di Midtrans:
- Login ke Midtrans Dashboard
- Pilih Environment (Sandbox/Production)
- Masuk ke menu Settings → Configuration
- Isi Payment Notification URL dengan URL webhook di atas
- Klik Save
Midtrans menggunakan IP whitelisting, pastikan server dapat diakses dari internet.
Webhook URL:
Konfigurasi di Xendit:
- Login ke Xendit Dashboard
- Masuk ke menu Settings → Webhooks
- Klik + Add webhook endpoint
- Isi URL dengan webhook URL di atas
- Pilih events yang diperlukan:
- Virtual Account Paid
- E-wallet Payment
- Invoice Paid
- Credit Card Payment
- Klik Create webhook
Xendit menggunakan callback token untuk validasi webhook.
Webhook URL:
Konfigurasi di Tripay:
- Login ke Tripay Dashboard
- Masuk ke menu API → Settings
- Scroll ke bagian Callback URL
- Isi URL dengan webhook URL di atas
- Klik Save Settings
Tripay menggunakan signature validation untuk keamanan webhook.
Cara Test Webhook:
- Pastikan semua gateway sudah dikonfigurasi dengan benar
- Lakukan test transaksi kecil (minimal amount)
- Monitor log aplikasi untuk melihat webhook yang masuk
- Verifikasi status pembayaran ter-update otomatis
Troubleshooting:
- Webhook tidak diterima: Periksa firewall dan pastikan server dapat diakses dari internet
- Status tidak update: Periksa log error dan validasi signature
- Duplicate notification: Implementasikan idempotency check
- SSL Error: Pastikan menggunakan SSL certificate yang valid
Validasi Signature:
- Semua webhook harus memvalidasi signature
- Gunakan secret key yang aman
- Tolak request dengan signature tidak valid
HTTPS Only:
- Selalu gunakan HTTPS untuk webhook URL
- SSL certificate harus valid
- Jangan gunakan self-signed certificate
Rate Limiting:
- Implementasikan rate limiting
- Log semua webhook request
- Monitor untuk anomali