Documentation Index
Fetch the complete documentation index at: https://terminal49.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
Terminal49 sends webhook notifications for over 30 events across the container lifecycle. Each event represents a specific change to a tracking request, shipment, or container.
Subscribe to individual events when creating a webhook, or subscribe to all events and filter in your handler.
Use List Webhook Events to fetch the event categories available to your account. Some events depend on account features.
Tracking request events
These events fire when a tracking request changes status.
| Event | Description |
|---|
tracking_request.succeeded | Shipment created and linked to the tracking request. Your tracking is active. |
tracking_request.failed | The tracking request failed. The carrier could not find the shipment. |
tracking_request.awaiting_manifest | The carrier has not yet manifested this shipment. Terminal49 will retry automatically. |
tracking_request.tracking_stopped | Terminal49 is no longer updating this tracking request (shipment delivered or manually stopped). |
Transport milestone events
These events map to physical milestones in a container’s journey. They fire in roughly chronological order as a container moves from origin to destination.
Origin
| Event | Description |
|---|
container.transport.empty_out | Empty container picked up at port of lading. |
container.transport.full_in | Full container returned to port of lading. |
container.transport.vessel_loaded | Container loaded onto the vessel at port of lading. |
container.transport.vessel_departed | Vessel departed the port of lading. |
Transshipment
| Event | Description |
|---|
container.transport.transshipment_arrived | Container arrived at a transshipment port. |
container.transport.transshipment_discharged | Container discharged at the transshipment port. |
container.transport.transshipment_loaded | Container loaded onto a new vessel at the transshipment port. |
container.transport.transshipment_departed | Vessel departed the transshipment port. |
Feeder vessel
| Event | Description |
|---|
container.transport.feeder_arrived | Container arrived on a feeder vessel or barge. |
container.transport.feeder_discharged | Container discharged from the feeder vessel or barge. |
container.transport.feeder_loaded | Container loaded onto a feeder vessel or barge. |
container.transport.feeder_departed | Feeder vessel or barge departed. |
Destination
| Event | Description |
|---|
container.transport.vessel_arrived | Vessel arrived at the port of discharge. |
container.transport.vessel_berthed | Vessel berthed at the port of discharge. |
container.transport.vessel_discharged | Container discharged from the vessel at the port of discharge. |
container.transport.available | Container is available for pickup at the destination. |
container.transport.not_available | Container is no longer available for pickup at the destination. |
container.transport.full_out | Container picked up (gated out) at the port of discharge. |
container.transport.delivered | Container was manually marked as delivered. |
container.transport.empty_in | Empty container returned at the destination. |
Rail (inland moves)
| Event | Description |
|---|
container.transport.rail_loaded | Container loaded onto a rail car. |
container.transport.rail_departed | Rail car departed. |
container.transport.rail_arrived | Rail car arrived. |
container.transport.rail_unloaded | Container unloaded from the rail car. |
container.transport.arrived_at_inland_destination | Container arrived at the final inland destination. |
Estimated events
These events fire when an estimated departure or arrival time changes.
| Event | Description |
|---|
container.transport.estimated.vessel_departed | ETA changed for vessel departure at the port of lading. |
shipment.estimated.arrival | ETA changed for the port of discharge (shipment level). |
container.transport.estimated.vessel_arrived | ETA changed for vessel arrival at the port of discharge (container level). |
container.transport.estimated.arrived_at_inland_destination | ETA changed for the inland destination. |
Container update events
These events fire when container attributes change.
| Event | Description |
|---|
container.created | A new container was added to a shipment. Common for bookings where containers are assigned after sailing. |
container.updated | One or more container attributes changed (weight, seal number, equipment type, etc.). The payload includes the updated fields. |
container.pod_terminal_changed | The port of discharge terminal assignment changed for the container. |
container.pickup_lfd.changed | The terminal Last Free Day (LFD) changed. |
container.pickup_lfd_line.changed | The shipping line Last Free Day (LFD) changed. |
container.pickup_lfd_terminal.changed | The destination terminal Last Free Day (LFD) changed. |
container.pickup_lfd_rail.changed | The rail Last Free Day (LFD) changed. |
container.pickup_appointment.changed | The pickup appointment changed. |
Payload structure
Every webhook notification follows the same structure: a data object containing the event metadata, and an included array with the related shipment, container, and event objects.
See Payload Examples for complete JSON payloads for each event type.