Getting Started
In Depth Guides
Useful Info
Shipments
Tracking Requests
Tracking requests
Webhooks
Webhook Notifications
Containers
Shipping Lines
Terminals
Webhooks
Creating Webhooks
You may subscribe to events through webhooks to be alerted when events are triggered.
Visit https://app.terminal49.com/developers/webhooks and click the ‘Create Webhook Endpoint’ button to create your webhook through the UI.
If you prefer to create webhooks programatically then see the webhooks post endpoint documentation.
Available Webook Events
Each WebhookNotification
event represents some change to a model which you may be notified of.
List of Supported Events:
Event | Description |
---|---|
tracking_request.succeeded | Shipment created and linked to TrackingRequest |
tracking_request.failed | TrackingRequest failed and shipment was not created |
tracking_request.awaiting_manifest | TrackingRequest awaiting a manifest |
tracking_request.tracking_stopped | Terminal49 is no longer updating this TrackingRequest . |
container.transport.empty_out | Empty out at port of lading |
container.transport.full_in | Full in at port of lading |
container.transport.vessel_loaded | Vessel loaded at port of lading |
container.transport.vessel_departed | Vessel departed at port of lading |
container.transport.transshipment_arrived | Container arrived at transhipment port |
container.transport.transshipment_discharged | Container discharged at transhipment port |
container.transport.transshipment_loaded | Container loaded at transhipment port |
container.transport.transshipment_departed | Container departed at transhipment port |
container.transport.feeder_arrived | Container arrived on feeder vessel or barge |
container.transport.feeder_discharged | Container discharged from feeder vessel or barge |
container.transport.feeder_loaded | Container loaded on feeder vessel or barge |
container.transport.feeder_departed | Container departed on feeder vessel or barge |
container.transport.vessel_arrived | Container arrived on vessel at port of discharge (destination port) |
container.transport.vessel_berthed | Container on vessel berthed at port of discharge (destination port) |
container.transport.vessel_discharged | Container discharged at port of discharge |
container.transport.full_out | Full out at port of discharge |
container.transport.empty_in | Empty returned at destination |
container.transport.rail_loaded | Rail loaded |
container.transport.rail_departed | Rail departed |
container.transport.rail_arrived | Rail arrived |
container.transport.rail_unloaded | Rail unloaded |
shipment.estimated.arrival | ETA change notification (for port of discharge) |
container.created | Container added to shipment. Helpful for seeing new containers on a booking or BL. |
container.updated | Container attribute(s) updated (see below example) |
container.pod_terminal_changed | Port of discharge assignment changed for container |
container.transport.arrived_at_inland_destination | Container arrived at inland destination |
container.transport.estimated.arrived_at_inland_destination | ETA change notification (for destination) |
container.pickup_lfd.changed | Last Free Day (LFD) changed for container |
Receiving Webhooks
When an event is triggered we will attempt to post to the URL you provided with the webhook.
The payload of every webhook is a webhook_notification
. Each Webhook notification includes a reference_object
in it’s relationships which is the subject of that notification (e.g. a tracking request, or an updated container).
Please note that we expect the endpoint to return HTTP 200 OK, HTTP 201, HTTP 202 or HTTP 204. We aim to deliver all webhook notifications, so any other response, including timeout, will result in a dozen of retries.
{
"type":"object",
"properties":{
"data":{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"type": {
"type": "string",
"enum": [
"webhook_notification"
]
},
"attributes": {
"type": "object",
"properties": {
"event": {
"type": "string"
},
"delivery_status": {
"type": "string",
"default": "pending",
"enum": [
"pending",
"succeeded",
"failed"
],
"description": "Whether the notification has been delivered to the webhook endpoint"
},
"created_at": {
"type": "string"
}
},
"required": [
"event",
"delivery_status",
"created_at"
]
},
"relationships": {
"type": "object",
"properties": {
"webhook": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"type": {
"type": "string",
"enum": [
"webhook"
]
}
}
}
}
},
"reference_object": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"type": {
"type": "string",
"enum": [
"tracking_request",
"estimated_event",
"transport_event",
"container_updated_event"
]
}
}
}
}
}
},
"required": [
"webhook"
]
}
}
},
"included":{
"type":"array",
"items": {
"anyOf": [
{
"type": "object",
"title": "Webhook",
},
{
"type": "object",
"title": "Tracking Request",
},
{
"type": "object",
"title": "Transport Event",
},
{
"type": "object",
"title": "Estimated Event",
},
{
"type": "object",
"title": "Container Updated Event",
},
{
"type": "object",
"title": "Terminal",
},
{
"type": "object",
"title": "Port",
},
]
}
}
}
}
Security
There are a few ways you can verify the webhooks sent by Terminal49.
Verify webhook signatures to confirm that received events are sent from Terminal49. Additionally, Terminal49 sends webhook events from a set list of IP addresses. Only trust events coming from these IP addresses.
Webhook notification origin IP
The full list of IP addresses that webhook notifications may come from is:
35.222.62.171
3.230.67.145
44.217.15.129
Verifying the webhook signature (optional)
When you create or get a webhook the model will include an attribute secret
.
Whenever a webhook notification is delivered we create a signature by using the webhook secret
as the key to generate a HMAC hex digest with SHA-256 on the body.
This signature is added as the header X-T49-Webhook-Signature
If you would like to verify that the webhook payload has not been tampered with by a 3rd party, then you can perform the same operation on the response body with the webhook secret and confirm that the digests match.
Below is a basic example of how this might look in a rails application.
class WebhooksController < ApplicationController
def receive_tracking_request
secret = ENV.fetch('TRACKING_REQUEST_WEBHOOK_SECRET')
raise 'InvalidSignature' unless valid_signature?(request, secret)
# continue processing webhook payload...
end
private
def valid_signature?(request, secret)
hmac = OpenSSL::HMAC.hexdigest('SHA256', secret, request.body.read)
request.headers['X-T49-Webhook-Signature'] == hmac
end
end
Webhook Notification Examples
container.updated
The container updated event lets you know about changes to container properties at the terminal, or which terminal the container is (or will be) located at.
The changeset
attribute on is a hash of all the properties which changed on the container.
Each changed property is the hash key. The prior value is the first item in the array, and the current value is the second item in the array.
For example:
"changeset": {
"pickup_lfd": [null, "2020-05-20 00:00:00"]
}
Shows that the pickup last free day has changed from not being set to May 20 2020.
The properties we show changes for are:
- fees_at_pod_terminal
- holds_at_pod_terminal
- pickup_lfd
- pickup_appointment_at
- available_for_pickup
- pod_terminal
In every case the attribute container_updated.timestamp
tells you when we picked up the changes from the terminal.
As container availability becomes known or changes at the POD Terminal we will send container_updated
events with the key available_for_pickup
in the changeset
.
{
"data": {
"id": "fa1a6731-4b34-4b0c-aabc-460892055ba1",
"type": "webhook_notification",
"attributes": {
"id": "fa1a6731-4b34-4b0c-aabc-460892055ba1",
"event": "container.updated",
"delivery_status": "pending",
"created_at": "2023-01-24T00:11:32Z"
},
"relationships": {
"reference_object": {
"data": {
"id": "e8f1976c-0089-4b98-96ae-90aa87fbdfee",
"type": "container_updated_event"
}
},
"webhook": {
"data": {
"id": "8a5ffa8f-3dc1-48de-a0ea-09fc4f2cd96f",
"type": "webhook"
}
},
"webhook_notification_logs": {
"data": [
]
}
}
},
"included": [
{
"id": "adc08630-51d3-4bbc-a859-5157cbbe806c",
"type": "shipment",
"attributes": {
"created_at": "2023-01-24T00:11:32Z",
"ref_numbers": [
"REF-50FFA3",
"REF-5AC291"
],
"tags": [
],
"bill_of_lading_number": "TE49DD306F13",
"normalized_number": "TE49DD306F13",
"shipping_line_scac": "MSCU",
"shipping_line_name": "Mediterranean Shipping Company",
"shipping_line_short_name": "MSC",
"port_of_lading_locode": "MXZLO",
"port_of_lading_name": "Manzanillo",
"port_of_discharge_locode": "USOAK",
"port_of_discharge_name": "Port of Oakland",
"pod_vessel_name": "MSC CHANNE",
"pod_vessel_imo": "9710438",
"pod_voyage_number": "098N",
"destination_locode": null,
"destination_name": null,
"destination_timezone": null,
"destination_ata_at": null,
"destination_eta_at": null,
"pol_etd_at": null,
"pol_atd_at": "2023-01-11T00:11:32Z",
"pol_timezone": "America/Mexico_City",
"pod_eta_at": "2023-01-23T20:11:32Z",
"pod_ata_at": "2023-01-23T23:11:32Z",
"pod_timezone": "America/Los_Angeles",
"line_tracking_last_attempted_at": null,
"line_tracking_last_succeeded_at": "2023-01-24T00:11:32Z",
"line_tracking_stopped_at": null,
"line_tracking_stopped_reason": null
},
"relationships": {
"port_of_lading": {
"data": {
"id": "588711e2-3f78-4178-ae5e-ccb690e0671d",
"type": "port"
}
},
"port_of_discharge": {
"data": {
"id": "9a25e0aa-52bd-4bb8-8876-cd7616f5fb0f",
"type": "port"
}
},
"pod_terminal": {
"data": {
"id": "4960e227-93b1-4f85-bf7c-07c9b6f597e0",
"type": "terminal"
}
},
"destination": {
"data": null
},
"destination_terminal": {
"data": {
"id": "26d8be45-b428-45fa-819b-46c828bf6fac",
"type": "terminal"
}
},
"line_tracking_stopped_by_user": {
"data": null
},
"containers": {
"data": [
{
"id": "3cd51f0e-eb18-4399-9f90-4c8a22250f63",
"type": "container"
}
]
}
},
"links": {
"self": "/v2/shipments/adc08630-51d3-4bbc-a859-5157cbbe806c"
}
},
{
"id": "9a25e0aa-52bd-4bb8-8876-cd7616f5fb0f",
"type": "port",
"attributes": {
"id": "9a25e0aa-52bd-4bb8-8876-cd7616f5fb0f",
"name": "Port of Oakland",
"code": "USOAK",
"state_abbr": "CA",
"city": "Oakland",
"country_code": "US",
"time_zone": "America/Los_Angeles"
}
},
{
"id": "4960e227-93b1-4f85-bf7c-07c9b6f597e0",
"type": "terminal",
"attributes": {
"id": "4960e227-93b1-4f85-bf7c-07c9b6f597e0",
"nickname": "SSA",
"name": "SSA Terminal",
"firms_code": "Z985"
},
"relationships": {
"port": {
"data": {
"id": "9a25e0aa-52bd-4bb8-8876-cd7616f5fb0f",
"type": "port"
}
}
}
},
{
"id": "3cd51f0e-eb18-4399-9f90-4c8a22250f63",
"type": "container",
"attributes": {
"number": "COSU1186800",
"seal_number": "43e29239e5dd5276",
"created_at": "2023-01-24T00:11:32Z",
"ref_numbers": [
"REF-C86614",
"REF-456CEA"
],
"pod_arrived_at": "2023-01-23T23:11:32Z",
"pod_discharged_at": "2023-01-24T00:11:32Z",
"final_destination_full_out_at": null,
"equipment_type": "dry",
"equipment_length": 40,
"equipment_height": "standard",
"weight_in_lbs": 43333,
"pod_full_out_at": null,
"empty_terminated_at": null,
"terminal_checked_at": null,
"fees_at_pod_terminal": [
],
"holds_at_pod_terminal": [
],
"pickup_lfd": null,
"pickup_appointment_at": null,
"pod_full_out_chassis_number": null,
"location_at_pod_terminal": null,
"availability_known": true,
"available_for_pickup": true,
"pod_timezone": "America/Los_Angeles",
"final_destination_timezone": null,
"empty_terminated_timezone": "America/Los_Angeles"
},
"relationships": {
"shipment": {
"data": {
"id": "adc08630-51d3-4bbc-a859-5157cbbe806c",
"type": "shipment"
}
},
"pod_terminal": {
"data": {
"id": "4960e227-93b1-4f85-bf7c-07c9b6f597e0",
"type": "terminal"
}
},
"transport_events": {
"data": [
]
},
"raw_events": {
"data": [
]
}
}
},
{
"id": "e8f1976c-0089-4b98-96ae-90aa87fbdfee",
"type": "container_updated_event",
"attributes": {
"changeset": {
"available_for_pickup": [
false,
true
]
},
"timestamp": "2023-01-24T00:11:32Z",
"data_source": "terminal",
"timezone": "America/Los_Angeles"
},
"relationships": {
"container": {
"data": {
"id": "3cd51f0e-eb18-4399-9f90-4c8a22250f63",
"type": "container"
}
},
"terminal": {
"data": {
"id": "4960e227-93b1-4f85-bf7c-07c9b6f597e0",
"type": "terminal"
}
},
"shipment": {
"data": {
"id": "adc08630-51d3-4bbc-a859-5157cbbe806c",
"type": "shipment"
}
}
}
}
]
}
The pod_terminal
is a relationship of the container. When the pod_terminal changes the id is included. The terminal will be serialized in the included models.
N.B. the container_updated_event
also has a relationship to a terminal
which refers to where the information came from. Currently this is always the POD terminal. In the future this may be the final destination terminal or an off-dock location.
{
"data": {
"id": "f6c5e340-94bf-4681-a47d-f2e8d6c90e59",
"type": "webhook_notification",
"attributes": {
"id": "f6c5e340-94bf-4681-a47d-f2e8d6c90e59",
"event": "container.updated",
"delivery_status": "pending",
"created_at": "2023-01-24T00:13:06Z"
},
"relationships": {
"reference_object": {
"data": {
"id": "567eccef-53bf-43d5-b3d8-00278d7710df",
"type": "container_updated_event"
}
},
"webhook": {
"data": {
"id": "2e5f41d1-8a3b-4940-a9bb-ff0481e09c71",
"type": "webhook"
}
},
"webhook_notification_logs": {
"data": [
]
}
}
},
"included": [
{
"id": "c74ff2a5-5ede-4fc2-886b-3eeef886ff32",
"type": "shipment",
"attributes": {
"created_at": "2023-01-24T00:13:05Z",
"ref_numbers": [
"REF-29557A"
],
"tags": [
],
"bill_of_lading_number": "TE497F86D5B7",
"normalized_number": "TE497F86D5B7",
"shipping_line_scac": "MSCU",
"shipping_line_name": "Mediterranean Shipping Company",
"shipping_line_short_name": "MSC",
"port_of_lading_locode": "MXZLO",
"port_of_lading_name": "Manzanillo",
"port_of_discharge_locode": "USOAK",
"port_of_discharge_name": "Port of Oakland",
"pod_vessel_name": "MSC CHANNE",
"pod_vessel_imo": "9710438",
"pod_voyage_number": "098N",
"destination_locode": null,
"destination_name": null,
"destination_timezone": null,
"destination_ata_at": null,
"destination_eta_at": null,
"pol_etd_at": null,
"pol_atd_at": "2023-01-11T00:13:05Z",
"pol_timezone": "America/Mexico_City",
"pod_eta_at": "2023-01-23T21:13:05Z",
"pod_ata_at": "2023-01-24T00:13:05Z",
"pod_timezone": "America/Los_Angeles",
"line_tracking_last_attempted_at": null,
"line_tracking_last_succeeded_at": "2023-01-24T00:13:05Z",
"line_tracking_stopped_at": null,
"line_tracking_stopped_reason": null
},
"relationships": {
"port_of_lading": {
"data": {
"id": "8d0f0cba-9961-4fa5-9bf0-0fb5fb67bdbe",
"type": "port"
}
},
"port_of_discharge": {
"data": {
"id": "9722a830-634e-4f7a-b1b3-793ccaf8cbb2",
"type": "port"
}
},
"pod_terminal": {
"data": {
"id": "08831e36-766b-4ac8-8235-d8594b55ff6d",
"type": "terminal"
}
},
"destination": {
"data": null
},
"destination_terminal": {
"data": {
"id": "f2a6a6e2-4bd1-4c66-aa8b-be4cb2ddc9a8",
"type": "terminal"
}
},
"line_tracking_stopped_by_user": {
"data": null
},
"containers": {
"data": [
{
"id": "adf4673d-f4ba-41a9-82da-55c0ae3b3722",
"type": "container"
}
]
}
},
"links": {
"self": "/v2/shipments/c74ff2a5-5ede-4fc2-886b-3eeef886ff32"
}
},
{
"id": "9722a830-634e-4f7a-b1b3-793ccaf8cbb2",
"type": "port",
"attributes": {
"id": "9722a830-634e-4f7a-b1b3-793ccaf8cbb2",
"name": "Port of Oakland",
"code": "USOAK",
"state_abbr": "CA",
"city": "Oakland",
"country_code": "US",
"time_zone": "America/Los_Angeles"
}
},
{
"id": "08831e36-766b-4ac8-8235-d8594b55ff6d",
"type": "terminal",
"attributes": {
"id": "08831e36-766b-4ac8-8235-d8594b55ff6d",
"nickname": "STO",
"name": "Shippers Transport Express",
"firms_code": "STO"
},
"relationships": {
"port": {
"data": {
"id": "9722a830-634e-4f7a-b1b3-793ccaf8cbb2",
"type": "port"
}
}
}
},
{
"id": "adf4673d-f4ba-41a9-82da-55c0ae3b3722",
"type": "container",
"attributes": {
"number": "CGMU1560506",
"seal_number": "a9948b719482648c",
"created_at": "2023-01-24T00:13:06Z",
"ref_numbers": [
"REF-D2AC6F",
"REF-34E84B"
],
"pod_arrived_at": "2023-01-24T00:13:05Z",
"pod_discharged_at": "2023-01-24T00:13:05Z",
"final_destination_full_out_at": null,
"equipment_type": "dry",
"equipment_length": 40,
"equipment_height": "standard",
"weight_in_lbs": 43481,
"pod_full_out_at": null,
"empty_terminated_at": null,
"terminal_checked_at": null,
"fees_at_pod_terminal": [
],
"holds_at_pod_terminal": [
],
"pickup_lfd": null,
"pickup_appointment_at": null,
"pod_full_out_chassis_number": null,
"location_at_pod_terminal": null,
"availability_known": true,
"available_for_pickup": true,
"pod_timezone": "America/Los_Angeles",
"final_destination_timezone": null,
"empty_terminated_timezone": "America/Los_Angeles"
},
"relationships": {
"shipment": {
"data": {
"id": "c74ff2a5-5ede-4fc2-886b-3eeef886ff32",
"type": "shipment"
}
},
"pod_terminal": {
"data": {
"id": "08831e36-766b-4ac8-8235-d8594b55ff6d",
"type": "terminal"
}
},
"transport_events": {
"data": [
]
},
"raw_events": {
"data": [
]
}
}
},
{
"id": "0ef5519f-1b39-4f6c-9961-1bbba0ac1307",
"type": "terminal",
"attributes": {
"id": "0ef5519f-1b39-4f6c-9961-1bbba0ac1307",
"nickname": "SSA",
"name": "SSA Terminal",
"firms_code": "Z985"
},
"relationships": {
"port": {
"data": {
"id": "9722a830-634e-4f7a-b1b3-793ccaf8cbb2",
"type": "port"
}
}
}
},
{
"id": "567eccef-53bf-43d5-b3d8-00278d7710df",
"type": "container_updated_event",
"attributes": {
"changeset": {
"pod_terminal": [
"0ef5519f-1b39-4f6c-9961-1bbba0ac1307",
"08831e36-766b-4ac8-8235-d8594b55ff6d"
]
},
"timestamp": "2023-01-24T00:13:06Z",
"data_source": "terminal",
"timezone": "America/Los_Angeles"
},
"relationships": {
"container": {
"data": {
"id": "adf4673d-f4ba-41a9-82da-55c0ae3b3722",
"type": "container"
}
},
"terminal": {
"data": {
"id": "0ef5519f-1b39-4f6c-9961-1bbba0ac1307",
"type": "terminal"
}
},
"shipment": {
"data": {
"id": "c74ff2a5-5ede-4fc2-886b-3eeef886ff32",
"type": "shipment"
}
}
}
}
]
}
tracking_request.succeeded
{
"data": {
"id": "a76187fc-5749-43f9-9053-cfaad9790a31",
"type": "webhook_notification",
"attributes": {
"id": "a76187fc-5749-43f9-9053-cfaad9790a31",
"event": "tracking_request.succeeded",
"delivery_status": "pending",
"created_at": "2020-09-11T21:25:34Z"
},
"relationships": {
"reference_object": {
"data": {
"id": "bdeca506-9741-4ab1-a0a7-cfd1d908e923",
"type": "tracking_request"
}
},
"webhook": {
"data": {
"id": "914b21ce-dd7d-4c49-8503-65aba488e9a9",
"type": "webhook"
}
},
"webhook_notification_logs": {
"data": []
}
}
},
"included": [
{
"id": "bdeca506-9741-4ab1-a0a7-cfd1d908e923",
"type": "tracking_request",
"attributes": {
"request_number": "TE497ED1063E",
"request_type": "bill_of_lading",
"scac": "MSCU",
"ref_numbers": [],
"created_at": "2020-09-11T21:25:34Z",
"status": "created",
"failed_reason": null,
"is_retrying": false,
"retry_count": null
},
"relationships": {
"tracked_object": {
"data": {
"id": "b5b10c0a-8d18-46da-b4c2-4e5fa790e7da",
"type": "shipment"
}
}
},
"links": {
"self": "/v2/tracking_requests/bdeca506-9741-4ab1-a0a7-cfd1d908e923"
}
},
{
"id": "b5b10c0a-8d18-46da-b4c2-4e5fa790e7da",
"type": "shipment",
"attributes": {
"created_at": "2020-09-11T21:25:33Z",
"bill_of_lading_number": "TE497ED1063E",
"ref_numbers": [],
"shipping_line_scac": "MSCU",
"shipping_line_name": "Mediterranean Shipping Company",
"port_of_lading_locode": "MXZLO",
"port_of_lading_name": "Manzanillo",
"port_of_discharge_locode": "USOAK",
"port_of_discharge_name": "Port of Oakland",
"pod_vessel_name": "MSC CHANNE",
"pod_vessel_imo": "9710438",
"pod_voyage_number": "098N",
"destination_locode": null,
"destination_name": null,
"destination_timezone": null,
"destination_ata_at": null,
"destination_eta_at": null,
"pol_etd_at": null,
"pol_atd_at": "2020-08-29T21:25:33Z",
"pol_timezone": "America/Mexico_City",
"pod_eta_at": "2020-09-18T21:25:33Z",
"pod_ata_at": null,
"pod_timezone": "America/Los_Angeles"
},
"relationships": {
"port_of_lading": {
"data": {
"id": "4384d6a5-5ccc-43b7-8d19-4a9525e74c08",
"type": "port"
}
},
"port_of_discharge": {
"data": {
"id": "2a765fdd-c479-4345-b71d-c4ef839952e2",
"type": "port"
}
},
"pod_terminal": {
"data": {
"id": "17891bc8-52da-40bf-8ff0-0247ec05faf1",
"type": "terminal"
}
},
"destination": {
"data": null
},
"containers": {
"data": [
{
"id": "b2fc728c-e2f5-4a99-8899-eb7b34ef22d7",
"type": "container"
}
]
}
},
"links": {
"self": "/v2/shipments/b5b10c0a-8d18-46da-b4c2-4e5fa790e7da"
}
},
{
"id": "b2fc728c-e2f5-4a99-8899-eb7b34ef22d7",
"type": "container",
"attributes": {
"number": "ARDU1824900",
"seal_number": "139F1451",
"created_at": "2020-09-11T21:25:34Z",
"equipment_type": "dry",
"equipment_length": 40,
"equipment_height": "standard",
"weight_in_lbs": 53507,
"fees_at_pod_terminal": [],
"holds_at_pod_terminal": [],
"pickup_lfd": null,
"pickup_appointment_at": null,
"availability_known": true,
"available_for_pickup": false,
"pod_arrived_at": null,
"pod_discharged_at": null,
"location_at_pod_terminal": null,
"final_destination_full_out_at": null,
"pod_full_out_at": null,
"empty_terminated_at": null
},
"relationships": {
"shipment": {
"data": {
"id": "b5b10c0a-8d18-46da-b4c2-4e5fa790e7da",
"type": "shipment"
}
},
"pod_terminal": {
"data": {
"id": "17891bc8-52da-40bf-8ff0-0247ec05faf1",
"type": "terminal"
}
},
"transport_events": {
"data": [
{
"id": "56078596-5293-4c84-9245-cca00a787265",
"type": "transport_event"
}
]
}
}
},
{
"id": "56078596-5293-4c84-9245-cca00a787265",
"type": "transport_event",
"attributes": {
"event": "container.transport.vessel_departed",
"created_at": "2020-09-11T21:25:34Z",
"voyage_number": null,
"timestamp": "2020-08-29T21:25:33Z",
"location_locode": "MXZLO",
"timezone": "America/Los_Angeles"
},
"relationships": {
"shipment": {
"data": {
"id": "b5b10c0a-8d18-46da-b4c2-4e5fa790e7da",
"type": "shipment"
}
},
"container": {
"data": {
"id": "b2fc728c-e2f5-4a99-8899-eb7b34ef22d7",
"type": "container"
}
},
"vessel": {
"data": null
},
"location": {
"data": {
"id": "2a765fdd-c479-4345-b71d-c4ef839952e2",
"type": "port"
}
},
"terminal": {
"data": null
}
}
}
]
}
shipment.estimated.arrival
{
"data": {
"id": "b03bcf3c-252d-41f8-b86f-939b404e304b",
"type": "webhook_notification",
"attributes": {
"id": "b03bcf3c-252d-41f8-b86f-939b404e304b",
"event": "shipment.estimated.arrival",
"delivery_status": "pending",
"created_at": "2022-01-13T19:56:58Z"
},
"relationships": {
"reference_object": {
"data": {
"id": "14b5047f-e3e7-4df7-a570-2d3878e6d863",
"type": "estimated_event"
}
},
"webhook": {
"data": {
"id": "d60a23a4-f40d-44d2-8b6a-2e55a527e6a2",
"type": "webhook"
}
},
"webhook_notification_logs": {
"data": [
]
}
}
},
"included": [
{
"id": "14b5047f-e3e7-4df7-a570-2d3878e6d863",
"type": "estimated_event",
"attributes": {
"created_at": "2022-01-13T19:56:58Z",
"estimated_timestamp": "2022-01-16T19:56:58Z",
"voyage_number": "098N",
"event": "shipment.estimated.arrival",
"location_locode": "USOAK",
"timezone": "America/Los_Angeles"
},
"relationships": {
"shipment": {
"data": {
"id": "8e4a1f1e-aa13-4cad-9df0-aec6c791a5f8",
"type": "shipment"
}
},
"port": {
"data": {
"id": "3ee88ea1-3b8b-4b96-80fb-6aa23ba7065e",
"type": "port"
}
},
"vessel": {
"data": {
"id": "b1550abc-4e73-4271-a0f4-8ac031f242cd",
"type": "vessel"
}
}
}
},
{
"id": "3ee88ea1-3b8b-4b96-80fb-6aa23ba7065e",
"type": "port",
"attributes": {
"id": "3ee88ea1-3b8b-4b96-80fb-6aa23ba7065e",
"name": "Port of Oakland",
"code": "USOAK",
"state_abbr": "CA",
"city": "Oakland",
"country_code": "US",
"time_zone": "America/Los_Angeles"
}
},
{
"id": "8e4a1f1e-aa13-4cad-9df0-aec6c791a5f8",
"type": "shipment",
"attributes": {
"created_at": "2022-01-13T19:56:58Z",
"ref_numbers": [
"REF-3AA505",
"REF-910757",
"REF-2A8357"
],
"tags": [
],
"bill_of_lading_number": "TE49C31E16E2",
"shipping_line_scac": "MSCU",
"shipping_line_name": "Mediterranean Shipping Company",
"shipping_line_short_name": "MSC",
"port_of_lading_locode": "MXZLO",
"port_of_lading_name": "Manzanillo",
"port_of_discharge_locode": "USOAK",
"port_of_discharge_name": "Port of Oakland",
"pod_vessel_name": "MSC CHANNE",
"pod_vessel_imo": "9710438",
"pod_voyage_number": "098N",
"destination_locode": null,
"destination_name": null,
"destination_timezone": null,
"destination_ata_at": null,
"destination_eta_at": null,
"pol_etd_at": null,
"pol_atd_at": "2021-12-31T19:56:58Z",
"pol_timezone": "America/Mexico_City",
"pod_eta_at": "2022-01-16T19:56:58Z",
"pod_ata_at": null,
"pod_timezone": "America/Los_Angeles",
"line_tracking_last_attempted_at": null,
"line_tracking_last_succeeded_at": "2022-01-13T19:56:58Z",
"line_tracking_stopped_at": null,
"line_tracking_stopped_reason": null
},
"relationships": {
"port_of_lading": {
"data": {
"id": "78ad2915-700b-4919-8ede-a3b6c2137436",
"type": "port"
}
},
"port_of_discharge": {
"data": {
"id": "3ee88ea1-3b8b-4b96-80fb-6aa23ba7065e",
"type": "port"
}
},
"pod_terminal": {
"data": {
"id": "3bd88777-48ea-4880-9cb9-961dd4d26a00",
"type": "terminal"
}
},
"destination": {
"data": null
},
"destination_terminal": {
"data": {
"id": "1d016b3d-96d5-4867-8f99-77233d1cc57d",
"type": "terminal"
}
},
"containers": {
"data": [
]
}
},
"links": {
"self": "/v2/shipments/8e4a1f1e-aa13-4cad-9df0-aec6c791a5f8"
}
}
]
}
container.transport.vessel_arrived
{
"data": {
"id": "72f8b0b5-28f5-4a12-8274-71d4d23c9ab7",
"type": "webhook_notification",
"attributes": {
"id": "72f8b0b5-28f5-4a12-8274-71d4d23c9ab7",
"event": "container.transport.vessel_arrived",
"delivery_status": "pending",
"created_at": "2023-01-24T00:14:28Z"
},
"relationships": {
"reference_object": {
"data": {
"id": "c1443820-304a-444b-bf42-c3d885dc8daa",
"type": "transport_event"
}
},
"webhook": {
"data": {
"id": "655236f8-7936-4611-b580-341d3e1103f5",
"type": "webhook"
}
},
"webhook_notification_logs": {
"data": [
]
}
}
},
"included": [
{
"id": "290a696b-5fba-45aa-a08c-0e15ae89e9c0",
"type": "shipment",
"attributes": {
"created_at": "2023-01-24T00:14:28Z",
"ref_numbers": [
"REF-134938",
"REF-BE2704",
"REF-712D47"
],
"tags": [
],
"bill_of_lading_number": "TE49735F4B1D",
"normalized_number": "TE49735F4B1D",
"shipping_line_scac": "MSCU",
"shipping_line_name": "Mediterranean Shipping Company",
"shipping_line_short_name": "MSC",
"port_of_lading_locode": "MXZLO",
"port_of_lading_name": "Manzanillo",
"port_of_discharge_locode": "USOAK",
"port_of_discharge_name": "Port of Oakland",
"pod_vessel_name": "MSC CHANNE",
"pod_vessel_imo": "9710438",
"pod_voyage_number": "098N",
"destination_locode": null,
"destination_name": null,
"destination_timezone": null,
"destination_ata_at": null,
"destination_eta_at": null,
"pol_etd_at": null,
"pol_atd_at": "2023-01-11T00:14:28Z",
"pol_timezone": "America/Mexico_City",
"pod_eta_at": "2023-01-31T00:14:28Z",
"pod_ata_at": "2023-01-31T01:14:28Z",
"pod_timezone": "America/Los_Angeles",
"line_tracking_last_attempted_at": null,
"line_tracking_last_succeeded_at": "2023-01-24T00:14:28Z",
"line_tracking_stopped_at": null,
"line_tracking_stopped_reason": null
},
"relationships": {
"port_of_lading": {
"data": {
"id": "036084b7-f2cc-49b5-9d81-7de2cdabfc69",
"type": "port"
}
},
"port_of_discharge": {
"data": {
"id": "0e0c9ad6-ec83-48b3-87f9-c2710659821b",
"type": "port"
}
},
"pod_terminal": {
"data": {
"id": "1ee2022a-e054-4f76-8c1a-60967e76b407",
"type": "terminal"
}
},
"destination": {
"data": null
},
"destination_terminal": {
"data": {
"id": "b07e8193-47cf-4395-a1f6-a5d4d7fa9b17",
"type": "terminal"
}
},
"line_tracking_stopped_by_user": {
"data": null
},
"containers": {
"data": [
{
"id": "c8fa5c2a-1bd0-48d8-8c94-2ef8a06c4ce9",
"type": "container"
}
]
}
},
"links": {
"self": "/v2/shipments/290a696b-5fba-45aa-a08c-0e15ae89e9c0"
}
},
{
"id": "c8fa5c2a-1bd0-48d8-8c94-2ef8a06c4ce9",
"type": "container",
"attributes": {
"number": "GLDU1222600",
"seal_number": "d5103634ed1adbd4",
"created_at": "2023-01-24T00:14:28Z",
"ref_numbers": [
"REF-889564"
],
"pod_arrived_at": "2023-01-24T00:14:28Z",
"pod_discharged_at": "2023-01-24T00:14:28Z",
"final_destination_full_out_at": "2023-01-24T00:14:28Z",
"equipment_type": "dry",
"equipment_length": 40,
"equipment_height": "standard",
"weight_in_lbs": 46679,
"pod_full_out_at": null,
"empty_terminated_at": null,
"terminal_checked_at": null,
"fees_at_pod_terminal": [
],
"holds_at_pod_terminal": [
],
"pickup_lfd": null,
"pickup_appointment_at": null,
"pod_full_out_chassis_number": null,
"location_at_pod_terminal": null,
"availability_known": true,
"available_for_pickup": false,
"pod_timezone": "America/Los_Angeles",
"final_destination_timezone": null,
"empty_terminated_timezone": "America/Los_Angeles"
},
"relationships": {
"shipment": {
"data": {
"id": "290a696b-5fba-45aa-a08c-0e15ae89e9c0",
"type": "shipment"
}
},
"pod_terminal": {
"data": null
},
"transport_events": {
"data": [
{
"id": "c1443820-304a-444b-bf42-c3d885dc8daa",
"type": "transport_event"
}
]
},
"raw_events": {
"data": [
]
}
}
},
{
"id": "0e0c9ad6-ec83-48b3-87f9-c2710659821b",
"type": "port",
"attributes": {
"id": "0e0c9ad6-ec83-48b3-87f9-c2710659821b",
"name": "Port of Oakland",
"code": "USOAK",
"state_abbr": "CA",
"city": "Oakland",
"country_code": "US",
"time_zone": "America/Los_Angeles"
}
},
{
"id": "1ee2022a-e054-4f76-8c1a-60967e76b407",
"type": "terminal",
"attributes": {
"id": "1ee2022a-e054-4f76-8c1a-60967e76b407",
"nickname": "SSA",
"name": "SSA Terminal",
"firms_code": "Z985"
},
"relationships": {
"port": {
"data": {
"id": "0e0c9ad6-ec83-48b3-87f9-c2710659821b",
"type": "port"
}
}
}
},
{
"id": "100c303e-79df-4301-9bf7-13f9e0c85851",
"type": "vessel",
"attributes": {
"name": "MSC CHANNE",
"imo": "9710438",
"mmsi": "255805864",
"latitude": -78.30435842851921,
"longitude": 25.471353799804547,
"nautical_speed_knots": 100,
"navigational_heading_degrees": 1,
"position_timestamp": "2023-06-05T19:46:18Z"
}
},
{
"id": "c1443820-304a-444b-bf42-c3d885dc8daa",
"type": "transport_event",
"attributes": {
"event": "container.transport.vessel_arrived",
"created_at": "2023-01-24T00:14:27Z",
"voyage_number": null,
"timestamp": "2023-01-24T00:14:27Z",
"data_source": "shipping_line",
"location_locode": "USOAK",
"timezone": "America/Los_Angeles"
},
"relationships": {
"shipment": {
"data": {
"id": "290a696b-5fba-45aa-a08c-0e15ae89e9c0",
"type": "shipment"
}
},
"container": {
"data": {
"id": "c8fa5c2a-1bd0-48d8-8c94-2ef8a06c4ce9",
"type": "container"
}
},
"vessel": {
"data": {
"id": "100c303e-79df-4301-9bf7-13f9e0c85851",
"type": "vessel"
}
},
"location": {
"data": {
"id": "0e0c9ad6-ec83-48b3-87f9-c2710659821b",
"type": "port"
}
},
"terminal": {
"data": {
"id": "1ee2022a-e054-4f76-8c1a-60967e76b407",
"type": "terminal"
}
}
}
}
]
}
Was this page helpful?