Skip to main content

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

1
Ordered

A kit is created against a customer, either via the API or the white-label registration flow.

2
Shipped

The kit ships to the customer. Tracking updates flow through as events.

3
Registered

The customer registers the kit, linking the physical sample to their account.

4
Sample received

The lab receives the returned sample and begins processing.

5
Report ready

Results are processed and a report is generated, ready to be released.

6
Released

The report is released to the customer and available through the API and dashboard.

note

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);
}