Skip to main content

How NowBookIt webhooks work

NowBookIt pushes events to your system when things happen — a booking is created, updated, or a gift card is redeemed. You register a callback URL for each event type, and NowBookIt will POST a JSON payload to that URL whenever the event fires. This eliminates the need to poll the API for changes and keeps your system in sync in real time.
These are outbound webhooks — NowBookIt calls your endpoint. If you need to push events to NowBookIt, see Partner Inbound Webhooks.

Supported events

EventTrigger
BOOKING_CREATEDA new booking is created at the venue
BOOKING_UPDATEDAn existing booking is modified (time, pax, status, etc.)
GIFTCARDS_CREATEDA new gift card is issued
GIFTCARDS_UPDATEDA gift card record is modified
GIFTCARDS_CANCELLEDA gift card is cancelled
GIFTCARDS_REDEEMEDA gift card is redeemed

Payload structure

All webhook payloads share the same envelope structure. The data object varies by event category.

Booking events (BOOKING_CREATED, BOOKING_UPDATED)

{
  "eventType": "BOOKING_CREATED",
  "data": {
    "bookingId": "bk_abc123",
    "locationId": "loc_xyz789"
  }
}
After receiving a booking event, use the bookingId to fetch the full booking details from GET /Bookings/.

Gift card events (GIFTCARDS_*)

{
  "eventType": "GIFTCARDS_REDEEMED",
  "data": {
    "cardNumber": "GC-12345",
    "locationId": "loc_xyz789"
  }
}
After receiving a gift card event, use the cardNumber to fetch full details from GET /GiftCards/.

Webhook security

NowBookIt does not currently sign outbound webhook payloads with an HMAC header. To secure your webhook endpoint:
  • Allowlist NowBookIt IP addresses — contact partners@nowbookit.com for the current IP range
  • Validate the payload — always re-fetch the resource using the ID in the payload rather than trusting payload data directly
  • Use HTTPS — your callback URL must be HTTPS

Retry behaviour

If your endpoint returns a non-2xx status code, NowBookIt will retry delivery. Ensure your endpoint:
  1. Returns 200 promptly (ideally within 5 seconds)
  2. Processes the event asynchronously if the work takes longer
  3. Is idempotent — the same event may be delivered more than once

Managing webhooks

Use the following endpoints to manage your webhook subscriptions:

List Webhooks

View all active webhook subscriptions for your location.

Create Webhook

Subscribe to a new event type with a callback URL.

Get Webhook

Retrieve a specific webhook subscription by event type.

Update Webhook

Change the callback URL for an existing subscription.

Delete Webhook

Remove a webhook subscription.