Skip to main content
Use this guide to confirm that a blood draw has taken place. Confirmation records the physical kit barcode and triggers the lab order pipeline, which processes results and eventually moves the appointment to done status.
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 kit barcode is available.
2

Confirm the blood draw

Send a POST request to /api/v1/appointments/{id}/confirm with the numeric barcode from the physical blood draw kit.
The barcode must be the numeric string printed on the physical blood draw kit provided to the patient. Do not substitute a different identifier — an incorrect barcode will cause the lab order to fail.
curl --request POST \
  --url https://anivahealth.com/api/v1/appointments/c9d4e827-3b6f-4a1c-8d2e-5f0b9c7e3a12/confirm \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: YOUR_API_KEY' \
  --data '{
    "barcode": "1234567890"
  }'
A successful request returns 200 OK:
{
  "success": true
}
3

Verify appointment status

After confirmation, retrieve the appointment to verify its status has changed to blood_drawn.
curl --request GET \
  --url https://anivahealth.com/api/v1/appointments/c9d4e827-3b6f-4a1c-8d2e-5f0b9c7e3a12 \
  --header 'x-api-key: YOUR_API_KEY'
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. The kit barcode is matched to the physical sample at the lab.
  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

StatusCauseResolution
400 Bad RequestThe barcode is missing or contains non-numeric characters.Check that you are passing the exact numeric barcode from the physical kit.
403 ForbiddenYour API key does not have access to this operation.Contact Aniva to confirm your API key permissions.
404 Not FoundThe appointment ID does not exist or does not belong to your account.Verify the appointment ID is correct.