---
agentTools:
  projectIndex: https://docs.oway.io/llms.txt
---

# Live shipment position and a human-readable in-transit status

<br />

The shipment tracking endpoints now return a richer, more accurate live location, plus a ready-to-display status sentence.

## Human-readable status sentence

The embedded `location` object on the tracking response now includes a `statusDescription` field: a single, display-ready sentence that combines the shipment's phase, approximate current location, and ETA.

```text
IN TRANSIT DIRECT TO RECEIVER - Currently in Flagstaff, AZ - 2 Days 4 Hrs Until Destination
```

You no longer need to assemble this string yourself from the individual fields. It is phase-aware (pre-pickup, in transit, out for delivery) and degrades gracefully: when the location can't be confidently resolved it drops the "Currently in" clause, and when a shipment is significantly delayed it shows the delay message instead of the countdown.

`statusDescription` is **omitted from the response when no meaningful status line can be produced**, so it is purely additive: existing integrations are unaffected.

## More accurate live position

The `center` position estimate is now route-interpolated against live signals, so the reported point and its `uncertaintyRadiusKm` track the shipment more closely between events. Delivery-arrival detection was also improved, so `lastEventTimestamp`, `isSignificantlyDelayed`, and `delayMessage` reflect real arrival timing rather than estimates alone.

## How to get it

Request the `location` section on either tracking endpoint:

```text
GET /v1/shipper/shipment/{orderNumber}/tracking?include=location
```

Example response with the `location` section embedded:

```json
{
  "id": "507f1f77bcf86cd799439011",
  "orderNumber": "ZKYQ5",
  "orderStatus": "PICKED_UP",
  "actualPickupDate": "2026-02-19T10:30:00Z",
  "actualDeliveryDate": null,
  "estimatedPickupDate": "2026-02-19T09:00:00Z",
  "estimatedDeliveryDate": "2026-02-22T12:00:00Z",
  "location": {
    "center": { "latitude": 35.19, "longitude": -111.65 },
    "uncertaintyRadiusKm": 4.2,
    "lastEventTimestamp": "2026-02-20T17:33:15Z",
    "isSignificantlyDelayed": false,
    "statusDescription": "IN TRANSIT DIRECT TO RECEIVER - Currently in Flagstaff, AZ - 2 Days 4 Hrs Until Destination"
  }
}
```

The `location` object is **omitted entirely** unless you pass `include=location`; without it, the response is the same `Tracking` object minus that key.

No changes are required to your integration to keep working. To surface the new status, read `location.statusDescription` and fall back to the structured fields when it is absent.