Webhooks
Use webhooks to receive real-time notifications when bookings are created, updated, or cancelled.
What are webhooks?
Webhooks let you receive HTTP POST requests to your server whenever something happens in Timerise — for example, when a booking is created or cancelled. This lets you react to events in real time without polling the API.
Supported events
| Event | Description |
|---|---|
booking.created | A new booking was confirmed |
booking.updated | A booking was modified |
booking.cancelled | A booking was cancelled |
booking.no_show | A booking was marked as no-show |
Register a webhook
- Go to your project Settings → Webhooks
- Click Add webhook
- Enter your endpoint URL (must be HTTPS)
- Select the events you want to receive
- Click Save
Webhook payload
Each request is a POST with a JSON body:
{
"event": "booking.created",
"timestamp": "2026-03-01T10:00:00Z",
"projectId": "YOUR_PROJECT_ID",
"data": {
"bookingId": "abc123",
"serviceId": "svc456",
"startsAt": "2026-03-10T09:00:00Z",
"endsAt": "2026-03-10T10:00:00Z",
"customer": {
"name": "Jane Doe",
"email": "jane@example.com"
}
}
}Verify webhook signatures
Each request includes a X-Timerise-Signature header containing an HMAC-SHA256 signature. Verify it to ensure the request came from Timerise:
const crypto = require("crypto");
function verifySignature(payload, signature, secret) {
const expected = crypto
.createHmac("sha256", secret)
.update(payload)
.digest("hex");
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expected)
);
}Your webhook secret is shown once when you create the webhook. Store it securely.
Retries
If your endpoint returns a non-2xx response or times out, Timerise will retry the request up to 5 times with exponential backoff over 24 hours.
Disable or delete a webhook
Go to Settings → Webhooks, find the webhook, and toggle it off or click Delete.