---
title: "Create shipment event"
method: POST
path: "/api/v2/shipments/{shipment_id}/events"
tags: ["Shipment Events"]
---

# Create shipment event

`POST /api/v2/shipments/{shipment_id}/events`

When moving the load always start the flow with the shipment:en-route-to-pickup event.

## Path parameters

- `shipment_id` string, uuid, required — Shipment UUID

## Request body

- object
  - `type` 'shipment:en-route-to-pickup' | 'shipment:check-in-pickup' | 'shipment:check-out-pickup' | 'shipment:check-in-delivery' | 'shipment:check-out-delivery' | 'shipment:incident' | 'shipment:carrier-updated', required — Event type
  - `event_date` string, date-time — The date and time of the event (if not informed, current date is used)
  - `stop_index` integer — Corresponds to the number of the stop, being 0-based for pickup
  - `details` union
    - object
      - `late-reason` 'accident' | 'address_corrected_delivery_attempted' | 'carrier_dispatch_error' | 'carrier_keying_error' | 'closed_holiday' | 'consignee_closed' | 'customer_wanted_earlier_delivery' | 'driver_not_available' | 'driver_related' | 'held_per_shipper' | 'hold_due_customs_documentation_problems' | 'incorrect_address' | 'insufficient_delivery_time' | 'insufficient_pickup_time' | 'insufficient_time_to_complete_delivery' | 'load_shifted' | 'mechanical_breakdown' | 'missed_pickup' | 'missing_documents' | 'natural_disaster_related' | 'normal_status' | 'other' | 'other_carrier_related' | 'past_cut_off_time' | 'previous_stop' | 'reconsigned' | 'refused_by_customer' | 'road_conditions' | 'shipment_overweight' | 'shipper_related' | 'tractor_conventional_not_available' | 'tractor_with_sleeper_car_not_available' | 'trailer_not_available' | 'trailer_not_usable_due_to_prior_product' — The reason which caused the delay
    - object
      - `late-reason` 'accident' | 'carrier_dispatch_error' | 'carrier_keying_error' | 'closed_holiday' | 'consignee_closed' | 'consignee_related' | 'customer_wanted_earlier_delivery' | 'delivery_shortage' | 'driver_not_available' | 'driver_related' | 'held_per_shipper' | 'hold_due_customs_documentation_problems' | 'improper_unloading_facility_or_equipment' | 'incorrect_address' | 'insufficient_delivery_time' | 'insufficient_pickup_time' | 'insufficient_time_to_complete_delivery' | 'load_shifted' | 'mechanical_breakdown' | 'missed_pickup' | 'missing_documents' | 'natural_disaster_related' | 'normal_status' | 'other' | 'other_carrier_related' | 'past_cut_off_time' | 'previous_stop' | 'reconsigned' | 'refused_by_customer' | 'road_conditions' | 'shipment_overweight' | 'shipper_related' | 'tractor_conventional_not_available' | 'tractor_with_sleeper_car_not_available' | 'trailer_not_available' | 'trailer_not_usable_due_to_prior_product' | 'waiting_shipping_instructions' — The reason which caused the delay
    - object
      - `late-reason` 'accident' | 'address_corrected_delivery_attempted' | 'carrier_dispatch_error' | 'carrier_keying_error' | 'closed_holiday' | 'consignee_closed' | 'customer_wanted_earlier_delivery' | 'driver_not_available' | 'driver_related' | 'held_per_shipper' | 'hold_due_customs_documentation_problems' | 'incorrect_address' | 'insufficient_delivery_time' | 'insufficient_pickup_time' | 'insufficient_time_to_complete_delivery' | 'load_shifted' | 'mechanical_breakdown' | 'missed_pickup' | 'missing_documents' | 'natural_disaster_related' | 'normal_status' | 'other' | 'other_carrier_related' | 'past_cut_off_time' | 'previous_stop' | 'reconsigned' | 'refused_by_customer' | 'road_conditions' | 'shipment_overweight' | 'shipper_related' | 'tractor_conventional_not_available' | 'tractor_with_sleeper_car_not_available' | 'trailer_not_available' | 'trailer_not_usable_due_to_prior_product' — The reason which caused the delay
    - object
      - `late-reason` 'accident' | 'carrier_dispatch_error' | 'carrier_keying_error' | 'closed_holiday' | 'consignee_closed' | 'consignee_related' | 'customer_wanted_earlier_delivery' | 'delivery_shortage' | 'driver_not_available' | 'driver_related' | 'held_per_shipper' | 'hold_due_customs_documentation_problems' | 'improper_unloading_facility_or_equipment' | 'incorrect_address' | 'insufficient_delivery_time' | 'insufficient_pickup_time' | 'insufficient_time_to_complete_delivery' | 'load_shifted' | 'mechanical_breakdown' | 'missed_pickup' | 'missing_documents' | 'natural_disaster_related' | 'normal_status' | 'other' | 'other_carrier_related' | 'past_cut_off_time' | 'previous_stop' | 'reconsigned' | 'refused_by_customer' | 'road_conditions' | 'shipment_overweight' | 'shipper_related' | 'tractor_conventional_not_available' | 'tractor_with_sleeper_car_not_available' | 'trailer_not_available' | 'trailer_not_usable_due_to_prior_product' | 'waiting_shipping_instructions' — The reason which caused the delay
    - object
      - `type` 'detention_loading' | 'detention_unloading' | 'truck_breakdown' | 'driver_late_shipper' | 'driver_late_receiver' | 'TONU' | 'transit_check' | 'OSD' | 'misc' | 'lumper' | 'no_contact_with_dispatcher' | 'no_contact_with_driver' | 'driver_risk_miss_appointment' | 'rejected_load' | 'truck_overweight' | 'other', required — The type of the incident
      - `reason` 'accident' | 'border_clearance' | 'carrier_dispatch_error' | 'closed_holiday' | 'consignee_closed' | 'consignee_related' | 'customer_requested_future_delivery' | 'customer_wanted_earlier_delivery' | 'delivery_shortage' | 'driver_not_available' | 'driver_related' | 'held_pending_appointment' | 'held_per_shipper' | 'incorrect_address' | 'insufficient_delivery_time' | 'insufficient_pickup_time' | 'insufficient_time_to_complete_delivery' | 'mechanical_breakdown' | 'missed_delivery' | 'missed_pickup' | 'natural_disaster_related' | 'normal_status' | 'no_requested_arrival_date_provided_by_shipper' | 'no_requested_arrival_time_provided_by_shipper' | 'other' | 'other_carrier_related' | 'past_cut_off_time' | 'previous_stop' | 'receiving_time_restricted' | 'recipient_unavailable_delivery_delayed' | 'refused_customer' | 'road_conditions' | 'shipment_overweight' | 'shipper_related' | 'trailer_not_available' | 'unable_locate' | 'waiting_shipping_instructions' — The reason which caused the incident
      - `eta` string, date-time — A new ETA after the incident
      - `notes` string — Any additional information
    - object
      - `tractor_number` string, nullable
      - `trailer_number` string, nullable

## Response `201`

Event successfully created

## Other responses

- `404` — Shipment not found
- `409` — Load status transition not allowed.
- `422` — Payload is invalid and the event can't be created

---

[API](https://skmtc.dev/loadsmart/apis/loadsmart-api.md) · [All operations](https://skmtc.dev/loadsmart/apis/loadsmart-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/loadsmart/loadsmart-api/revisions/6021c5806fe9/schema)
