Lewati ke konten

Ringkasan webhook

Cara mendaftarkan endpoint webhook, memilih event-nya, dan seperti apa pengiriman dari Baiyar.


Baiyar dapat mengirim event bertanda tangan saat pembayaran, payment link, invoice, proyek, API key, atau endpoint webhook berubah. Setiap event dikirim sebagai request POST dengan body JSON. Jenis event yang sama tersedia di sandbox dan live; livemode menunjukkan environment-nya.

Di dashboard (Developer Tools → Webhook → Tambah endpoint) atau lewat Merchant API (POST /v1/webhook-endpoints, scope webhooks:write).

  • Alamatnya harus HTTPS publik. localhost, alamat privat, dan http biasa ditolak, di sandbox juga. Untuk menguji dari laptop pakai tunnel.
  • Endpoint milik satu proyek atau seluruh merchant. Endpoint proyek menerima event proyek itu; endpoint merchant menerima event semua proyek dan juga event akun (webhook_endpoint.disabled).
  • Kamu mendapat signing secret, whsec_…, sekali saja. Simpan seperti password. Secret bisa dirotasi; secret lama tetap menandatangani selama 24 jam supaya kamu bisa berganti tanpa kehilangan event.
  • Maksimal 5 endpoint per proyek dan 5 untuk merchant, di tiap environment.

events adalah daftar. Tiap entri adalah jenis event (payment.succeeded), sebuah keluarga (payment.*, payment.attempt.*, payment_link.*), atau * untuk semuanya. Daftar kosong berarti semuanya. GET /v1/event-types menampilkan semua jenis beserta deskripsi dan cakupannya.

POST /your/endpoint HTTP/1.1
Content-Type: application/json
Baiyar-Signature: t=1760608800,v1=5b1f…
Baiyar-Event-Id: wev_01…
Baiyar-Event-Type: payment.succeeded
Baiyar-Delivery-Id: wdl_01…
{
"id": "wev_01k7…",
"type": "payment.succeeded",
"livemode": false,
"created": 1760608800,
"project_id": "prj_01k7…",
"data": {
"object": { "id": "pay_01k7…", "status": "paid", "amount": 10000000, "currency": "IDR" }
}
}

data.object adalah objek yang sama dengan yang dikembalikan API untuk resource itu (GET /v1/payments/{id}, GET /v1/payment-links/{id}), dibaca saat event dibuat. Nominal adalah bilangan bulat dalam satuan terkecil mata uang (10000000 adalah Rp100.000,00).

Jawab dengan 2xx apa pun dalam 10 detik. Selain itu, atau tanpa jawaban, dihitung sebagai percobaan yang gagal.