< 1 min read
Webhooks deliver booking events to your own systems — pipe bookings into your CRM, an analytics tool, a Zapier hook, or a custom service.
Events #
booking.createdbooking.updatedbooking.cancelledbooking.paid(when WooCommerce order completes)
Configure #
WP Admin → Settings → Automation (Webhooks):
- Enable webhooks toggle.
- Endpoint URL (your receiver).
- Per-event toggle.
- Test delivery button.
Per-provider webhooks #
Providers can also configure their own endpoint via Provider Dashboard → Settings → Webhooks. Per-provider deliveries fire alongside the site-wide endpoint.
Delivery semantics #
- Async — events queue and dispatch via cron, not blocking the user request.
- Idempotency — 300 s dedup window, 1200 s TTL. Sending the same event twice within the window returns the same idempotency key.
- Retries — exponential backoff: 60 s base, 6 h max. Up to 5 attempts per event.
- Signing — payload includes an HMAC signature header so you can verify origin.
Payload shape #
{
"event": "booking.created",
"booking_id": 1234,
"status": "pending",
"service": { "id": 9, "title": "..." },
"provider_id": 7,
"customer": { "id": 18, "email": "..." },
"starts_at": "2026-05-10T14:00:00Z",
"ends_at": "2026-05-10T15:00:00Z"
}
Observability #
Last test result, last failure timestamp, suggested next action stored per endpoint and surfaced in Settings → Webhooks. Failed deliveries log to the Notification Log.