Webhooks
Bizzle notifies your server of state changes with HTTP webhooks. Every delivery is signed and every attempt is logged, so you can verify, debug, and replay.
Register an endpoint
Section titled “Register an endpoint”curl -X POST https://api.bizzle.my/v1/webhooks \ -H "Authorization: Bearer sk_live_yourkey" \ -H "Content-Type: application/json" \ -d '{"url": "https://example.com/bizzle/webhook", "events": ["payment.succeeded"]}'The response includes a signing secret (whsec_…), shown once.
| Endpoint | Purpose |
|---|---|
POST /v1/webhooks |
Create an endpoint (returns secret once) |
GET /v1/webhooks |
List endpoints with health |
DELETE /v1/webhooks/:id |
Delete an endpoint |
POST /v1/webhooks/:id/rotate-secret |
Rotate the signing secret |
Delivery headers
Section titled “Delivery headers”Every delivery is a POST with a JSON body and these headers:
| Header | Value |
|---|---|
X-Webhook-Signature |
HMAC-SHA256 hex digest of the body |
X-Webhook-Id |
Event id (evt_…) — stable across retries |
X-Webhook-Event |
Event type, e.g. payment.succeeded |
Content-Type |
application/json |
Delivery logs
Section titled “Delivery logs”GET /v1/webhook-deliveries returns the delivery log across your endpoints, newest
first. Use the event id to correlate with a replay or with your own logs.
Test events
Section titled “Test events”Send a synthetic event to your endpoints without moving money:
curl -X POST https://api.bizzle.my/v1/webhook-events/test \ -H "Authorization: Bearer sk_test_yourkey" \ -H "Content-Type: application/json" \ -d '{"type": "payment.succeeded", "data": {"amount": 50000}}'Test events are delivered with livemode: false.
Continue to Verification, the event catalog, and Retries & replay.