Apa itu Webhook?
Webhook adalah mekanisme push notification dari server Bukasir ke server Anda. Setiap kali status transaksi berubah (berhasil, gagal, kedaluwarsa), Bukasir akan mengirimkan POST request ke URL webhook yang Anda tentukan.
Ini jauh lebih efisien daripada polling — Anda tidak perlu terus-menerus mengecek status transaksi secara manual.
Langkah 1: Siapkan Endpoint di Server Anda
Buat file PHP yang akan menerima POST request dari Bukasir. Endpoint Anda harus:
- Membaca raw POST body dari request
- Mem-parse JSON payload
- Memverifikasi signature untuk keamanan
- Memproses notifikasi dan update database
- Mengembalikan response 200 OK
Pastikan handler Anda idempotent — artinya bisa dipanggil berulang kali tanpa efek samping negatif.
Langkah 2: Konfigurasi Webhook URL
Masuk ke dashboard Bukasir, buka Settings lalu API, dan masukkan URL endpoint Anda di kolom Webhook URL.
Contoh: https://domainanda.com/webhook_handler.php
Langkah 3: Pastikan Server Anda Aman
Beberapa hal yang perlu diperhatikan:
- Gunakan HTTPS — Bukasir hanya mengirim webhook ke URL HTTPS
- Validasi IP — Whitelist IP Bukasir di firewall Anda
- Response cepat — Return 200 OK dalam 5 detik, proses di background
- Idempotent — Pastikan handler bisa dipanggil berulang kali tanpa efek samping
Contoh Status Transaksi
| capture | Pembayaran berhasil (settled) |
| pending | Menunggu pembayaran |
| expire | Transaksi kedaluwarsa |
| deny | Pembayaran ditolak |
| cancel | Transaksi dibatalkan |
Testing Webhook
Gunakan endpoint simulasi untuk testing. Kirim POST request ke /api/simulate dengan order_id dan status yang diinginkan. Ini akan trigger webhook seolah-olah Midtrans mengirim notifikasi pembayaran berhasil.
Kesimpulan
Webhook memungkinkan sistem Anda selalu up-to-date dengan status pembayaran tanpa perlu polling. Ini adalah best practice untuk setiap integrasi pembayaran.