Sample & kit lifecycle
Every kit follows a predictable sequence of events as it moves from your order, to the customer's door, to the lab, and back as a report. Each transition emits a webhook so your application can react in real time.
Lifecycle stages
A kit is created against a customer, either via the API or the white-label registration flow.
The kit ships to the customer. Tracking updates flow through as events.
The customer registers the kit, linking the physical sample to their account.
The lab receives the returned sample and begins processing.
Results are processed and a report is generated, ready to be released.
The report is released to the customer and available through the API and dashboard.
A sample can also be rejected at intake. See Sample rejection for the reasons a sample fails validation and how the lifecycle handles it.
Reacting to status changes
Rather than polling, subscribe to webhook events and act on each transition. For
example, release a report automatically once its status reaches report_ready:
if (kit.status === "report_ready") {
await siphox.reports.release(kit.report);
}