expiring, kicking off a Terraform run when a new CA is registered, or forwarding attestation failures to a SIEM. Every delivery is HMAC-signed with a per-endpoint secret so recipients can verify authenticity.
All endpoints are namespaced under /api/integrations/* and require authentication.
List webhook endpoints
GET /api/integrations/webhooks
HTTPS URL that will receive
POST deliveries.Event types this endpoint is subscribed to.
HMAC signing secret. Prefixed
whsec_, 40 bytes of entropy.Rolling percentage (0–100).
Create a webhook endpoint
POST /api/integrations/webhooks
Must be an absolute HTTPS URL that responds within 30s with a 2xx status.
Non-empty list. See the event catalog below.
Test delivery
POST /api/integrations/webhooks/:webhookId/test
Enqueues a synthetic webhook.test event to the endpoint. Returns the deliveryId so you can trace it in the delivery log.
Delivery log
GET /api/integrations/webhooks/deliveries
Filter to a specific endpoint.
Exact JSON body that was (or will be) POSTed.
pending, success, failed.HTTP status returned by the receiver.
Milliseconds to first byte.
Populated when
status=failed.Includes retries.
Delivery format
Each delivery is aPOST to the configured url with:
<timestamp>.<raw-body> with the endpoint’s secret as the key.
Verifying in Node.js:
Retries
Failed deliveries (non-2xx or timeout) are retried with exponential backoff — 30s, 2m, 10m, 1h, 6h — up to 5 attempts. Theattempts counter on the delivery row tracks this; status flips to failed only after the final attempt.
Event catalog
Commonly-used event types (non-exhaustive):| Event | Fires when |
|---|---|
certificate.created | A cert is imported or issued |
certificate.updated | Any field mutation |
certificate.expiring | Enters the 30-day expiry window |
certificate.expired | Passes expiresAt |
certificate.revoked | Marked revoked |
certificate.renewed | Renewal succeeds |
ca.created / ca.updated / ca.health_changed | CA lifecycle |
discovery.scan_completed | Scan reaches terminal state |
discovery.new_certificates_found | Fresh unknown certs surface |
workflow.execution_completed | Execution terminates |
attestation.failed | Any attest-and-provision failure |
webhook.test | Emitted by the /test endpoint |
["*"] to receive everything.
External integrations
Adjacent to webhooks are external integrations — outbound connectors to Slack, Jira, ServiceNow, etc. These share the same URL surface:GET /api/integrations/external— list configured integrationsPOST /api/integrations/external— create with{ name, type, configuration }
type values include slack, msteams, pagerduty, jira, servicenow, splunk, datadog.
See also
- Workflows — the primary source of automation events
- Certificates — the resource most events describe
- Authentication — creating the API key you’ll use to manage endpoints