---
title: "Shipment Events"
method: POST
path: "/shipment-webhooks"
tags: ["Webhooks"]
---

# Shipment Events

`POST /shipment-webhooks`

Posts a message when an event about a shipment is triggered.

The shipment event payload has a base schema but the details change depending on the event type.
During the onboarding you can let Loadsmart know which events you want to receive. You can also
receive events in more than one URL.

List of event types:
  - shipment:appointment-pickup
  - shipment:appointment-delivery
  - shipment:en-route-to-pickup
  - shipment:check-in-pickup
  - shipment:check-out-pickup
  - shipment:check-in-delivery
  - shipment:check-out-delivery
  - shipment:carrier-updated
  - shipment:carrier-dropped
  - shipment:location-updated
  - shipment:driver-assigned
  - shipment:driver-unassigned
  - shipment:canceled
  - shipment:incident
  - shipment:invoice
  - shipment:updated
  - shipment:created

## Request body

- union
  - object
    - `details` object
      - `shipment` object
        - `id` string, uuid — The shipment identifier
        - `loadsmart_ref_number` string — Internal identifier
        - `bol_number` string — Bill of Lading number
        - `equipment_type` string — The type of truck used to move the load
        - `trailer_number` string — Carriers trailer number
        - `ref_number` string — Reference number
        - `carrier_pro` string — Carrier PRO Number is often used for by LTL carriers as a key identifier for their shipments.
        - `truck_license_plate` string — License Plate attached to a truck for official identification purposes.
        - `weight` string — Shipment's weight (string formatted decimal)
        - `must_arrive_by_date` string — Deadline to delivery load
        - `must_ship_by_date` string — Deadline to ship load
        - `container` object, nullable — Container related info
          - `is_live` boolean — True if it is a live load, False if it is a drop load
          - `number` string — Unique container identifier
          - `ocean_bol_number` string — Ocean bill of lading identifier number
        - `stops` object[] — All shipment stops
          - `city` string — This stop city
          - `state` string — This stop state
          - `country` string — This stop country
          - `stop_customer_ref` string — Shipper identifier for the stop
          - `facility_ref` string — Shipper identifier for the facility
          - `zipcode` string — This stop zipcode
          - `timezone` string — This stop timezone
          - `stop_index` number — Indicate the stop number for this event, being 0-based for pickup.
          - `location` object — General location attributes
            - `gln` string, nullable — GS1 Global Location Number if registered.
            - `latitude` number — The latitude where the stop is located
            - `longitude` number — The longitude where the stop is located
          - `facility` object — Facility information
            - `company_name` string — Facility's company name
            - `city` string — Facility's city
            - `state` string — Facility's state
            - `zipcode` string — Facility's zipcode
            - `timezone` string — Facility's timezone
            - `location` object — General location attributes
              - …
            - `contact` object — Facility contact information
              - …
        - `properties` object — JSON object where you can set custom properties
        - `stop` object — Event stop details
          - `city` string — This stop city
          - `state` string — This stop state
          - `country` string — This stop country
          - `stop_customer_ref` string — Shipper identifier for the stop
          - `facility_ref` string — Shipper identifier for the facility
          - `zipcode` string — This stop zipcode
          - `timezone` string — This stop timezone
          - `stop_index` number — Indicate the stop number for this event, being 0-based for pickup.
          - `location` object — General localization attributes
            - `gln` string, nullable — GS1 Global Location Number if registered.
            - `latitude` number — The latitude where the stop is located
            - `longitude` number — The longitude where the stop is located
          - `delay` object — Delay is an optional field and will only exist if there is a new ETA and a reason for the delay
            - `eta` string, date-time — New ETA.
            - `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 delay
      - `shipper` object
        - `id` string, uuid — The shipper identified
        - `name` string — The shipper name
      - `event` object
        - `appointment` object — The date and time interval of the appointment and its confirmation flag
          - `start` unknown
          - `end` unknown
          - `confirmed` boolean — Will always be true
        - `event_date` string, date-time — The date and time of the event
        - `stop_index` integer — Indicate the stop number for this event, being 0-based for pickup.
        - `reason` 'carrier_dispatch_error' | 'carrier_keying_error' | 'closed_holiday' | 'consignee_closed' | 'consignee_related' | 'customer_requested_future_delivery' | 'customer_wanted_earlier_delivery' | 'driver_not_available' | 'insufficient_pickup_time' | 'load_shifted' | 'missed_pickup' | 'natural_disaster_related' | 'normal_status' | 'no_requested_arrival_date_provided_by_shipper' | 'other' | 'other_carrier_related' | 'past_cut_off_time' | 'refused_by_customer' | 'road_conditions' | 'shipment_overweight' | 'shipper_related' | 'suspended_at_customer_request' | 'tractor_conventional_not_available' | 'tractor_with_sleeper_car_not_available' | 'trailer_not_available' | 'trailer_not_usable_due_to_prior_product' | 'waiting_shipping_instruction' — The reason for changing the appointment
    - `shipment_id` string, uuid — The shipment identifier
    - `created_at` string, date-time — The date and time of the event creation
    - `type` string — Event type
  - object
    - `details` CheckDetailsShipperAppointmentDelivery — unresolved $ref
    - `shipment_id` string, uuid — The shipment identifier
    - `created_at` string, date-time — The date and time of the event creation
    - `type` string — Event type
  - object
    - `details` object
      - `shipment` ShipmentDetails — unresolved $ref
      - `shipper` ShipperDetails — unresolved $ref
      - `event` object
        - `event_date` string, date-time — The date and time of the event.
        - `stop_index` integer — Indicate the stop number for this event, being 0-based for pickup.
    - `shipment_id` string, uuid — The shipment identifier
    - `created_at` string, date-time — The date and time of the event creation
    - `type` string — Event type
  - object
    - `details` CheckInDetails — unresolved $ref
    - `shipment_id` string, uuid — The shipment identifier
    - `created_at` string, date-time — The date and time of the event creation
    - `type` string — Event type
  - object
    - `details` CheckOutDetails — unresolved $ref
    - `shipment_id` string, uuid — The shipment identifier
    - `created_at` string, date-time — The date and time of the event creation
    - `type` string — Event type
  - object
    - `details` CheckInDetails — unresolved $ref
    - `shipment_id` string, uuid — The shipment identifier
    - `created_at` string, date-time — The date and time of the event creation
    - `type` string — Event type
  - object
    - `details` CheckOutDetails — unresolved $ref
    - `shipment_id` string, uuid — The shipment identifier
    - `created_at` string, date-time — The date and time of the event creation
    - `type` string — Event type
  - object
    - `details` LateDetails — unresolved $ref
    - `shipment_id` string, uuid — The shipment identifier
    - `created_at` string, date-time — The date and time of the event creation
    - `type` string — Event type
  - object
    - `details` LateDetails — unresolved $ref
    - `shipment_id` string, uuid — The shipment identifier
    - `created_at` string, date-time — The date and time of the event creation
    - `type` string — Event type
  - object
    - `details` object
      - `carrier` object
        - `id` string, uuid
        - `name` string
        - `mc_number` string, nullable
        - `dot_number` string, nullable
        - `tractor_number` string, nullable
        - `trailer_number` string, nullable
      - `shipment` object
        - `loadsmart_ref_number` string — Internal identifier
        - `ref_number` string — Reference number
      - `shipper` ShipperDetails — unresolved $ref
    - `shipment_id` string, uuid — The shipment identifier
    - `created_at` string, date-time — The date and time of the event creation
    - `type` string — Event type
  - object
    - `details` object, nullable
    - `shipment_id` string, uuid — The shipment identifier
    - `created_at` string, date-time — The date and time of the event creation
    - `type` string — Event type
  - object
    - `details` LocationDetails — unresolved $ref
    - `shipment_id` string, uuid — The shipment identifier
    - `created_at` string, date-time — The date and time of the event creation
    - `type` string — Event type
  - object
    - `details` object
      - `shipment` ShipmentDetails — unresolved $ref
      - `shipper` ShipperDetails — unresolved $ref
      - `event` object
        - `sender_id` string, nullable
        - `receiver_id` string, nullable
        - `driver` object
          - `id` string, uuid
          - `name` string
          - `phone_number` PhoneNumber — unresolved $ref
    - `shipment_id` string, uuid — The shipment identifier
    - `created_at` string, date-time — The date and time of the event creation
    - `type` string — Event type
  - object
    - `details` object
      - `shipment` ShipmentDetails — unresolved $ref
      - `shipper` ShipperDetails — unresolved $ref
      - `event` object
        - `sender_id` string, nullable
        - `receiver_id` string, nullable
    - `shipment_id` string, uuid — The shipment identifier
    - `created_at` string, date-time — The date and time of the event creation
    - `type` string — Event type
  - object
    - `details` object
      - `reason` 'shipper' | 'carrier' | 'loadsmart' | 'other'
      - `details` string
    - `shipment_id` string, uuid — The shipment identifier
    - `created_at` string, date-time — The date and time of the event creation
    - `type` string — Event type
  - object
    - `details` object
      - `shipment` ShipmentDetails — unresolved $ref
      - `shipper` ShipperDetails — unresolved $ref
      - `event` ShipmentIncident — unresolved $ref
    - `shipment_id` string, uuid — The shipment identifier
    - `created_at` string, date-time — The date and time of the event creation
    - `type` string — Event type
  - object
    - `details` object
      - `event` object
        - `invoice_number` string — The invoice identifier number
        - `weight` integer — The shipment weight
        - `lading_quantity` integer — The amount of lading in the shipment
        - `invoice_date` string, date-time — The date and time of the invoice
        - `pu_appointment` string, date-time — The pickup appointment date and time
        - `pu_checkin` string, date-time — The check in at pickup date and time
        - `pu_checkout` string, date-time — The check out from pickup date and time
        - `del_appointment` string, date-time — The delivery appointment date and time
        - `del_checkin` string, date-time — The check in at delivery date and time
        - `del_checkout` string, date-time — The check out from delivery date and time
        - `total_invoice_amount` number — The total amount of the invoice
        - `bill_to` object — Address information for where to bill the shipment
          - `company_name` string — Company name
          - `address1` string — Address line 1
          - `address2` string — Address line 2
          - `city` string — City
          - `zipcode` string — Zipcode
          - `state` string — State (e.g. MI, FL...)
          - `country` string — Country (e.g. USA, CAN...)
        - `lines` object[] — A list of all the invoice items
          - `item_no` 'all_in_rate' | 'accessorial' | 'detention' | 'lumper_fee' | 'tonu' | 'layover' | 'stop_off' | 'rate_adjustment' | 'claim' | 'other' | 'quickpay' | 'demurrage' | 'fuel_surcharge' — The type of the item
          - `description` string — A description of the item
          - `unit_price` number — The price of the item
          - `stop_index` integer, nullable — Indicate the stop number, being 0-based for pickup
      - `shipment` object
        - `bol_number` string — Bill of Lading number
        - `commodity` string — The shipment commodity
        - `id` string, uuid — The shipment identifier
        - `loadsmart_ref_number` string — Internal identifier
        - `miles` unknown
        - `purchase_order_number` string — Purchase order number
        - `purchase_order_numbers` string[] — A list of all shipment's purchase order numbers
        - `ref_number` string — Reference number
        - `stops` object[] — A list of all shipment stops
          - `address` string — Stop address
          - `city` string — Stop city
          - `country` string — Stop country. Ex. USA
          - `stop_customer_ref` string — Shipper identifier for the stop
          - `company_name` string — Company name
          - `stop_index` integer — Indicate the stop number, being 0-based for pickup
          - `state` string — Stop state
          - `type` 'pickup' | 'delivery' — Stop type
          - `zipcode` string — Stop zipcode
          - `facility` object — Facility information
            - `company_name` string — Facility's company name
            - `ref` string — Facility's identifier number
            - `address` string — Facility's address
            - `city` string — Facility's city
            - `state` string — Facility's state
            - `zipcode` string — Facility's zipcode
            - `timezone` string — Facility's timezone
            - `location` object — General location attributes
              - …
            - `contact` object — Facility contact information
              - …
        - `tractor_number` string — Tractor number
        - `trailer_number` string — Trailer number
        - `properties` object — Shipment misc properties
        - `bill_to` object — Address information for where to bill the shipment
          - `company_name` string — Company name
          - `address1` string — Address line 1
          - `address2` string — Address line 2
          - `city` string — City
          - `zipcode` string — Zipcode
          - `state` string — State (e.g. MI, FL...)
          - `country` string — Country (e.g. USA, CAN...)
        - `contracted` boolean — True whether the shipment was booked through a contract with the Shipper
      - `shipper` ShipperDetails — unresolved $ref
    - `shipment_id` string, uuid — The shipment identifier
    - `created_at` string, date-time — The date and time of the event creation
    - `type` string — Event type
  - object
    - `details` object
      - `shipment` ShipmentDetails — unresolved $ref
      - `event` object
    - `shipment_id` string, uuid — The shipment identifier
    - `created_at` string, date-time — The date and time of the event creation
    - `type` string — Event type
  - object
    - `details` object
      - `shipment` ShipmentDetailsWithStops — unresolved $ref
      - `event` object
    - `shipment_id` string, uuid — The shipment identifier
    - `created_at` string, date-time — The date and time of the event creation
    - `type` string — Event type

## Response `200`

Event received

---

[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)
