Skip to main content

Overview

Webhooks allow your application to receive real-time notifications when data changes in BookingShake. Instead of polling the API for updates, BookingShake automatically sends HTTP POST requests to your specified endpoint whenever an account, contact, or payment is created, updated, or deleted - or when an invoice is issued. Why use webhooks?
  • Real-time updates: Receive notifications instantly when data changes
  • Reduced API usage: No need to continuously poll for changes
  • Efficient: Only get notified about events you care about
  • Scalable: Build reactive integrations that sync data automatically
Common use cases:
  • Sync contacts and accounts to external CRM systems (Salesforce, HubSpot, etc.)
  • Sync invoices and payments to your accounting software or ERP
  • Trigger automated workflows when new contacts are created
  • Update analytics dashboards in real-time
  • Maintain data consistency across multiple platforms

Quick Start

1

Access Webhook Settings

In your BookingShake dashboard, go to Settings > Integrations and scroll to the Webhooks section.
2

Create a Webhook

Click New Webhook and configure:
  • Name: A descriptive name for your webhook (e.g., “CRM Sync”)
  • URL: Your HTTPS endpoint (e.g., https://api.yourdomain.com/webhooks/bookingshake)
  • Events: Select which events to receive (see available events below)
3

Save and Copy Secret

After saving, copy the webhook secret. You’ll need it to verify webhook signatures for security.
4

Test Your Webhook

Create or update a contact or account to trigger a test webhook delivery.

Available Events

BookingShake supports sixteen webhook events:
Booking, quote, invoice and payment events are currently in beta: their payload structure may still evolve before general availability.
Each resource has a dedicated page with payload examples and field reference:

Booking Events

Bookings (dossiers): created, updated, deleted - full payload with nested events

Quote Events

Issued quotes: created, updated (sent/validated/signed), deleted

Account Events

Companies: created, updated, deleted

Contact Events

People: created, updated, deleted

Invoice Events

Full invoice payload: amounts, lines, frozen seller/buyer blocks, e-invoicing fields

Payment Events

Lightweight payment payload with invoice and booking correlation keys
You can subscribe to multiple events in a single webhook. Select only the events you need to reduce unnecessary traffic.

Webhook Payload Structure

All webhooks follow this consistent structure:

Payload Fields

HTTP Headers

Each webhook request includes these headers:

Header Details

Custom Fields

Account and contact webhooks include custom fields configured for your venue (invoice and payment payloads do not expose custom fields). Custom fields are prefixed with custom_ followed by a UUID:
Custom field values can be strings, numbers, arrays, or objects depending on your field configuration.

Venue vs Venues Group Webhooks

When creating a webhook, you can choose the scope: Venue-level webhooks: Receive events only for a specific venue
  • Use when you want separate webhook endpoints per venue
  • Useful for venue-specific integrations
Venues group webhooks: Receive events for all venues in a group
  • Use when you want a single endpoint for multiple venues
  • More efficient for managing multi-venue organizations
  • The venue_id field identifies which venue triggered the event

Next Steps

Security & Verification

Learn how to verify webhook signatures and implement security best practices

Error Handling

Understand error codes and how to handle failures

API Reference

Explore the BookingShake API for additional functionality

Support

Contact our support team for assistance

Rate Limits and Delivery

Delivery timeout: Your endpoint must respond within 5 seconds with a 200-299 status code.Retry policy: Failed deliveries are automatically retried up to 10 times with exponential backoff.Status monitoring: Check your webhook status in the dashboard to track delivery success and failures.