Booking Pro API
Api referenceWebhooks

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).

View on GitHub
Connect your AI:ClaudeChatGPT
POST
/webhooks

Authorization

ApiKeyAuth
AuthorizationBearer <token>

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

Idempotency-Key?string

A unique key you generate per logical create. Retrying with the same key returns the original result instead of creating a duplicate.

Lengthlength <= 255

Request 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"}