Webhooks

Use webhooks to receive real-time notifications when bookings are created, updated, or cancelled.

Updated March 1, 2026webhooksapieventsintegration

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

EventDescription
booking.createdA new booking was confirmed
booking.updatedA booking was modified
booking.cancelledA booking was cancelled
booking.no_showA booking was marked as no-show

Register a webhook

  1. Go to your project Settings → Webhooks
  2. Click Add webhook
  3. Enter your endpoint URL (must be HTTPS)
  4. Select the events you want to receive
  5. 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.

Related articles