Reject a submitted order with a free-text reason and an optional machine-readable reason code. Moves the order SUBMITTED -> REJECTED (terminal) and returns the updated order. Idempotent: re-rejecting a rejected order is a no-op.
Per-field validation errors, using the platform's property/message shape
Free-text rejection reason (always present)
Vendor-neutral category a partner maps its own rejection reason onto; the free-text reason is always present, this code is optional automation. INVALID_ORDER_CODE: an ordered test or panel code is not recognized. INVALID_AOE_ANSWER: a required Ask-on-Entry answer is missing or invalid. INVALID_PROVIDER: the ordering provider NPI is missing, invalid, or not authorized with the lab. INVALID_PATIENT: patient demographics are missing or invalid. INVALID_ACCOUNT: the ordering account/client is not recognized or set up with the lab. DUPLICATE_ORDER: the lab already has this order. TEST_NOT_AVAILABLE: a requested test is not offered for this account or location. VALIDATION_ERROR: the order is malformed or missing a required field. OTHER: none of the above; see the free-text reason.
- Mock serverhttps://api-docs.lobbie.com/_mock/openapi/partner/v2/account/{accountId}/location/{locationId}/lab-order/{labOrderId}/reject
- Productionhttps://api-prod.lobbie.com/lobbie/api/partner/v2/account/{accountId}/location/{locationId}/lab-order/{labOrderId}/reject
curl -i -X POST \
'https://api-docs.lobbie.com/_mock/openapi/partner/v2/account/{accountId}/location/{locationId}/lab-order/9001/reject' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-H 'x-api-key: YOUR_API_KEY_HERE' \
-d '{
"errors": [
{
"message": "must be 10 digits",
"property": "phone"
}
],
"reason": "Ordering provider NPI is not recognized by the lab",
"reasonCode": "INVALID_PROVIDER"
}'Order rejected (or idempotent no-op)
Id of the linked /lab record, so a partner can navigate to the existing lab read view
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.
Lab-assigned order identifier (accession / requisition number); null until the order is accepted
{ "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" }