Skip to content

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.

Terminal window
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

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

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.

Send a synthetic event to your endpoints without moving money:

Terminal window
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.