Register a webhook
Register an HTTPS endpoint to receive signed event notifications when a workflow reaches a
terminal state. Halliday delivers each event as an HTTP POST to your registered url, so the
endpoint must accept POST requests. On success the response includes a signing_secret that
is only ever returned on creation and rotation — store it immediately, because it cannot be
retrieved again from the list endpoint.
Authenticate with a secret API key that has webhook access. Publishable keys cannot manage webhooks.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Receiver URL. Must be HTTPS on port 443. Private/reserved IP addresses are rejected (SSRF protection).
"https://api.yourapp.com/halliday/webhooks"
Human-readable identifier, unique per org. Used to address the webhook on update, rotate, and delete.
"prod-workflows"
At least one event type to subscribe to.
1Event type a webhook can subscribe to. WORKFLOW_COMPLETED fires when a workflow's status
becomes COMPLETE; WORKFLOW_FAILED fires when it becomes FAILED.
WORKFLOW_COMPLETED, WORKFLOW_FAILED ["WORKFLOW_COMPLETED", "WORKFLOW_FAILED"]Optional custom HTTP header that Halliday attaches to every delivery to your receiver URL, so your
endpoint can authenticate inbound deliveries in addition to verifying X-Halliday-Signature. The
value is write-only — it is never returned by any endpoint; the list endpoint echoes only the
header name as auth_header_name.
Optional. Provide your own HMAC-SHA256 signing secret instead of letting Halliday generate
one. Omit this to receive a generated signing_secret in the response.
"my-own-signing-secret"
Response
Webhook registered successfully
A registered webhook including its signing secret. Returned only on creation and rotation.

