Cara Kerja Webhook
Push, bukan pull
Bagian berjudul "Push, bukan pull"Tanpa webhook, satu-satunya cara mengetahui payment sudah selesai adalah
polling GET /v1/payments/{paymentID}
berulang-ulang. Webhook membalik ini: Baiyar membuat HTTP POST request
ke URL yang Anda konfigurasi, membawa hasilnya, tepat saat payment
mencapai status akhir. Server Anda cukup punya endpoint yang menerima
request itu — tidak perlu loop, tidak ada request yang terbuang saat
payment masih pending.
Siklus hidup pengiriman
Bagian berjudul "Siklus hidup pengiriman"- Sebuah transaksi mencapai status akhir —
succeeded,failed, atauexpired. (pendingdanprocessingtidak pernah memicu webhook; lihat Status Pembayaran untuk arti tiap status.) - Baiyar mengantre satu event untuk transaksi tersebut —
payment.paiduntuksucceeded,payment.faileduntukfailedatauexpired. - Sebuah background worker mengambil event yang diantrekan kira-kira
setiap 5 detik, menandatangani payload-nya, dan mengirimkannya ke URL
yang Anda konfigurasi sebagai HTTP
POSTdengan bodyContent-Type: application/json. - Endpoint Anda merespons. Status
2xxmenandai event terkirim. Selain itu — termasuk timeout — dianggap gagal dan dicoba ulang; lihat Menangani Pengiriman Webhook.
Artinya pengiriman bersifat asinkron dan eventually-consistent, bukan instan — biasanya tiba dalam beberapa detik setelah payment selesai, bukan di milidetik yang sama persis.
Mekanisme antrean-tanda tangan-retry yang sama juga berlaku untuk perubahan project dan API key — lihat event Project dan API Key untuk bentuk payload-nya.
Apa yang Anda dapat, dan yang tidak
Bagian berjudul "Apa yang Anda dapat, dan yang tidak"Payload event adalah ringkasan (id, referensi, jumlah, status, waktu) —
bukan objek payment lengkap. Kalau butuh sesuatu yang tidak ada di
payload (rincian fee, info pelanggan, instruksi pembayaran), panggil
GET /v1/payments/{data.id}
dengan API key Anda menggunakan ID dari event tersebut. Lihat
payment.paid atau
payment.failed untuk bentuk payload persisnya.
Selanjutnya
Bagian berjudul "Selanjutnya"- Konfigurasi Webhook untuk mendapatkan URL dan signing secret.
- Verifikasi Signature Webhook untuk memastikan request benar-benar dari Baiyar sebelum Anda memprosesnya.