Creating a Subscription #
Add an endpoint under Settings → Webhooks, or create one through the API at /api/v1/webhooks. Provide an HTTPS URL and select the events you want. A signing secret is generated at creation and shown once.
Available Events #
booking.createdbooking.rescheduledbooking.cancelledbooking.completedbooking.no_showpayment.succeededandpayment.refunded
Payload #
{
"id": "evt_01J9X2",
"type": "booking.created",
"created_at": "2026-09-02T07:14:22Z",
"data": {
"booking_id": "bkg_7ac91",
"event_type_id": "evt_8f21c",
"start": "2026-09-07T09:30:00+05:30",
"end": "2026-09-07T10:00:00+05:30",
"host": { "id": "usr_22a", "email": "[email protected]" },
"invitee": { "name": "Anil Kumar", "email": "[email protected]" },
"answers": { "company": "Acme Ltd" },
"tracking": { "utm_source": "newsletter" }
}
}
Delivery and Retries #
Respond with a 2xx status within ten seconds. Anything else is treated as a failure and retried with exponential backoff over roughly twenty-four hours. Do your real work asynchronously and acknowledge quickly.
Ordering and Duplicates #
Delivery is at-least-once and order is not guaranteed, so a retry can arrive after a later event. Deduplicate on the event id and use created_at to discard payloads older than the state you already hold.
Inspecting Deliveries #
Each endpoint has a delivery log listing recent attempts with status codes and response bodies, plus a manual replay action that is invaluable while developing.