Webhooks & Zapier

8 min read

Send real-time booking data to external services via webhooks. Integrate with Zapier, custom APIs, CRMs, and any system that accepts HTTP callbacks.

Overview

Webhooks allow WP Booking Pro to push real-time event data to any external URL whenever something happens in the system. This enables powerful automations without polling the API. Key features include:

  • Multiple webhook endpoints with per-endpoint event selection
  • Six event types covering the full booking lifecycle
  • Auto-generated secret key for HMAC-SHA256 signature verification
  • Structured JSON payloads with booking data
  • Automatic retries with exponential backoff (3 attempts)
  • Delivery log with status codes, timestamps, and response bodies
  • Native Zapier integration via webhook catch triggers

Step 1: Add a Webhook Endpoint

Navigate to WordPress Admin → Bookings → Settings → Webhooks and click “Add Webhook”.

1

Enter the webhook URL

Provide the HTTPS endpoint that will receive the POST requests. For Zapier, use the “Webhooks by Zapier” catch URL.

2

Give it a name

Add a descriptive name (e.g., “CRM Sync”, “Zapier - New Bookings”, “Slack Notifications”) to identify this endpoint in the list.

3

Select events

Check which events should trigger this webhook. You can select one or more from the list below.

Step 2: Available Events

The following events are available for webhook triggers:

booking.created

Fired when a new booking is submitted (before payment confirmation if applicable).

booking.confirmed

Fired when a booking status changes to confirmed (after successful payment or manual confirmation).

booking.cancelled

Fired when a booking is cancelled by the customer or admin.

booking.rescheduled

Fired when a booking date or time is changed. Includes both old and new date/time in the payload.

booking.completed

Fired when a booking is marked as completed (after the appointment has occurred).

payment.completed

Fired when a payment is successfully processed. Includes payment amount, method, and transaction ID.

Step 3: Signature Verification

When you save a webhook, the system auto-generates a secret key. This key is used to create an HMAC-SHA256 signature included in every webhook request header, allowing your endpoint to verify the request is authentic.

The signature is sent in the following HTTP header:

X-WPBooking-Signature: sha256=HMAC_SHA256(secret_key, request_body)
Tip: To verify, compute the HMAC-SHA256 hash of the raw request body using your secret key, then compare it to the value in the X-WPBooking-Signature header. If they match, the request is authentic.

Step 4: Payload Format

All webhook requests are sent as HTTP POST with a JSON body. Here is an example payload:

{
  "event": "booking.confirmed",
  "booking_id": 1234,
  "timestamp": "2026-02-22T10:30:00Z",
  "data": {
    "customer_name": "John Smith",
    "customer_email": "john@example.com",
    "service_name": "Consultation",
    "staff_name": "Dr. Jane Doe",
    "booking_date": "2026-03-01",
    "booking_time": "14:00",
    "duration": 60,
    "price": 150.00,
    "currency": "USD",
    "status": "confirmed"
  }
}

Step 5: Retry Logic

If your endpoint returns an error (HTTP status 4xx or 5xx) or times out (30 second limit), the system will retry delivery:

1

First retry: 1 minute after failure

The first retry is sent 60 seconds after the initial failed attempt.

2

Second retry: 5 minutes after first retry

If the first retry also fails, a second attempt is made 5 minutes later.

3

Third retry: 30 minutes after second retry

The final attempt is made 30 minutes after the second retry. If this also fails, the delivery is marked as failed in the log.

If a webhook endpoint fails consistently (more than 10 consecutive failures), it will be automatically disabled. You will see a warning in the admin dashboard and can re-enable it after fixing the endpoint.

Step 6: Webhook Delivery Log

Every webhook delivery is recorded. Go to Settings → Webhooks and click on a webhook endpoint to see its delivery log:

  • Timestamp of each delivery attempt
  • Event type that triggered the webhook
  • HTTP status code returned by your endpoint
  • Response body (first 500 characters) for debugging
  • Number of retry attempts for failed deliveries
  • Option to manually resend a failed delivery

Zapier Integration Guide

Zapier makes it easy to connect WP Booking Pro to 5,000+ apps without writing code:

1

Create a new Zap

In Zapier, create a new Zap and choose “Webhooks by Zapier” as the trigger. Select “Catch Hook” as the event.

2

Copy the Zapier webhook URL

Zapier will generate a unique webhook URL. Copy it.

3

Add it as a webhook in WP Booking Pro

Paste the Zapier URL as a new webhook endpoint in Settings → Webhooks, select your events, and save.

4

Test and configure actions

Create a test booking to send sample data to Zapier. Then configure your Zap actions (e.g., add to Google Sheets, create a HubSpot contact, send a Slack message).