Skip to main content

Webhook events

Use the webhook event type strings in eventTypes when creating or updating a subscription. These are the same lowercase dotted values delivered in webhook payloads (for example patient.created, booking.updated).

Note: All webhook events are non-overlapping, so subscribing to booking.updated does not mean that you will be alerted when booking.patientJourney.arrived happens. You need to specifically subscribe to every event you want to receive.

Payload shape

Each delivered webhook is a JSON object with:

FieldDescription
subscriptionIdThe webhook subscription that received this event
eventIdUnique ID for this delivery attempt
eventTypeLowercase dotted event type string (matches your subscription)
identifiersString IDs for related records (see event pages below)

Optional identifier keys are omitted from the payload when they do not apply (they are not sent as null).

Example:

{
"subscriptionId": "692597070fe21cfa5e6a010f",
"eventId": "692597070fe21cfa5e6a010a",
"eventType": "booking.created",
"identifiers": {
"bookingId": "507f1f77bcf86cd799439011",
"patientId": "507f191e810c19729de860ea",
"doctorId": "507f1f77bcf86cd799439012"
}
}

In the event reference pages, required identifiers are always present. Optional identifiers appear only when the related record exists (for example patientId on a booking without a patient is omitted).

Event groups

GroupDescription
AvailabilityCalendar slots, recurring patterns, and blockers
BookingAppointments and patient journey stages
InvoiceInvoice lifecycle, line items, payments, and integrations
LabLab requests and results
LetterLetters and review status
PatientPatient records and nested sub-resources
Patient documentFiles and folders in the document library
PrescriptionPrescriptions and e-prescriptions
ProductProduct labels
QuestionnaireQuestionnaire responses

For subscription setup and signature verification, see the Webhooks guide.