Webhooks
Daybook posts signed events to the HTTPS endpoints you register, and records every delivery.
Register an HTTPS endpoint in Developers → Webhooks in the Daybook app. Daybook signs every event it sends with the endpoint's secret and records each delivery on the endpoint's page. Send test event posts a webhook.test event, so you can check your handler end to end.
The event envelope
Every event has the same outer shape.
idstringUnique id:evt_and a ULID. The same value as thewebhook-idheader. Use it to drop duplicates.typestringSuch aswebhook.test. See Event types.created_atstringRFC 3339 timestamp.modestringtestfrom a sandbox account,livefrom a production account.dataobjectThe event's data. See Event types.
{
"id": "evt_01JBXK8N3QZ7V2C4D5E6F7G8HJ",
"type": "webhook.test",
"created_at": "2026-10-29T14:31:40Z",
"mode": "test",
"data": {
"endpoint_id": "whe_01JBXK4R7T2M9P5W3Y6A8C0D1E",
"message": "This is a test event from Daybook."
}
}Handling events well
- Verify the signature
Reject anything without a valid
webhook-signature. See Verifying signatures. - Return 2xx fast
Daybook waits 10 seconds for your answer. Any other status, or no answer in that time, is recorded as a failed delivery. Acknowledge first, then do the work in the background.
- Drop duplicates
Keep the
ids you've processed and skip any you've seen. A delivery that failed is tried again with the sameid, so the same event can reach you more than once.

