Skip to main content
This page shows the exact payload your endpoint receives for each of the 12 webhook events. Every field is described once in the field reference at the bottom. For what each event means and how to subscribe, see Webhooks and Register Webhook.

Bill events

bill.created

Sent when a new bill is created.

bill.completed

Sent when every report on the bill is finished and the bill moves to completed (or delivered).

bill.deleted

Sent when a bill is deleted. The payload carries identifiers only — no billData, no reportURL, no test list.

Report events

report.completed

Sent each time an individual test on the bill is marked complete, while the bill as a whole is still unfinished.

CRM events

All eight CRM events share the same shape.

lead.created

Sent when a lead is created in the CRM. This is the only CRM event where phase is lead.

booking.created

Sent when a booking is created directly, or when an existing lead is converted into a booking. In the conversion case leadID is unchanged and phase flips to booking.

Booking lifecycle events

The six events below track a home-collection booking from assignment through completion or cancellation. The body is identical in every case — only eventType differs.
booking.phlebotomist_sample_submitted also auto-creates the bill for that booking, so a bill.created delivery follows it, then report.completed and bill.completed for the same patient.

Field reference

Envelope

Present on every event.

Bill and report events

Patient data

bill.completed only. Every key below is always present; a detail the lab never recorded is sent as an empty string, never null or omitted. Values are sent exactly as the lab stored them, so treat them as free text unless noted.
age and date_of_birth are recorded independently. A patient can have an age with no date of birth, and the two are not recalculated against each other — use whichever your system needs, and prefer date_of_birth when both are present.
patientData carries personal and health information, including government identity numbers when the lab has recorded them. Store only the fields you need, and keep them encrypted in transit and at rest.

CRM events