Home Kit Orders
Activate Home Kit Order
Report when the patient collected their sample
POST
/
api
/
v1
/
home-kit-orders
/
{id}
/
activate
curl --request POST \
--url https://anivahealth.com/api/v1/home-kit-orders/d1e2f3a4-5b6c-4d7e-8f9a-0b1c2d3e4f5a/activate \
--header 'x-api-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"activated_at": "2026-08-28T07:30:00Z"
}'
{
"id": "d1e2f3a4-5b6c-4d7e-8f9a-0b1c2d3e4f5a",
"profile_id": "a3f1c2d4-8b7e-4f2a-9c1d-2e3f4a5b6c7d",
"status": "activated",
"lab_code": "7642200101",
"activated_at": "2026-08-28T07:30:00Z",
"delivery_address": {
"name": "Maria Schmidt",
"company_name": "c/o Weber",
"address_line_2": null,
"street": "Friedrichstraße",
"house_number": "123",
"postal_code": "10117",
"city": "Berlin",
"country_code": "DE",
"phone": "+4930123456789",
"email": "maria.schmidt@example.com"
},
"created_at": "2026-08-20T09:45:00Z",
"updated_at": "2026-08-28T07:31:12Z",
"profile": {
"id": "a3f1c2d4-8b7e-4f2a-9c1d-2e3f4a5b6c7d",
"handle": null,
"first_name": "Maria",
"last_name": "Schmidt",
"email": "maria.schmidt@example.com",
"phone": "+4930123456789",
"sex": 2,
"date_of_birth": "1985-03-22",
"height": 168,
"weight": 65,
"language": "de",
"transactional_emails_enabled": true,
"created_at": "2026-08-20T09:14:32Z",
"updated_at": null
},
"panels": [
{
"panel_id": "f1c2d4a3-7b8e-4f2a-9c1d-2e3f4a5b6c7d",
"added_at": "2026-08-20T09:45:00Z"
}
],
"individual_biomarkers": [],
"metadata": { "your_order_ref": "ORD-10482" },
"replaces_home_kit_order_id": null,
"replacement_reason": null,
"results_ready_emails": [],
"shipments": [
{ "id": "K2608211FQ7", "added_at": "2026-08-21T08:00:00Z" },
{ "id": "K260821P3XD", "added_at": "2026-08-21T08:00:00Z" }
]
}
{
"error": "Home kit order is already activated"
}
Report that the patient collected their sample. This is the home-kit counterpart of
Confirm Blood Draw — without a barcode, because the kit’s
code is applied when the kit is packed. You pass only the collection timestamp.
The timestamp matters clinically: it is the collection time the lab report will carry. Send the
patient’s actual collection moment, not the moment your system processed it.
Re-sending the same
activated_at returns 200 with the activated order; a different one returns 409. See Idempotency.
Activation moves the order to activated — a terminal status. An activated order can no longer be
cancelled, and its composition and delivery address are locked. Activation is accepted while the
order is pending or dispatched, as long as it has a lab_code — the patient can be holding a
kit before our record says dispatched, and their real collection time always wins over our
bookkeeping. An order without a lab_code returns 409: without the code, the sample cannot be
matched to the patient at the lab.
Activation also places the laboratory order for the kit’s panel under the order’s lab_code, so
the sample is expected at the lab and results can attach the moment they are reported. This happens
asynchronously after the response — a laboratory problem never fails your request. From here on,
Get Results shows markers as planned until the lab reports
them. A home_kit_order.results.updated webhook tells you when they change.
If the sample reaches the laboratory before you activate the kit, Aniva activates it.
activated_at is the morning of the first tracking event of the return parcel, or the morning the
sample arrived at the laboratory if there is no tracking. A later call with a different
activated_at then returns 409.
Requires the home_kit_orders_manage scope or the narrower home_kit_orders_activate scope.
Request
Path parameters
string
required
Unique identifier (UUID) of the home kit order to activate.
Body parameters
string
required
When the patient collected the sample, as a UTC instant (ISO 8601 with
Z suffix, e.g.
2026-08-28T07:30:00Z). Must not be in the future or more than 30 days in the past.Response
On success, the API returns200 OK with the updated home kit order — status is activated and
activated_at carries the timestamp you sent.
Error responses
| Status | Description |
|---|---|
400 | Validation error — malformed activated_at, a future timestamp, or one more than 30 days old. |
403 | Forbidden — your API key does not have access to this operation, or the home kit order is outside your permission scope. |
404 | Home kit order not found. |
409 | Conflict — already activated with a different collection time, cancelled, or no lab_code yet. |
500 | Internal server error. |
curl --request POST \
--url https://anivahealth.com/api/v1/home-kit-orders/d1e2f3a4-5b6c-4d7e-8f9a-0b1c2d3e4f5a/activate \
--header 'x-api-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"activated_at": "2026-08-28T07:30:00Z"
}'
{
"id": "d1e2f3a4-5b6c-4d7e-8f9a-0b1c2d3e4f5a",
"profile_id": "a3f1c2d4-8b7e-4f2a-9c1d-2e3f4a5b6c7d",
"status": "activated",
"lab_code": "7642200101",
"activated_at": "2026-08-28T07:30:00Z",
"delivery_address": {
"name": "Maria Schmidt",
"company_name": "c/o Weber",
"address_line_2": null,
"street": "Friedrichstraße",
"house_number": "123",
"postal_code": "10117",
"city": "Berlin",
"country_code": "DE",
"phone": "+4930123456789",
"email": "maria.schmidt@example.com"
},
"created_at": "2026-08-20T09:45:00Z",
"updated_at": "2026-08-28T07:31:12Z",
"profile": {
"id": "a3f1c2d4-8b7e-4f2a-9c1d-2e3f4a5b6c7d",
"handle": null,
"first_name": "Maria",
"last_name": "Schmidt",
"email": "maria.schmidt@example.com",
"phone": "+4930123456789",
"sex": 2,
"date_of_birth": "1985-03-22",
"height": 168,
"weight": 65,
"language": "de",
"transactional_emails_enabled": true,
"created_at": "2026-08-20T09:14:32Z",
"updated_at": null
},
"panels": [
{
"panel_id": "f1c2d4a3-7b8e-4f2a-9c1d-2e3f4a5b6c7d",
"added_at": "2026-08-20T09:45:00Z"
}
],
"individual_biomarkers": [],
"metadata": { "your_order_ref": "ORD-10482" },
"replaces_home_kit_order_id": null,
"replacement_reason": null,
"results_ready_emails": [],
"shipments": [
{ "id": "K2608211FQ7", "added_at": "2026-08-21T08:00:00Z" },
{ "id": "K260821P3XD", "added_at": "2026-08-21T08:00:00Z" }
]
}
{
"error": "Home kit order is already activated"
}
⌘I
curl --request POST \
--url https://anivahealth.com/api/v1/home-kit-orders/d1e2f3a4-5b6c-4d7e-8f9a-0b1c2d3e4f5a/activate \
--header 'x-api-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"activated_at": "2026-08-28T07:30:00Z"
}'
{
"id": "d1e2f3a4-5b6c-4d7e-8f9a-0b1c2d3e4f5a",
"profile_id": "a3f1c2d4-8b7e-4f2a-9c1d-2e3f4a5b6c7d",
"status": "activated",
"lab_code": "7642200101",
"activated_at": "2026-08-28T07:30:00Z",
"delivery_address": {
"name": "Maria Schmidt",
"company_name": "c/o Weber",
"address_line_2": null,
"street": "Friedrichstraße",
"house_number": "123",
"postal_code": "10117",
"city": "Berlin",
"country_code": "DE",
"phone": "+4930123456789",
"email": "maria.schmidt@example.com"
},
"created_at": "2026-08-20T09:45:00Z",
"updated_at": "2026-08-28T07:31:12Z",
"profile": {
"id": "a3f1c2d4-8b7e-4f2a-9c1d-2e3f4a5b6c7d",
"handle": null,
"first_name": "Maria",
"last_name": "Schmidt",
"email": "maria.schmidt@example.com",
"phone": "+4930123456789",
"sex": 2,
"date_of_birth": "1985-03-22",
"height": 168,
"weight": 65,
"language": "de",
"transactional_emails_enabled": true,
"created_at": "2026-08-20T09:14:32Z",
"updated_at": null
},
"panels": [
{
"panel_id": "f1c2d4a3-7b8e-4f2a-9c1d-2e3f4a5b6c7d",
"added_at": "2026-08-20T09:45:00Z"
}
],
"individual_biomarkers": [],
"metadata": { "your_order_ref": "ORD-10482" },
"replaces_home_kit_order_id": null,
"replacement_reason": null,
"results_ready_emails": [],
"shipments": [
{ "id": "K2608211FQ7", "added_at": "2026-08-21T08:00:00Z" },
{ "id": "K260821P3XD", "added_at": "2026-08-21T08:00:00Z" }
]
}
{
"error": "Home kit order is already activated"
}