Manage webhooks
What does this do for me?
A webhook pushes real-time event data from KeylessSSL to your own server so you do not need to poll the API for changes.Before you begin
- You need an owner, admin, or operator role.
- Your endpoint must use HTTPS and be publicly reachable.
Register an endpoint
- Open Webhooks.
- Select Add webhook.
- Enter the URL of your endpoint.
-
Select which events to receive:
- domain.verified — a domain passed ownership verification.
- cert.requested — certificate issuance was requested for a domain.
- cert.issued — the provider finished issuing a certificate.
- Select Add.
Verify a delivery
Each webhook POST includes these headers:- x-keylessssl-event — the event name, such as
domain.verified. - x-keylessssl-timestamp — the timestamp included in the signature input.
- x-keylessssl-signature — a versioned signature in the form
v1=<hex digest>.
.), and the exact UTF-8 request body. Calculate an HMAC-SHA256 digest with the signing secret, encode it as lowercase hexadecimal, prefix it with v1=, and compare it with x-keylessssl-signature using a constant-time comparison.
Reject a request when the timestamp or signature is missing or malformed. KeylessSSL does not prescribe a fixed replay tolerance, so choose a maximum age for your application and reject timestamps outside that window.
After verification, parse the JSON. Current event data contains:
domain.verified—domainIdandapex.cert.requested—certificateIdandapex.cert.issued—certificateIdandapex.
Send a test delivery
- Open Webhooks.
- Select Test next to the endpoint.
webhook.test event to your endpoint without retrying on failure.
Failed non-test deliveries are stored for retry. The default limit is five delivery attempts.
Edit or remove an endpoint
- Open Webhooks.
- Select Edit to change the URL or events.
- Select Delete to stop all deliveries to that endpoint.