Improved

Transit time on quotes + structured pallet dimensions

The Shipper API response surface picks up two upgrades this release.

✨ New: transit time on quote responses

POST /v1/shipper/quote and GET /v1/shipper/quote/{quoteId} now include:

  • transitDays (integer, nullable) — business days to deliver after pickup. Pickup day is excluded; weekends are not counted; a same-day pickup and delivery returns 0.
  • estimatedDeliveryDate (string, ISO-8601 UTC, nullable) — estimated delivery date and time.

Both fields may be null when an ETA cannot be computed (for example, when coverage is unavailable).

{
  "id": "507f1f77bcf86cd799439013",
  "quotedPriceInCents": 76552,
  "quoteExpirationTime": "2026-04-19T18:30:00Z",
  "transitDays": 2,
  "estimatedDeliveryDate": "2026-04-21T22:30:00Z"
}

🔄 Improved: structured dimensions on order components

OrderComponent now accepts a structured dimensions object on POST /v1/shipper/quote and POST /v1/shipper/shipment, replacing the positional palletDimensions array. Field names remove any ambiguity in ordering (length / width / height).

Preferred (new):

{
  "palletCount": 1,
  "poundsWeight": 800,
  "dimensions": {
    "length": 48,
    "width": 40,
    "height": 60
  }
}

⚠️ Deprecated: OrderComponent.palletDimensions

The legacy palletDimensions array is still accepted for backwards compatibility but is now marked deprecated and will be removed in a future major release. Migrate to dimensions at your convenience.

{
  "palletCount": 1,
  "poundsWeight": 800,
  "palletDimensions": [48, 40, 60]
}

Try it on sandbox: api.sandbox.oway.io · OpenAPI spec: /api-docs/shipper-v1

Production: api.oway.io · OpenAPI spec: /api-docs/shipper-v1