Zapier Integration

This page documents the API and webhook structure used by the Baza Booking Calendar Zapier integration. It covers authentication, available events, and the exact payload fields sent with each event.

Connect Baza Booking Calendar to Zapier via Webhook

Authentication

Access is tied to your Baza Booking Calendar license key. The same key is used both to verify your plan and to authenticate requests to the subscription endpoints below. The Zapier integration requires a license on the Pro or Elite plan with Zapier sync enabled.

Native subscription endpoints (REST Hook)

For a native Zap trigger experience, Baza Booking Calendar exposes subscribe and unsubscribe endpoints, so a Zap can turn on and off automatically without manually copying a webhook URL.

MethodEndpointPurpose
POST/wp-json/bbc/v1/zapier/subscribeRegisters a subscription when a Zap is turned on
DELETE/wp-json/bbc/v1/zapier/unsubscribe/{id}Removes a subscription when a Zap is turned off
GET/wp-json/bbc/v1/zapier/subscriptionsDebug endpoint, lists active subscriptions

All three endpoints require the license key as a bearer token:

Authorization: Bearer YOUR_LICENSE_KEY

Subscribe requests accept a JSON body specifying where to send events and, optionally, which event to filter on. An empty event value subscribes to all events.

POST /wp-json/bbc/v1/zapier/subscribe
{
  "target_url": "https://hooks.zapier.com/hooks/standard/...",
  "event": "booking.confirmed"
}

The response includes a subscription id, used to unsubscribe later:

{ "id": "sub_123" }

Active subscriptions are stored in the bbc_zapier_subscriptions WordPress option. The legacy single-URL webhook setting (bbc_zapier_url in the plugin’s admin settings) continues to work in parallel, so existing manual Zapier setups are not affected by this addition.

Webhook setup

Baza Booking Calendar pushes booking events to a webhook URL configured in the plugin’s admin settings, under Baza Booking, Settings, Zapier. The webhook fires automatically whenever a booking is created or its status changes.

Available events

EventFires when
booking.createdCustomer submits the booking form
booking.pendingStatus changes to Pending
booking.confirmedPayment confirmed / status changes to Booked
booking.cancelledStatus changes to Cancelled
booking.completedStatus changes to Completed
booking.expiredStatus changes to Expired
google_calendar.disconnectedGoogle Calendar connection is disconnected

Payload structure

Single-service booking payload:

{
  "event": "booking.confirmed",
  "site_url": "https://example.com",
  "timestamp": "2026-08-12T14:00:00+02:00",
  "booking_id": 1234,
  "order_id": "ABC-001",
  "order_status": "booked",
  "order_status_label": "Booked",
  "service": "Studio / Room A",
  "booking_dates": "12.08.2026\n10:00 - 12:00",
  "booking_dates_raw": "2026/08/12/10:00-12:00",
  "booking_price": "150",
  "tax_rate": 20,
  "tax_amount": 25,
  "payment_made": "75",
  "remaining_payment": "75",
  "customer": {
    "name": "Ivan Ivanov",
    "phone": "+380991234567",
    "email": "ivan@example.com"
  },
  "admin_url": "https://example.com/wp-admin/admin.php?page=bbc-bookings&edit=1234",
  "zoom_url": "https://zoom.us/j/123456789",
  "google_meet_url": "https://meet.google.com/abc-defg-hij",
  "custom_fields": {
    "my_custom_field": "value"
  }
}

Cart-mode booking payload, when multiple services are booked in one order, service and booking_dates are replaced by a cart_items array:

{
  "event": "booking.confirmed",
  "site_url": "https://example.com",
  "timestamp": "2026-08-12T14:00:00+02:00",
  "booking_id": 1234,
  "order_id": "ABC-001",
  "order_status": "booked",
  "order_status_label": "Booked",
  "cart_items": [
    {
      "service": "Studio / Room A",
      "booking_dates": "12.08.2026\n10:00 - 11:00",
      "booking_dates_raw": "2026/08/12/10:00-11:00",
      "price": "75.00"
    },
    {
      "service": "Studio / Room B",
      "booking_dates": "12.08.2026\n11:00 - 12:00",
      "booking_dates_raw": "2026/08/12/11:00-12:00",
      "price": "75.00"
    }
  ],
  "booking_price": "150",
  "tax_rate": 20,
  "tax_amount": 25,
  "payment_made": "75",
  "remaining_payment": "75"
}

Field reference

FieldTypeDescription
eventstringEvent name, see events table above
site_urlstringURL of the site the booking was made on
timestampstringISO 8601 timestamp of the event
booking_idintegerInternal booking ID
order_idstringOrder reference ID
order_statusstringMachine-readable status
order_status_labelstringHuman-readable status label
servicestringService name (single-service bookings only)
booking_datesstringFormatted booking date and time (single-service bookings only)
booking_dates_rawstringMachine-readable date/time range
cart_itemsarrayList of booked services (cart-mode bookings only), each with service, booking_dates, booking_dates_raw, price
booking_pricestringTotal order price
tax_ratenumberTax rate percentage
tax_amountnumberTax amount
payment_madestringAmount paid so far
remaining_paymentstringRemaining balance due
customer.namestringCustomer name
customer.phonestringCustomer phone number
customer.emailstringCustomer email
admin_urlstringDirect link to the booking in the WordPress admin
zoom_urlstringZoom meeting link, if Zoom integration is enabled for the service
google_meet_urlstringGoogle Meet link, if generated via Google Calendar sync
custom_fieldsobjectAny custom form fields configured for the booking form

All fields are mappable to any target application field in Zapier, no code required.

Manual setup (Webhooks by Zapier)

Until the native Baza Booking Calendar app is available in the Zapier App Directory, the integration can be set up manually using Zapier’s built-in Webhooks trigger:

  1. Go to zapier.com and click Create, Zap
  2. Choose Webhooks by Zapier as trigger, Catch Hook
  3. Copy the webhook URL (looks like https://hooks.zapier.com/hooks/catch/...)
  4. Paste it in the Webhook URL field in Baza Booking, Settings, Zapier, and save
  5. Click Send test event, Zapier will detect all available fields
  6. Continue setting up your Zap actions (Google Sheets, Slack, CRM, etc.)

Plan requirements

The Zapier integration is available on the Pro and Elite plans of Baza Booking Calendar. It is not available on the free trial or without a valid Pro/Elite license key.

Last Modified: 12.08.2026