Skip to main content
Last Free Day (LFD) is the deadline to pick up a container before demurrage charges start. Terminals and shipping lines can change the LFD at any time. Terminal49 sends webhook events whenever the LFD changes or a container becomes available for pickup so you can act before costs accrue.

Events to subscribe to

How pickup_lfd is chosen

The coalesced pickup_lfd field follows a fixed source priority. It does not pick the earliest date, and it does not follow the most recently updated source.
  1. import_deadlines.pickup_lfd_line (shipping line) — used when present.
  2. import_deadlines.pickup_lfd_terminal (POD terminal) — used when there is no line LFD.
  3. import_deadlines.pickup_lfd_rail (rail carrier at the inland destination) — used when neither of the above is present. Rail Plan only.
The line LFD wins even when the terminal LFD is sooner. If your demurrage exposure is driven by whichever LFD lands first, do not rely on pickup_lfd alone. Subscribe to container.pickup_lfd_line.changed and container.pickup_lfd_terminal.changed (and container.pickup_lfd_rail.changed for rail moves), read the individual import_deadlines.* fields from the included container, and compare them yourself to pick the earliest date.

Handle LFD change events

When a container.pickup_lfd.changed event fires, the included array contains the full container object with the updated pickup_lfd field:

Determine pickup readiness

A container is ready for pickup when available_for_pickup is true and there are no active holds. Combine the container.transport.available event with hold checking:
For a deeper explanation of holds, fees, and the available_for_pickup field, see Container Holds, Fees, and Release Readiness.
Subscribe to both container.transport.available and container.updated events. The available event fires when the terminal first marks the container as released, but subsequent hold changes arrive as container.updated events.

Common patterns

  • Demurrage prevention — alert when LFD is within 48 hours and the container has not been dispatched
  • Automated dispatch — trigger a drayage order as soon as the container clears holds
  • LFD comparison — for demurrage planning, compare import_deadlines.pickup_lfd_line, import_deadlines.pickup_lfd_terminal, and (for rail) import_deadlines.pickup_lfd_rail yourself and act on the earliest date, since the coalesced pickup_lfd field follows a fixed priority instead (see How pickup_lfd is chosen)
  • Hold monitoring — watch for container.updated events where holds_at_pod_terminal changes