Register a webhook endpoint
Register an https URL to receive events. Booking Pro POSTs a JSON body for each subscribed event, signed with HMAC-SHA256 in the `X-BookingPro-Signature` header (`sha256=<hex>`) using the `secret` returned here. Verify every delivery by recomputing the HMAC of the raw request body with that secret. Each delivery also carries a unique `X-BookingPro-Event-Id` you can use to deduplicate. The `secret` is shown ONLY in this response. Subscribe to specific event types, or `"*"` for all. Send an `Idempotency-Key` so a retried create does not register twice. The body of every delivery is a `WebhookEvent`; payment events carry `amount_cents`, `tip_cents` and their `currency` (uppercase ISO 4217).
Authorization
ApiKeyAuth Send your API key as a bearer token: Authorization: Bearer bp_sk_live_.... Mint and revoke keys in your dashboard under Settings -> Developers.
In: header
Header Parameters
A unique key you generate per logical create. Retrying with the same key returns the original result instead of creating a duplicate.
length <= 255Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/webhooks" \ -H "Content-Type: application/json" \ -d '{ "url": "http://example.com", "event_types": [ "booking.created" ] }'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "url": "http://example.com", "event_types": [ "string" ], "description": "string", "active": true, "all_locations": true, "location_ids": [ "7ceda13f-d067-415e-902d-9f8e578b32ab" ], "created_at": "2019-08-24T14:15:22Z", "last_success_at": "2019-08-24T14:15:22Z", "last_error": "string", "last_error_at": "2019-08-24T14:15:22Z", "secret": "string"}