Concepts

Webhooks

Seshn sends webhook events when bookings, payments, and other resources change. Use webhooks to trigger notifications, sync calendars, or update your own systems.

Events

Every state change fires an event:

booking.createdbooking.confirmedbooking.cancelledbooking.completedbooking.no_showpayment.succeededpayment.failedwaitlist.promoted

HMAC verification

Every webhook includes an HMAC-SHA256 signature in the X-Webhook-Signature header. Verify it to ensure the payload came from Seshn.

verify.ts
1import crypto from 'crypto';
2
3function verify(payload: string, signature: string, secret: string) {
4 const expected = crypto
5 .createHmac('sha256', secret)
6 .update(payload)
7 .digest('hex');
8 return crypto.timingSafeEqual(
9 Buffer.from(signature),
10 Buffer.from(expected)
11 );
12}

Retries

Failed deliveries (non-2xx response) are retried with exponential backoff — up to 5 attempts over ~30 minutes. View delivery logs and retry status in the dashboard.