Event Types

Subscribe to specific events to receive only the notifications your application needs.

Booking Events

EventTriggered When
booking.createdA new booking is created
booking.confirmedBooking is confirmed (auto or manual)
booking.rescheduledBooking date/time is changed
booking.cancelledBooking is cancelled
booking.startedCrew checks in at the service location
booking.completedCrew checks out, service is done
booking.no_showCustomer was not available for service

Customer Events

EventTriggered When
customer.createdNew customer account is created
customer.updatedCustomer profile information changes
customer.deactivatedCustomer account is deactivated

Invoice Events

EventTriggered When
invoice.createdNew invoice is generated
invoice.sentInvoice email is sent to customer
invoice.paidInvoice is fully paid
invoice.overdueInvoice passes its due date unpaid
invoice.voidedInvoice is voided/cancelled

Payment Events

EventTriggered When
payment.succeededPayment is successfully processed
payment.failedPayment attempt fails
payment.refundedA refund is processed

Subscription Events

EventTriggered When
subscription.createdNew recurring subscription starts
subscription.renewedSubscription successfully renews
subscription.pausedSubscription is paused
subscription.resumedSubscription resumes from pause
subscription.cancelledSubscription is cancelled

Using Wildcards

Subscribe to all events in a category using the wildcard:

{
  "events": ["booking.*", "payment.*"]
}

Or subscribe to all events:

{
  "events": ["*"]
}

Event Payload Structure

Every webhook payload follows this structure:

{
  "id": "evt_01HQ3K5M7N8P9R",
  "type": "booking.completed",
  "created_at": "2026-02-26T15:30:00Z",
  "data": {
    // Event-specific data (the full object)
  },
  "previous_data": {
    // Previous state for update events (null for create events)
  }
}

The data field contains the full object at the time of the event. For update events, previous_data contains the state before the change, allowing you to compute diffs.