webhook_notification primary resource and related records in included.
Use this page as the payload reference. Use Payload Examples when you need complete sample JSON.
One notification per container
Container-scoped events fire once per container, not once per shipment or once per vessel move. If ten containers on the same vessel are discharged, you receive ten separatecontainer.transport.vessel_discharged notifications β one for each container. Each payload references a single container through its reference_object and (when included) the container resource in included.
Use data.id on the notification as the idempotency key when deduplicating retries, and the container id or number to route each notification to the right record on your side.
Notification envelope
Top-level fields
Reference object types
Included resources
Webhook payloads may include:
Other resource types β such as
vessel, rail_terminal, and metro_area β can appear for specific events. The webhook endpoint that received the delivery is referenced through the webhook relationship on the notification, not serialized in included.
Do not require every resource to be present. Carrier, terminal, and event data can arrive at different times.
Events with a minimal included array
A few events ship with only the reference object in included (or with an empty included array). The shipment and container records are not embedded in the payload:
container.transport.availablecontainer.transport.not_availablecontainer.transport.estimated.vessel_departedcontainer.transport.estimated.vessel_arrivedcontainer.transport.estimated.arrived_at_inland_destinationcontainer.pickup_appointment.changed
reference_object relationship and fetch the related transport event, container, or shipment through the API β for example, Get a container using the container ID from the transport eventβs relationships, or Get a shipment using the shipment ID.
Extracting common fields from included
For events that do include the related records, the fields most integrations pull are consistent across events:
Container update changesets
Forcontainer.updated events, the event resource includes a changeset object. Each key is a changed field. The value is a two-item array: [previous_value, current_value].
fees_at_pod_terminalholds_at_pod_terminalpickup_lfdpickup_lfd_linepickup_lfd_railpickup_appointment_atavailable_for_pickuppod_terminal
timestamp attribute tells you when Terminal49 picked up the changes from the terminal.
For pod_terminal, the changeset values are terminal record IDs, not names:
terminal resources serialized in included.
The
container_updated_event also has a terminal relationship that indicates where the data came from. Currently this is always the POD terminal; in the future it may be the final destination terminal or an off-dock location.Related
- Event Catalog - canonical event names
- Payload Examples - complete sample JSON
- Set Up Webhooks - create and secure webhook endpoints
- Webhook Notifications API - inspect notification delivery status