Skip to content

Accept a lab order

Request

Acknowledge a submitted order, recording the lab-assigned identifier (thirdPartyLabId) and optionally the ids of already-uploaded requisition PDFs. Moves the order SUBMITTED -> ACCEPTED and returns the updated order. Requisition files are attached by the accept that moves the order. Idempotent: re-accepting with the same thirdPartyLabId is a no-op when its requisitionFileIds are omitted or already on the order; a different thirdPartyLabId, or a requisition file the accepted order does not carry, is a conflict.

Security
PartnerApiKey and PartnerOAuth
Path
labOrderIdinteger, (int64)required

Lab order id

Example:9001
accountIdinteger, (int64)required

Account identifier

locationIdinteger, (int64)required

Location identifier

Bodyapplication/jsonrequired
requisitionFileIdsArray of integers

Ids of requisition PDFs already uploaded via POST /file. They are attached by the accept that moves the order; a repeat accept may name only files the order already carries

Example:
[ 5501 ]
thirdPartyLabIdstring, <= 64 charactersrequired

Lab-assigned order identifier (accession / requisition number), at most 64 characters

Example:"ACC-8837162"
curl -i -X POST \
  'https://api-docs.lobbie.com/_mock/openapi/partner/v2/account/{accountId}/location/{locationId}/lab-order/9001/accept' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: YOUR_API_KEY_HERE' \
  -d '{
    "requisitionFileIds": [
      5501
    ],
    "thirdPartyLabId": "ACC-8837162"
  }'

Responses

Order accepted (or idempotent no-op)

Bodyapplication/json
createdAtstring, (date-time)

Creation timestamp (UTC)

Example:"2025-01-15T14:00:00Z"
idinteger, (int64)

Lab order id

Example:9001
labIdinteger, (int64)

Id of the linked /lab record, so a partner can navigate to the existing lab read view

Example:12345
locationIdinteger, (int64)

Location id

Example:200
orderNumberstring

The account's order reference number

Example:"ORD-100245"
orderingProviderIdinteger, (int64)

Ordering provider (staff) id (resolve via /staff)

Example:412
patientIdinteger, (int64)

Patient id (resolve via /patient)

Example:300
statusstring

Lifecycle status of a lab order, from staff placement through partner fulfilment. The server owns every transition; the partner never sets the status directly. SUBMITTED: placed by staff and awaiting partner pickup. ACCEPTED: the partner acknowledged the order and recorded its thirdPartyLabId. REJECTED: the partner declined the order; terminal, staff correct and re-release as a new order. PARTIALLY_RESULTED: some ordered tests have results, others are still pending. RESULTED: every ordered test has a final result. CORRECTED: a previously delivered result was superseded by a correction. CANCELLED: the order was cancelled before fulfilment.

Enum:"SUBMITTED""ACCEPTED""REJECTED""PARTIALLY_RESULTED""RESULTED""CORRECTED""CANCELLED"
Example:"SUBMITTED"
testsArray of objects(LabOrderTestDTO)

Ordered tests with their Ask-on-Entry answers

thirdPartyLabIdstring

Lab-assigned order identifier (accession / requisition number); null until the order is accepted

Example:"ACC-8837162"
updatedAtstring, (date-time)

Last update timestamp (UTC)

Example:"2025-01-15T14:00:00Z"
Response
{ "createdAt": "2025-01-15T14:00:00Z", "id": 9001, "labId": 12345, "locationId": 200, "orderNumber": "ORD-100245", "orderingProviderId": 412, "patientId": 300, "status": "SUBMITTED", "tests": [ { … } ], "thirdPartyLabId": "ACC-8837162", "updatedAt": "2025-01-15T14:00:00Z" }