---
title: "Report a shipment exception or delay"
method: POST
path: "/v1/carrier/shipments/{identifier}/exception"
tags: ["Carrier API"]
---

# Report a shipment exception or delay

`POST /v1/carrier/shipments/{identifier}/exception`

## Request

- Base URL: `https://api.oway.io`
- URL: `https://api.oway.io/v1/carrier/shipments/{identifier}/exception`
- Auth: HTTP bearer and API key in header `x-oway-api-key`

Report an exception such as weather delay, vehicle breakdown, or address issue.

**State requirement:** The shipment must be in ACCEPTED or PICKED_UP status.

## Path parameters

- `identifier` string, required

## Request body

- ExceptionReportRequest: Request body for reporting a shipment exception
  - `exception_type` 'no_capacity' | 'wrong_equipment' | 'load_not_ready' | 'failed_pickup' | 'truck_breakdown' | 'driver_hos_expired' | 'damage_upon_receipt' | 'damage_in_transit' | 'damage_at_delivery' | 'weather_delay' | 'traffic_delay' | 'address_incorrect' | 'recipient_unavailable' | 'customs_delay' | 'delivery_attempted' | 'other', required: Type of exception that occurred
  - `exception_time` string, date-time, required: Time the exception occurred
  - `description` string: Description of the exception
  - `estimated_delivery_time` string, date-time: Revised estimated delivery time following the exception
  - `location` EventLocation: Location where a shipment event occurred
    - `address1` string: Primary street address
    - `address2` string: Secondary address line (suite, unit, etc.)
    - `city` string: City name
    - `state` string: Two-letter state abbreviation
    - `zip_code` string: 5-digit ZIP code
    - `country` string: Country code

## Response `200`

Exception recorded

- ExceptionResponse: Response after reporting a shipment exception
  - `order_number` string: Human-readable order number
  - `exception_recorded` boolean: Whether the exception was successfully recorded
  - `notifications_sent` boolean: Whether notifications were sent to relevant parties (reserved for future use)

## Other responses

- `400`: Invalid request: exceptionType and exceptionTime are required
- `401`: Unauthorized: missing or invalid bearer token
- `403`: Forbidden: missing/invalid API key or API access not enabled
- `404`: Shipment not found
- `409`: Shipment not in valid state for exception reporting
- `500`: Internal server error

## Changes

- **2026-11-03** `8d96932e1dc6`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/shipoway/apis/oway-carrier-api/changes/v1/carrier/shipments/:identifier/exception/post.md)

---

[API](https://skmtc.dev/shipoway/apis/oway-carrier-api.md) - [All operations](https://skmtc.dev/shipoway/apis/oway-carrier-api/llms.txt) - [OpenAPI document](https://skmtc.dev/shipoway/apis/oway-carrier-api/revisions/8d96932e1dc6?raw)
