Skip to content

Create or update outbound shipment tracking for a diagnostic order

POST
/v1/diagnostic_orders/{id}/shipment_tracking
curl --request POST \
--url 'http://api.probatix.localhost/v1/diagnostic_orders/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/shipment_tracking?XDEBUG_SESSION=PHPSTORM' \
--header 'Content-Type: application/json' \
--header 'X-API-TOKEN: <X-API-TOKEN>' \
--header 'accept-language: de' \
--data '{ "provider": "DHL", "trackingCode": "TRACK-123456", "url": "https://www.dhl.de/en/privatkunden/dhl-sendungsverfolgung.html?piececode=TRACK-123456", "shipmentStatus": "confirmed" }'

Creates or updates shipment tracking for the FulfillmentCenter -> Customer shipment of the DiagnosticOrder.

id
required
string format: uuid

ShipmentTrackingInput identifier

accept-language
string
Allowed values: de en fr

Language for Errors and Translatable properties

Example
de
XDEBUG_SESSION
string
default: PHPSTORM

Xdebug session for debugging

Example
?XDEBUG_SESSION=PHPSTORM

The new ShipmentTrackingInput resource

object
id
string format: uuid
provider
required

Shipment provider responsible for the parcel.

string
Allowed values: DHL Swiss Post OTHER
Example
DHL
trackingCode

Optional carrier tracking code for the shipment.

string | null
<= 255 characters
Example
TRACK-123456
url

Optional tracking URL. If omitted, the system generates one for supported providers when a tracking code is provided.

More information

string format: url
Example
https://www.dhl.de/en/privatkunden/dhl-sendungsverfolgung.html?piececode=TRACK-123456
shipmentStatus

Optional shipment status to expose together with the tracking data.

string | null
Allowed values: confirmed in_transit out_for_delivery delivered failure undeliverable returned_to_sender available_for_collection
Example
in_transit

ShipmentTrackingInput resource created

object
id
required
string format: uuid
diagnosticTests

IRIs of the diagnostic tests that belong to this order.

Array<string>
createdAt
required

Timestamp when the order was created.

string format: date-time
shippedAt

Timestamp when the outbound shipment was handed over for transportation.

string | null format: date-time
shipmentTracking
Any of:
object
provider
required
string
Allowed values: DHL Swiss Post OTHER
createdAt
required

Timestamp when the shipment was created.

string format: date-time
updatedAt
required

Timestamp when the shipment was last updated.

string format: date-time
trackingCode
string | null
url
string format: url
shipmentStatus

Normalized shipment status for informational purposes only.

string | null
Allowed values: confirmed in_transit out_for_delivery delivered failure undeliverable returned_to_sender available_for_collection
providerStatus

Shipment status from the provider please note some Providers are not 100% reliable and will occasionally deliver shipments without status updates.

string | null
shippingAddress
Any of:
object
address1
required
string
address2
string | null
zip
required
string
city
required
string
countryCode
string
default: DE
firstName
required
string
lastName
required
string
id
string format: uuid
phone
string | null
company
string | null
name
string | null
metadata

Optional partner-defined metadata. Up to 10 entries are supported and values must be JSON primitive values (string, number, or boolean).

Array<string | null> | null
Example
{
"diagnosticTests": [
"/v1/diagnostic_tests/00112233-4455-6677-8899-aabbccddeeff"
],
"shippedAt": "2026-05-04T09:15:00+00:00",
"shipmentTracking": {
"provider": "DHL",
"trackingCode": "123",
"url": "https://www.dhl.de/en/privatkunden/dhl-sendungsverfolgung.html?piececode=123",
"shipmentStatus": "confirmed",
"providerStatus": {
"terminalStatus": true,
"name": "DELIVERED",
"value": "delivered"
}
},
"shippingAddress": {
"address1": "Bismarckstraße 10-12",
"address2": "6. OG",
"zip": "10625",
"city": "Berlin",
"countryCode": "DE",
"firstName": "Jane",
"lastName": "Doe",
"phone": "030 56838352",
"company": "Probatix Health GmbH",
"name": "Probatix Health GmbH"
},
"metadata": {
"yourReference1": "abc",
"yourReference2": 123,
"yourFlag1": true
}
}

Invalid input

A representation of common errors.

object
@context
One of:
string
@id
required
string
@type
required
string
title

A short, human-readable summary of the problem.

string | null
detail

A human-readable explanation specific to this occurrence of the problem.

string | null
status
integer | null
default: 400
instance

A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.

string | null
type

A URI reference that identifies the problem type

string
description
string | null
Example
{
"@context": {
"hydra": "http://www.w3.org/ns/hydra/core#"
},
"status": 400
}

Unauthorized

A representation of common errors.

object
@context
One of:
string
@id
required
string
@type
required
string
title

A short, human-readable summary of the problem.

string | null
detail

A human-readable explanation specific to this occurrence of the problem.

string | null
status
integer | null
default: 400
instance

A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.

string | null
type

A URI reference that identifies the problem type

string
description
string | null
Example
{
"@context": {
"hydra": "http://www.w3.org/ns/hydra/core#"
},
"status": 400
}

Forbidden

A representation of common errors.

object
@context
One of:
string
@id
required
string
@type
required
string
title

A short, human-readable summary of the problem.

string | null
detail

A human-readable explanation specific to this occurrence of the problem.

string | null
status
integer | null
default: 400
instance

A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.

string | null
type

A URI reference that identifies the problem type

string
description
string | null
Example
{
"@context": {
"hydra": "http://www.w3.org/ns/hydra/core#"
},
"status": 400
}

An error occurred

Unprocessable entity

object
@context
One of:
string
@id
required
string
@type
required
string
status
integer
default: 422
violations
Array<object>
object
propertyPath
required

The property path of the violation

string
message
required

The message associated with the violation

string
code

The code of the violation

string
hint

An extra hint to understand the violation

string
payload

The serialized payload of the violation

object
key
additional properties
any
detail
string
description
string
type
string
title
string | null
instance
string | null
Example
{
"@context": {
"hydra": "http://www.w3.org/ns/hydra/core#"
},
"status": 422
}