Register an endpoint
Responds
201 Created with the webhook, including its secret. The secret starts with whsec_ and is used to verify signatures. Store it securely.
Manage endpoints
Events
These are some of the events you can subscribe to:Payload
Every delivery is aPOST with a JSON body:
id stays the same across retries, so use it to ignore duplicates.
Headers
Verify signatures
The signature is an HMAC-SHA256 of the timestamp, a dot, and the raw request body, using the endpoint’s secret:X-Orvlin-Signature using a constant-time comparison. Verify the signature against the raw body before parsing the JSON.
X-Orvlin-Timestamp is recent, for example within five minutes, so a captured delivery can’t be replayed later. Orvlin signs the timestamp, but your endpoint has to check it.
Responding
Return any2xx status within 8 seconds to acknowledge the delivery. Do the slow work after you respond, for example by queuing a job.
Retries
If your endpoint doesn’t return2xx, Orvlin retries with increasing delays, for about a day. After the last attempt, the delivery is marked as failed. Each attempt is listed under GET /v1/webhooks/:id/deliveries.
If your endpoint returns errors repeatedly, fix it and then re-enable it with PATCH /v1/webhooks/:id.