A single tracking event. Requires type and dateTime. At least one of shipmentEvent or readings must be present.
readings
object
Conditional
Position and/or sensor readings, with its own dateTime. At least one of shipmentEvent or readings must be present.
assetType
string
No
Type of tracked unit: TRUCK, TRAILER, or OTHER. Defaults to TRAILER.
extensions
object
No
Reserved for carrier-specific extension fields.
Objects
Field references for the nested objects under truckload. Timestamps are ISO 8601 date-times (for example 2026-06-01T08:30:00Z) and must not be more than 5 minutes in the future.
The identifiers object uses named keys, not a polymorphic typed array. At least one of billOfLadingNumber or orderNumber is required; each value is a string with a maximum length of 256 characters.
Category
Key
Description
Shipment
billOfLadingNumber
The shipment's bill of lading (BOL) number.
Shipment
orderNumber
The shipment's order number.
Additional identifier keys are accepted and stored, but only billOfLadingNumber and orderNumber currently resolve the shipment. Leading and trailing whitespace on identifier values is trimmed before matching.
Stop coupling
Stop-coupled events reference a stop through the shipmentEvent object (not identifiers), using any of stopReferenceId, stopId, or stopNumber. All three are optional. When more than one is present, they are resolved in the priority order stopReferenceId > stopId > stopNumber.
FTL event types
The endpoint accepts project44's standard shipment event types plus the truckload terminal events ARRIVED_AT_TERMINAL and DEPARTED_TERMINAL. The complete list is in the reference documentation. Other values are accepted and stored but do not change the shipment's status; only the events below produce a status milestone:
Event type
Description
ARRIVAL_AT_STOP
Vehicle has arrived at the stop.
DEPARTURE_FROM_STOP
Vehicle has departed from the stop.
LOAD_ONTO_VEHICLE
Freight is being loaded onto the vehicle.
UNLOAD_FROM_VEHICLE
Freight is being unloaded from the vehicle.
DELIVERY
Freight has been delivered.
GATE_IN
Unit has entered the gate/facility.
GATE_OUT
Unit has exited the gate/facility.
DISPATCH
Vehicle has been dispatched.
ARRIVED_AT_TERMINAL
Unit has arrived at a terminal.
DEPARTED_TERMINAL
Unit has departed a terminal.
Events that do not map to a milestone (for example PICKED_UP, OUT_FOR_DELIVERY) are accepted with 202 and stored, but do not change the shipment's status. A position update flows whenever readings.position is present, regardless of the event type.
Payload limits
Entity
Limit
Total payload
1 MB
identifiers keys
250
Identifier value length
256 characters
readings.sensor.zones[] items
5
readings.sensor.tirePressure[] items
22
Error response codes
If there was a problem with your request, you will receive one of the following HTTP status codes:
Status code
Meaning
400 Bad Request
Synchronous schema validation failed. The response body lists each violation. The event was not accepted.
401 Unauthorized
Authentication credentials are missing or invalid.
403 Forbidden
Your credentials are not authorized to push for this tenant.
404 Not Found
The requested resource does not exist.
413 Content Too Large
Payload exceeds the 1 MB size limit.
No 5xx status is surfaced externally.
Error response body
Validation errors return the standard project44 ApiError envelope. errors[] may carry more than one entry (for example, an empty identifiers object returns three). errorMessage and source are returned null; supportReferenceId is a reference id to quote when contacting project44 support.
JSON
{"httpStatusCode":400,"httpMessage":"Bad Request","errorMessage":null,"errors":[{"severity":"ERROR","message":"$.truckload.readings.position: required property 'latitude' not found","diagnostic":"MISSING_REQUIRED_FIELD at $.truckload.readings.position","source":null}],"supportReferenceId":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}
Error Response Field
Description
httpStatusCode
The value of the HTTP status code.
httpMessage
A brief description of the HTTP status code.
errorMessage
A detailed description of the error. Returned null for schema-validation errors.
errors
An array containing one entry per violation.
errors.severity
The severity of the message. Possible values: ERROR, WARNING, INFO.
errors.message
The JSON path of the offending field plus the reason.
errors.diagnostic
A machine-readable diagnostic code and the JSON path (for example MISSING_REQUIRED_FIELD at $.truckload.identifiers).
errors.source
The originator of the error. Returned null for schema-validation errors.
supportReferenceId
A reference identifier to quote when contacting project44 support.