Send a test event now
BuildingIn development for the v1 API. The contract is set; the route is not served yet.
Posts a signed webhook.test event (data: {webhook_id, message}) to the URL right away, with the secrets and extra headers in force, and answers what the endpoint replied. One attempt, no retries; it works on a paused or disabled subscription and does not count towards consecutive_failures. The delivery shows in the log like any other. At most 10 per minute per subscription.
Needs the webhooks:write scope.
oauth2 webhooks:writeAuthorizationBearer <token>OAuth 2.0 client credentials. Exchange your client_id and client_secret at /oauth/token of the environment for a bearer token valid for one hour. The playground of every operation asks for your own client and keeps it in your browser tab only.
Scope: webhooks:write
id*stringThe subscription id.
^whk_[0-7][0-9a-hjkmnp-tv-z]{25}$What the endpoint answered. status is delivered on a 2xx, failed otherwise.
application/json- response
delivery_id*string^dlv_[0-7][0-9a-hjkmnp-tv-z]{25}$event_id*string^evt_[0-7][0-9a-hjkmnp-tv-z]{25}$status*string"delivered""failed"status_code*|nulllatency_ms*integerresponse_snippet*stringFirst KiB of printable text of the response body.
error_class*|nullerror*string|nullcurl -X POST 'https://api.dev.b2b.heru.app/v1/webhooks/whk_01m53g5zw414zt6vg08fqbacgm/test'{ "delivery_id": "dlv_01m53g5zw414zt6vg08fqbacgm", "event_id": "evt_01m53g5zw414zt6vg08fqbacgm", "status": "delivered", "status_code": 200, "latency_ms": 143, "response_snippet": "ok", "error_class": null, "error": null}Rotate the signing secretPOST
Mints a new secret and answers it once. The previous secret keeps signing for `expires_previous_in` (24 hours by default, 7 days at most), so every delivery carries two `v1` signatures meanwhile and you can switch without missing an event; `0s` retires it at once. Never more than two secrets sign: a second rotation inside the overlap retires the oldest. At most 5 rotations per hour per subscription. No `Idempotency-Key`: every call rotates. Needs the `webhooks:write` scope.
Replay a deliveryPOST
Queues a new delivery of the same event, byte for byte, to the same subscription. It goes out on the next pass with its own `Heru-Delivery-Id` and `Heru-Attempt: 1`; discard it by `Heru-Event-Id` if you already processed the event. Allowed for `delivered`, `failed` and `expired` deliveries whose event is still retained (30 days); a delivery in progress or of a deleted subscription answers `409`. Retrying with the same `Idempotency-Key` returns the same new delivery. Needs the `webhooks:write` scope.