Skip to content

Register to Webhook Events API (1.3.0)

The Webhook APIs is a REST API designed to manage webhooks for booking notifications. It allows partners to register, update, and delete webhook endpoints, enabling them to receive real-time booking event updates.

Receiving events

Once a callback URL is registered, Bookable POSTs a JSON BookingNotification to it for each event. Delivery is at-least-once: the same event may be delivered more than once, so consumers must be idempotent (booking events by booking id, messages by message id).

Each request carries an X-API-Key header containing a lowercase hex HMAC-SHA256 signature of the raw request body, keyed with the secretKey returned at registration. Verify it by recomputing the HMAC over the received body and comparing.

Event types (eventType):

  • booking.updated — a booking was created or changed (payload in bookings).
  • message.received — one or more messages for a booking (payload in messages). Emitted only for operator_to_partner messages (the venue operator sent it, delivered to the partner); filter on subject/senderEmail.
Download OpenAPI description
Languages
Servers
Live
https://api.bookabletech.com
Sandbox
https://api-sandbox.bookabletech.com

webhook

Operations related to webhook management

Operations

Register a webhook endpoint for booking notifications

Request

Security
Live or Sandbox
Bodyapplication/jsonrequired

Webhook registration request

callbackUrlstring(uri)required

HTTPS URL to be called when a booking event occurs

Example: "https://partner.example.com/webhooks/bookings"
curl -i -X POST \
  https://api.bookabletech.com/webhooks \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "callbackUrl": "https://partner.example.com/webhooks/bookings"
  }'

Responses

Webhook successfully registered

Bodyapplication/json
secretKeystring

Unique secret key for the registered webhook to verify data

Example: "123e4567-e89b-12d3-a456-426655440000"
callbackUrlstring(uri)

HTTPS URL to be called when a booking event occurs

Example: "https://partner.example.com/webhooks/bookings"
Response
application/json
{ "secretKey": "123e4567-e89b-12d3-a456-426655440000", "callbackUrl": "https://partner.example.com/webhooks/bookings" }

Update the webhook callback URL of the specific distributor logged

Request

Security
Live or Sandbox
Bodyapplication/jsonrequired

Webhook update request. Only the callbackUrl can be modified.

callbackUrlstring(uri)required

HTTPS URL to be called when a booking event occurs

Example: "https://partner.example.com/webhooks/bookings"
curl -i -X PUT \
  https://api.bookabletech.com/webhooks \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "callbackUrl": "https://partner.example.com/webhooks/bookings"
  }'

Responses

Webhook successfully updated

Response
No content

Delete the webhook for a specific distributor

Request

Security
Live or Sandbox
curl -i -X DELETE \
  https://api.bookabletech.com/webhooks \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Webhook successfully deleted

Response
No content

Trigger a test webhook eventDeprecated

Request

Deprecated — scheduled for removal in 2.0.0.

Delivers a synthetic booking.updated notification (a sample booking) to your registered callbackUrl, signed with X-API-Key exactly like a real event, so you can verify your endpoint and HMAC handling. It is not tied to any real booking.

For ongoing integration testing use the sandbox self-echo flow instead: in the sandbox environment every booking you create, amend, or cancel automatically fires the corresponding webhook to your registered sandbox callback URL — no separate trigger needed.

Security
Live or Sandbox
curl -i -X POST \
  https://api.bookabletech.com/webhooks/test \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'

Responses

Test webhook event accepted and delivered

Bodyapplication/json
messagestring

Human-readable confirmation that the test event was delivered.

Example: "Test webhook event delivered to the registered callback URL"
eventIdstring

Unique identifier for the test event, recorded in the webhook_events audit log.

Example: "evt_test_123e4567"
Response
application/json
{ "message": "Test webhook event delivered to the registered callback URL", "eventId": "evt_test_123e4567" }