Skip to main content
Use this guide to confirm that a blood draw has taken place. Confirmation records the lab codes (tube barcodes) of the physical kit and triggers the lab order pipeline; result progress is then read from Get Results.
Confirmation is irreversible. Once you confirm a blood draw, no further modifications — including adding panels — can be made to the appointment. Make sure all panels are attached and all details are correct before proceeding.
1

Ensure panels are added

Before confirming, verify that all necessary test panels have been added to the appointment. You cannot add panels after confirmation.Review the Schedule an Appointment guide for instructions on attaching panels.Confirm the following before continuing:
  • All required panels are attached to the appointment.
  • The profile_id and location_id on the appointment are correct.
  • The patient has completed the blood draw and the barcode of every tube is at hand.
2

Confirm the blood draw

Send a POST request to /api/v1/appointments/{id}/confirm with the lab codes from the physical blood draw kit. A venous draw has one code printed on every tube — send it as lab_code. A pharmacy draw has one code per panel — send them as lab_codes, one entry per code with the panel_ids it covers (from the appointment’s panels); each panel becomes its own laboratory requisition under its code.
Each code must be the numeric string printed on the physical tube handed to the patient. Do not substitute a different identifier — an incorrect code will cause the lab order to fail. Every code is validated before anything is written; if one is rejected, nothing is recorded.
A successful request returns 200 OK:
3

Verify appointment status

After confirmation, retrieve the appointment to verify its status has changed to blood_drawn.
Once the appointment shows status: "blood_drawn", the lab order pipeline has been triggered. The appointment status itself stays at blood_drawn from here on; finer-grained downstream progression is exposed via dedicated endpoints: follow each entry in the inline shipments array to Get Shipment for courier in-transit / delivered events, and use Get Results for lab result completion (status: "in_progress""completed").

What happens next

After confirmation, Aniva’s lab order pipeline takes over:
  1. Each lab code is matched to its physical tubes at the lab — every panel’s requisition carries the code on its own tubes.
  2. The panels attached to the appointment determine which tests are run.
  3. When results are ready they’re associated with the patient profile and surface in Get Results — the response’s top-level status field flips from in_progress to completed once every submission has arrived.
No further action is required from your integration after confirmation.

Error handling