概述
和易孚追箱易接口提供可信的货运跟踪数据, 包括
1 | 集装箱动态和航线/船舶变更,以及持续提供跨承运人的船期 (ETA/ETD) 更新 |
2 | 提供来自专有机器学习模型的预测 ETA/ETD |
3 | 从船舶 AIS 和先进的地理围栏技术中检测到 ATD 和 ATA |
4 | 通过"查询"及"订阅"方法获得集装箱状态更新 |
参考:
和易孚追箱易接口会不定期更新,以确保提供准确的数据和优质的服务。 点阅查看最近更新。
入门
步骤1 |
|
|
|
步骤 2 |
|
|
获取订阅密钥后,第一步是将"订阅号"(提单号或订舱号)注册到我们的系统中。
更多详细信息 注册"订阅号" . |
Step 3 |
|
|
|
步骤 4 |
|
|
注册接口
细节:
通过 承运人 carrSCAC 和 "订舱/提单号" 注册以获得跟踪数据:
在执行查询之前,每个客户请注意所有接口端点有调用的速率限制。速率限制定义如下,其中: |
每分钟允许 500 个请求。当客户端执行太多请求时,他们将收到 HTTP 429 Too Many Requests 错误。 |
探索 接口
1 | 单击“Authorize 🔒”,将您的密钥(例如 dr212fa991d84374bbp6f0cef8d2ab5c)粘贴到该字段,然后单击“Authorize”。 |
2 | 选择一个API,点击“Try it out”,输入参数,然后点击“Execute”。 |
返回状态
细节
错误(例如 400 和 404)将返回具相应 HTTP 状态代码,通常会自行解释: |
1
2
3
4
5
{
"message": "Error message",
"status": "Response Status Code",
"error": " Response Status "
}
状态码 | 状态 | 描述 |
---|---|---|
200 |
OK |
|
400 |
Bad Request |
由于语法无效,服务器无法理解请求。通常是参数错误、重复注册或业务密钥冲突 |
401 |
Unauthorized |
该请求未被授权。 |
500 |
Internal Server Error |
服务器遇到了不知道如何处理的情况。 |
错误代码
常见的错误代码:
状态码 | 错误信息 | 解释 |
---|---|---|
400 |
shipmentRegistrationCriteria:must not be blank |
shippingRegistrationCriteria: 不能为空 |
400 |
Unexpected error occurred, may be registration conflict. Please try again later. |
发生意外错误,可能是注册冲突。请稍后再试。 |
400 |
JSON parse error: Unrecognized field \"xxxxxx\ ” xxxxx |
JSON解析错误:无法识别的字段\“xxxxxx\” xxxxx |
400 |
Exceed the batch size, the registration data is only allowed up to 100 |
超过批量大小,注册数据最多只允许100个 |
404 |
Can not find related registration with criteria. |
找不到符合条件的相关注册。 |
400 |
Unexpected error occurred, may be registration conflict. Please try again later. |
发生意外错误,可能是注册冲突。请稍后再试 |
400 |
registrationFromDate and registrationToDate must not be null! |
registrationFromDate 和registrationToDate 不能为空! |
400 |
The shipment is not available for current booking number, please register with bl number for Maersk Group shipments. |
该货件不适用于当前的订舱号,士基集团的货件 请使用 提单号注册。 |
404 |
Registration not found. |
未找到注册。 |
400 |
page size must be between 1 and 100 |
页面大小必须在 1 到 100 之间 |
400 |
page numbers must start at 0 |
页码必须从 0 开始 |
订阅号状态
你可以透过上述接口 /shipment/registrations/registration-with-status
查詢订阅号状态。以下是状态解释。
状态:
状态 | 解释 |
---|---|
PROCESSING |
处理中 |
READY TO TRACK |
资讯已获取并可查询 |
NO RESULT |
找不到相关订阅号 |
INCOMPLETE |
运营商处的资讯不齐全。原因请查看描述,系统会于一星期内多次重试 |
ERROR |
获取资讯失败。 原因请查看描述. |
描述:
描述 | 解释 |
---|---|
MISSING CONTAINER SLOT |
返回资讯没有箱号 |
ALL CONTAINERS MISSING OCEAN LEG |
所有集装箱没有航线信息 |
SOME CONTAINERS MISSING OCEAN LEG |
部份集装箱没有航线信息 |
REGISTERED CONTAINER NOT IN CAPTURE RESULT |
订阅箱号不在返回资讯中 |
REGISTERED CONTAINER MISSING OCEAN LEG |
订阅箱号没有航线信息 |
REGISTERED SHIPMENT ENCOUNTERED ISSUE WHEN FETCHING DATA |
资讯获取发生问题。系统会于一星期内多次重试,如仍不能,会返回状态 "NO RESULT" |
SCAC CODE NOT DEFINED IN CUSTOMER PROFILE |
系统不支持该carrierSCAC code |
页面
分页可用于 Fetch All Shipment Registrations 和 Fetch Registrations Status |
默认page = 0,页码从0开始 |
默认大小 = 100,系统接受 1-100 之间的输入 |
追箱易查询接口
细节:
通过 承运人 carrSCAC 和 "订舱/提单号" 从端点返回跟踪数据。
在执行查询之前,每个客户请注意所有接口端点有调用的速率限制。速率限制定义如下,其中: |
每分钟允许 500 个请求。当客户端执行太多请求时,他们将收到 HTTP 429 Too Many Requests 错误。 |
探索 接口
1 | 单击“Authorize 🔒”,将您的密钥(例如 dr212fa991d84374bbp6f0cef8d2ab5c)粘贴到该字段,然后单击“Authorize”。 |
2 | 选择一个API,点击“Try it out”,输入参数,然后点击“Execute”。 |
当未能提供事件的本地时间时,动态的本地时间戳为 00:00:00 且 GMT 为 null 。 |
例子
1
2
3
4
5
6
7
8
9
"pointSequence": 1,
"eventCode": "MTY_PICKUP",
"eventDescription": "Empty equipment dispatched",
"eventStatus": "ACTUAL",
"eventDT": {
"locDT": "2023-03-17T00:00:00" ,
"timeZone": "Europe/Amsterdam",
"GMT": "null"
}
返回状态
细节
错误(例如 400 和 404)将返回具相应 HTTP 状态代码,通常会自行解释: |
1
2
3
4
5
{
"message": "Error message",
"status": "Response Status Code",
"error": " Response Status "
}
状态码 | 状态 | 描述 |
---|---|---|
200 |
OK |
|
204 |
No Content |
已找到注册记录,但还没有结果。 |
400 |
Bad Request |
由于语法无效,服务器无法理解请求。通常是参数错误、重复注册或业务密钥冲突 |
401 |
Unauthorized |
该请求未被授权。 |
404 |
Not Found |
未找到注册记录登记。 |
500 |
Internal Server Error |
服务器遇到了不知道如何处理的情况。 |
错误代码
常见的错误代码:
状态码 | 错误信息 |
---|---|
描述 |
400 |
JSON parse error: Unrecognized field \"xxxxxx\ ” xxxxx |
JSON解析错误:无法识别的字段\“xxxxxx\” xxxxx |
404 |
Can not find related registration with criteria. |
找不到符合条件的相关注册。 |
404 |
Registration not found. |
未找到注册。 |
追箱易订阅接口
出于安全考虑,您需要预先设置 回调地址 以启用推送服务,在您计划开始连接测试之前 ,请通过customerservices@iqax.com联系我们。
|
探索 接口
1 | 单击“Authorize 🔒”,将您的密钥(例如 dr212fa991d84374bbp6f0cef8d2ab5c)粘贴到该字段,然后单击“Authorize”。 |
2 | 选择一个API,点击“Try it out”,输入参数,然后点击“Execute”。 |
当未能提供事件的本地时间时,动态的本地时间戳为 00:00:00 且 GMT 为 null 。 |
例子
1
2
3
4
5
6
7
8
9
"pointSequence": 1,
"eventCode": "MTY_PICKUP",
"eventDescription": "Empty equipment dispatched",
"eventStatus": "ACTUAL",
"eventDT": {
"locDT": "2023-03-17T00:00:00" ,
"timeZone": "Europe/Amsterdam",
"GMT": "null"
}
返回状态
细节
错误(例如 400 和 404)将返回具相应 HTTP 状态代码,通常会自行解释: |
1
2
3
4
5
{
"message": "Error message",
"status": "Response Status Code",
"error": " Response Status "
}
状态码 | 状态 | 描述 |
---|---|---|
200 |
OK |
|
400 |
Bad Request |
由于语法无效,服务器无法理解请求。通常是参数错误、重复注册或业务密钥冲突 |
401 |
Unauthorized |
该请求未被授权。 |
404 |
Not Found |
未找到注册记录登记。 |
500 |
Internal Server Error |
服务器遇到了不知道如何处理的情况。 |
错误代码
常见的错误代码:
状态码 | 错误信息 |
---|---|
解释 |
400 |
shipmentWebhookCriteria:must not be blank |
shippingWebhookCriteria: 不能为空 |
400 |
Webhook already exists. |
Webhook 已经存在。 |
400 |
The callback URL is not valid. |
接收地址无效。 |
400 |
Failed to connect callback endpoint: error on post request for +webhook.getCallbackURL() |
无法连接 接收端点:+webhook.getCallbackURL() 的发布请求出错 |
400 |
Failed to connect callback endpoint: cannot get response with 2xx successful or 400 bad request. |
无法连接 接收端点:无法获得 2xx 成功或 400 错误请求的响应。 |
400 |
Inconsistent with the registered secret. |
与注册的秘密不一致。 |
400 |
JSON parse error: Unrecognized field \"xxxxxx\ ” xxxxx |
JSON解析错误:无法识别的字段\“xxxxxx\” xxxxx |
404 |
Can not find related subscription with criteria. |
找不到符合条件的相关订阅。 |
404 |
Registration not found. |
未找到注册。 |
动作状态
当检测到集装箱的动态和航线/船舶变更 。操作类型将被指示为:NEW / UPDATE / DELETE 以表示动态更改, 路线更改侧用 UPDATE。
操作类型 | 描述 |
---|---|
UPDATE |
集装箱动态/路线/信息 变更 |
NEW |
新集装箱动态/信息 |
DELETE |
已删除的集装箱 动态 |
IMPORTANT: 发货注册后,一旦捕获可用信息,系统将向 Webhook 客户端服务器推送一条完整的信息。首次操作类型将显示为“NEW”,往后的更新将标记为“UPDATE”。
Webhook 客户端服务器应仅返回 HTTP 状态代码 200 以指示成功接收。其他返回状态将被视为失败。 |
客户端服务器验证和确认
当创建 Webhook 后,系统服务器将立即向指定的接收地址触发一个回调(即请求内容[]),客户端服务器应返回 HTTP 代码 200 以确认并验证双方连接是否健康。否则此端点将失败。
-
在向客户端服务器触发事件之前,如果 webhook 注册包含秘密,系统服务器将使用 sha1 和 sha256 对秘密进行加密。
-
系统服务器在回调指定的接收地址时 会传递加密后的 secret,如果 client server 验证加密后的 secret,则返回 200 让 API server 知道 Webhook 已经建立。
更新事件时间
只有在启用 Webhook 的情况下发生运输路线/集装箱动态更改时,才会将更改视为待发送事件。如果当时没有任何可用的 Webhook 连接,则无法在更新货运路线/事件时获得通知。
错误和恢复
在Webhook连接失效时, 即使客户端恢复并重新创建 Webhook,系统不会主动丢失的更新推送到客户端。 |
客户可以使用 追箱易查询接口 来检索所有货物以维护他们的数据,但无法提供丢失的事件历史记录。 |
安全性
在互联网上公开接收端点可能会容易受到攻击,因此强烈建议采取安全措施。
建议您将我们的服务器 IP 地址列入白名单,同时拒绝所有外部请求,以防止潜在的有害威胁或对您服务器的不当访问。如果您已对我们的 IP 段应用此网络安全策略, 请通过 customerservices@iqax.com 与我们联系。 |
Webhook 创建需要一个 HTTPS 回调端点,这样做是为了防止整个网络通道中的信息泄漏。 |
完整性验证
由于客户端暴露在互联网上,恶意调用可能会到达客户端的服务器,附加在 Webhook 回调的 X-DHST-Signature 和 X-DHST-Signature-256 标头中的密钥,可用于确保调用者的身份,有效载荷的完整性并防止重放攻击。
例子:
1 | 客户端服务器在注册的 URI 处收到带有标头 X-DHST-Signature-256 的 webhook POST 请求:4F89C033B5EE1A094B6F16B5F315FE7CE180FD1512D9AB031848472E150095C0 |
2 | 客户端服务器以前使用密钥(来自 /webhook/shipment APIs 的秘密字段)订阅 webhook:api_token |
3 | 客户端服务器必须验证标头中的 DHST-Signature-256 是否应与加密密钥相同,否则极有可能收到恶意请求。 |
4 | https://en.wikipedia.org/wiki/SHA-2 有关于加密原理的介绍。 |
支持的运营商
和易孚追箱易支持以下的海运承运人,您还需要在注册货件进行跟踪时提供 carrierScac
您可以查阅我们 支持的运营商名单。如非特别注明,基本上都支持以提单号或订舱号注册货件
如果您发现任何对您的业务很重要但尚未得到支持的运营商,我们可以根据您的使用案例推荐其他不同的选项。请通过 customerservices@iqax.com 与我们联系 |
Ocean Carrier | SCAC code | BL Registration | BKG Registration |
---|---|---|---|
ANL Container Line 澳航 |
ANNU |
✓ |
✓ |
CK Line 天敬海运 |
CKLU |
✓ |
✓ |
CMA-CGM 法国达飞 |
CMDU |
✓ |
✓ |
CNC Line 正利 |
CHNL |
✓ |
✓ |
COSCO SHIPPING Lines 中远海 |
COSU |
✓ |
✓ |
Evergreen 长荣海运 |
EGLV |
✓ |
✓ |
Gold Star Line 金星 |
GOSU |
✓ |
✕ |
Hamburg Sud 汉堡南美 |
SUDU |
✓ |
✓ |
Hapag-Lloyd 赫伯罗特 |
HLCU |
✓ |
✓ |
Heung-a 兴亚 |
11QU |
✓ |
✓ |
Hyundai 现代 |
HDMU |
✓ |
✓ |
Interasia Lines 运达 |
12AT |
✓ |
✕ |
KMTC 高丽 |
KMTC |
✓ |
✓ |
Maersk 马士基 |
MAEU |
✓ |
✕ |
MCC MCC运输 |
MCCQ |
✓ |
✕ |
MSC 地中海航运 |
MSCU |
✓ |
✓ |
Namsung 南星海运 |
NSRU |
✓ |
✓ |
Ocean Network Express 海洋网联 |
ONEY |
✓ |
✓ |
OOCL 东方海外 |
OOLU |
✓ |
✓ |
PIL 太平 |
PABV |
✓ |
✓ |
Sealand 海领 |
SEAU |
✓ |
✕ |
Shanghai Jinjiang 锦江 |
11WJ |
✓ |
✕ |
Sinokor 长锦 |
SKLU |
✓ |
✕ |
Sinotrans 中外运 |
12IH |
✓ (Container# is required) |
✕ |
SITC 海丰 |
12PD |
✓ |
✕ |
Swire Shipping 太古船务 |
CHVW |
✓ |
✓ |
TS Line 德祥 |
13DF |
✓ |
✕ |
Wan Hai 万海 |
WHLC |
✓ |
✓ |
Yang Ming Line 阳明 |
YMJA |
✓ |
✓ |
Zim Lines 以星 |
ZIMU |
✓ |
✓ |
集装箱动态
Event Model:
Event Code | Description |
---|---|
MTY_PICKUP |
Empty Container Picked Up 提空箱 |
CNTR_RCVD |
Full container Received by Carrier 进场 |
CNTR_DEPARTURE |
Container Depart from Facility 离开 |
CNTR_ARRIVAL |
Container Arrive at Facility 到达 |
VSL_DEPARTURE |
Vessel Departure 离港 |
VSL_ARRIVAL |
Vessel Arrival 抵港 |
CNTR_DISCHARGE |
Discharged from Vessel 卸船 |
CNTR_PICKUP |
Container to Consignee 提货 |
CNTR_LOAD |
Loaded on Board 装船 |
CNTR_LOAD_ON_TRUCK |
Loaded on Truck 卡車装货 |
CNTR_LOAD_ON_RAIL |
Loaded on Rail 铁运装箱 |
CNTR_LOAD_ON_BARGE |
Loaded on Barge 駁船装货 |
CNTR_LOAD_ON_FEEDER |
Loaded on Feeder 支線装货 |
CNTR_DISCHARGE_FROM_TRUCK |
Container Discharged from Truck 卡車卸箱 |
CNTR_DISCHARGE_FROM_RAIL |
Container Discharged from Rail 铁运卸箱 |
CNTR_DISCHARGE_FROM_BARGE |
Container Discharged from Barge 駁船卸箱 |
CNTR_DISCHARGE_FROM_FEEDER |
Container Discharged from Feeder 支線卸箱 |
MTY_RETURN |
Empty Container Return to Depot 还空 |
默认情况下,和易孚追箱易将提供"整合版" , 同时提供选项来过滤特定版本以满足您的需要。
版本 | 定义 | 版本参数 | 推荐使用场景 |
---|---|---|---|
整合版 |
结合承运人的路线和使用机器学习模型分析的ETA(包括预测 ETA)以及从 AIS 检测到的 ATA |
UNI |
需要最新的跟踪数据 |
标准版 |
只结合承运人的动态及船期 |
STD |
仅需要承运人提供的数据 |
进阶版 |
结合跨承运人船舶时间表以及机器学习的建议 |
ADV |
需要 ML 模型建议的路线和预计到达时间 |
默认 |
返回整合版 |
留空 |
选择 标准版 和 进阶版 的案例:
考虑以下场景:
1 | 承运人的网站上正显示该集装箱从 Rotterdam 通过 CMA CGM VASCO DE GAMA 直航运送到 Al' Aqabah |
2 | 数字孪生考虑跨运营商的船期和实况船舶位置,它检测到 CMA CGM VASCO DE GAMA 将跳过Al' Aqabah。这表明该集装箱将前往 Jeddah 中转,并将转乘 COSCO SHIPPING KILIMANJARO 到目的地 |
标准版 | 进阶版 | ||||||
---|---|---|---|---|---|---|---|
|
|
||||||
只包含承运人当前及最新的的运输路线、集装箱里程碑和时间表 |
包含
|