payment.failed
Dikirim saat sebuah payment (dari payment link
atau pembayaran langsung) mencapai
status akhir tanpa berhasil — failed atau expired. Keduanya dikirim
sebagai tipe event yang sama.
Header
Bagian berjudul "Header"| Header | Deskripsi |
|---|---|
X-Baiyar-Signature |
t=<unix timestamp>,v1=<hex HMAC-SHA256> — lihat Verifikasi Signature Webhook |
Content-Type |
application/json |
Payload
Bagian berjudul "Payload"{ "id": "018f1f29-a1e0-73e4-a310-744d2167fcc2", "type": "payment.failed", "created_at": "2026-09-02T09:20:00Z", "data": { "id": "018f1f29-9b21-73e4-a310-744d2167fca1", "project_id": "018f1f29-7c00-73e4-a310-744d2167fc60", "reference": "ORDER-2026-0002", "amount": 15000, "currency": "IDR", "status": "failed" }}| Field | Tipe | Deskripsi |
|---|---|---|
id |
string | ID event unik — gunakan untuk deduplikasi pengiriman yang di-retry, bukan data.id |
type |
string | Selalu payment.failed |
created_at |
date-time | Kapan event dibuat |
data.status |
string | failed atau expired |
data tidak punya field paid_at — payment tidak pernah berhasil. Panggil
GET /v1/payments/{data.id}
dengan API key Anda untuk detail payment selengkapnya.
Percobaan ulang setelah payment.failed menghasilkan transaksi baru
dengan event id sendiri — jangan asumsikan satu reference hanya gagal
sekali.
Pengujian
Bagian berjudul "Pengujian"curl -X POST https://api.baiyar.id/sandbox/payments/{providerPaymentID}/simulate \ -H "Content-Type: application/json" \ -d '{"outcome": "failed"}'outcome juga bisa expired, untuk menguji jalur itu secara spesifik.
Lihat Simulasi Sandbox dan
Menangani Pengiriman Webhook.
Langkah selanjutnya
Bagian berjudul "Langkah selanjutnya"payment.paid — event transaksi lainnya.