Operations related to webhook management
Register to Webhook Events API (2.0.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.
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 of the subscription it was sent for. Verify it by recomputing the HMAC over the received body and comparing.
It also carries an X-Webhook-Id header naming that subscription. If you hold more than one subscription, use it to pick the right secretKey rather than inferring it from the URL the request arrived on. A single-subscription integration can ignore the header.
Answer within 10 seconds. Timeouts, retries and redelivery per event type are described in the Handling Webhook Events API.
A distributor may register several webhook subscriptions, each with its own callback URL, secret and event filter — see /webhooks/subscriptions. This lets an application acting on your behalf subscribe without disturbing your own integration.
A distributor may hold up to 10 subscriptions, paused ones included; creating an 11th answers 409 with code WHK-N-004. Subscriptions belong to one environment: one created in the sandbox does not exist in Live, and the reverse.
Event types (eventType):
booking.updated— a booking was created or changed (payload inbookings).message.received— one or more messages for a booking (payload inmessages). Emitted only foroperator_to_partnermessages (the venue operator sent it, delivered to the partner); filter onsubject/senderEmail.venue.updated— a venue you distribute changed status; today only closures are sent (payload invenues).webhook.ping— a connectivity test you asked for withPOST /webhooks/test; no payload. Test deliveries also carry anX-Webhook-Test: trueheader.
Switch on eventType and answer 2xx to types you do not handle: new ones are added over time.
POST /webhooks/test sends a test event to your subscriptions and reports what each endpoint answered. In Live it sends webhook.ping; in the sandbox it also sends sample, real and simulated business events.