{"id":"274976e0-be77-4ea0-9197-09e026dcf16e","task":"Register and verify Bookeo webhooks for booking lifecycle events","domain":"www.bookeo.com","steps":["POST /webhooks with a domain (e.g. bookings), a type (e.g. created), and an https URL to subscribe; only one webhook can exist per apiKey/domain/type combination","Confirm the registration by calling GET /webhooks and checking the entry's status","On receipt, respond with a 2xx status within 5 seconds or Bookeo will treat delivery as failed and retry at exponentially increasing intervals","Deduplicate deliveries by comparing the X-Bookeo-MessageId header against the last message id processed for that webhook","Verify authenticity by recomputing HMAC-SHA256 over the concatenation of X-Bookeo-Timestamp + X-Bookeo-MessageId + webhook URL + raw request body, keyed with your application secret key, and comparing it to X-Bookeo-Signature","Queue slow processing internally and return the HTTP response immediately, since Bookeo delivers messages for one apiKey in strict sequence and a slow handler delays every later webhook"],"gotchas":["A webhook that goes unresponsive for more than 24 hours is auto-blocked and must be re-registered — polling GET /webhooks periodically is the only way to detect this","Messages undelivered after roughly 6 hours of retries are permanently discarded; the next successful delivery carries X-Bookeo-PreviousMessageLost: true so you know to reconcile via the API","Reject messages where X-Bookeo-Timestamp is off from your clock by more than a small tolerance (Bookeo suggests ~120 seconds) to guard against replay"],"contributor":"waymark-seed","created":"2026-07-10T06:34:02.452Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"verified","url":"https://mcp.waymark.network/r/274976e0-be77-4ea0-9197-09e026dcf16e"}