Mulai Cepat
1. Konfigurasi webhook
Bagian berjudul "1. Konfigurasi webhook"Di dashboard, buka sebuah project → tab Notifications → masukkan
callback URL https:// → simpan. Salin signing secret yang ditampilkan
— hanya ditampilkan sekali.
2. Verifikasi signature di handler Anda
Bagian berjudul "2. Verifikasi signature di handler Anda"Setiap request membawa header
X-Baiyar-Signature: t=<timestamp>,v1=<hex hmac>. Hitung ulang HMAC
atas "<timestamp>.<raw body>" dengan secret Anda lalu bandingkan:
import crypto from "node:crypto";
function verifyWebhook(rawBody, signatureHeader, secret) { const [tPart, v1Part] = signatureHeader.split(","); const timestamp = Number(tPart.split("=")[1]); const signature = v1Part.split("=")[1];
const expected = crypto .createHmac("sha256", secret) .update(`${timestamp}.${rawBody}`) .digest("hex");
return ( expected.length === signature.length && crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(signature)) );}Lihat Verifikasi Signature Webhook untuk pengecekan toleransi timestamp, contoh Python, dan jebakan raw-body yang bisa merusak ini kalau Anda lewatkan.
3. Picu event tes
Bagian berjudul "3. Picu event tes"Gunakan simulator payment sandbox alih-alih menunggu payment sungguhan — baik Alat simulasi sandbox yang tampil di halaman checkout sandbox mana pun, atau langsung:
curl -X POST https://api.baiyar.id/sandbox/payments/{providerPaymentID}/simulate \ -H "Content-Type: application/json" \ -d '{"outcome": "paid"}'Kalau webhook Anda sudah dikonfigurasi, ini mengirim request
payment.paid sungguhan ke endpoint Anda — cara tercepat untuk
memastikan handler Anda merespons 2xx dan pengecekan signature Anda
lolos sebelum pelanggan sungguhan bergantung padanya.
Selanjutnya
Bagian berjudul "Selanjutnya"- Cara Kerja Webhook — konsep dan siklus hidup pengiriman, kalau Anda langsung lompat ke sini.
- payment.paid dan payment.failed — bentuk payload persis untuk event transaksi.
- Menangani Pengiriman Webhook — retry dan membuat handler Anda idempotent, keduanya penting sebelum go live.