iTrack.ing 物流查詢系統 API

提供物流單號註冊、背景貨態更新、即時查詢與狀態變更 callback 通知。API 使用 HTTP GET 傳入參數,回應格式為 JSON。

版本 1.0 Base URL: https://itrack.ing/ Content-Type: application/json

服務流程

1. 註冊物流單號 呼叫 regLogisticsID,系統會驗證 API Key 並將單號加入待追蹤清單。
2. 背景更新貨態 排程程式會定期查詢物流商網站,更新 tracking_datadonerefund
3. 查詢或接收通知 可主動呼叫 queryLogistics 查詢,也可在註冊時提供 notifyURL 接收狀態通知。

認證方式

所有 API 都需要提供 API Key。建議使用 Authorization: Bearer YOUR_API_KEY header;為了相容舊版串接,也仍支援 APIKEY query string。API Key 由系統管理者建立使用者時產生,系統會依使用者狀態與使用量限制判斷是否允許呼叫。

參數 位置 必填 說明
Authorization HTTP Header 建議 格式為 Bearer YOUR_API_KEY
APIKEY Query String 相容舊版 用戶 API 金鑰。無效、停用或超過使用量會回傳錯誤。

支援物流方式

method 物流商 單號格式參考 說明
7-11 7-11 交貨便 常見為英文字母開頭加數字,例如 T01434848391 背景查詢會處理驗證碼並解析貨態歷程。
hct 新竹物流 常見為 10 碼數字,例如 7160691856 背景查詢會處理驗證碼與二階段查詢頁。

目前公開 API 文件列出正式排程會處理的物流方式。若未來開放其他物流商,只要擴充 method 與背景掃描排程即可沿用相同回應格式。

API 1: 註冊物流單號

GET /?sub=regLogisticsID

將物流單號加入追蹤清單。若同一使用者已註冊同一筆單號,會回傳成功並提示已註冊;若該單號已被其他使用者註冊,會回傳錯誤。

Request Parameters

參數 必填 型別 說明
sub string 固定為 regLogisticsID
logisticsID string 物流單號。
method string 物流方式,目前公開支援 7-11hct
notifyURL string 狀態變更時接收 callback 的 HTTPS URL。只允許標準 443 port,且不可指向內網、localhost 或保留 IP。
APIKEY string 用戶 API 金鑰。

Example Request

https://itrack.ing/?sub=regLogisticsID&logisticsID=T01434848391&method=7-11&notifyURL=https%3A%2F%2Fexample.com%2Fcallback&APIKEY=YOUR_API_KEY

Success Response

{
    "success": true,
    "message": "成功註冊物流單號",
    "data": {
        "logisticsID": "T01434848391",
        "method": "7-11",
        "create_time": "2026-05-11 15:20:00"
    }
}

Already Registered Response

{
    "success": true,
    "message": "該物流單號已註冊",
    "data": {
        "logisticsID": "T01434848391",
        "method": "7-11",
        "create_time": "2026-05-11 15:20:00"
    }
}

API 2: 查詢物流狀態

GET /?sub=queryLogistics

查詢已註冊物流單號的最新追蹤資料。只能查詢同一 API Key 所屬使用者註冊的單號。

Request Parameters

參數 必填 型別 說明
sub string 固定為 queryLogistics
logisticsID string 物流單號。
APIKEY string 用戶 API 金鑰。

Example Request

https://itrack.ing/?sub=queryLogistics&logisticsID=T01434848391&APIKEY=YOUR_API_KEY

Success Response

{
    "success": true,
    "logisticsID": "T01434848391",
    "method": "7-11",
    "data": [
        {
            "time": "2026/05/11 14:10",
            "status": "包裹配達取件門市"
        },
        {
            "time": "2026/05/10 18:42",
            "status": "配送中"
        }
    ],
    "last_update_time": "2026/05/11 14:10",
    "done": false,
    "refund": false,
    "create_time": "2026-05-11 12:00:00",
    "update_time": "2026-05-11 15:00:00"
}

Response Fields

欄位 型別 說明
success boolean 是否成功。
logisticsID string 物流單號。
method string 物流方式。
data array 物流歷程,通常最新狀態在第一筆。
last_update_time string|null 最新物流狀態時間;尚未完成背景查詢時可能為 null
done boolean 是否已完成取貨或配送。
refund boolean 是否判定為退貨或退件。
create_time string 註冊時間。
update_time string 最後一次資料更新時間。

Callback 通知

註冊物流單號時若提供 notifyURL,當背景掃描發現最新貨態、完成狀態或退貨狀態改變時,系統會以 HTTP POST 傳送 JSON 到該 URL。

Request Headers

Content-Type: application/json
X-Logistics-Notification: true

Callback Payload

{
    "Status": "SUCCESS",
    "Message": "貨態狀態處理成功(32)",
    "MerID": "",
    "ShipTradeNo": "T01434848391",
    "LgsType": "C2C",
    "GoodsType": 1,
    "ShipStatus": 32,
    "ShipStatusDesc": "包裹配達取件門市",
    "ShipStatusTime": "2026-05-11 14:10:00",
    "ApiType": "ShipStatus",
    "Partnerid": "",
    "ShipType": 1
}

Callback 成功條件

接收端需要回傳 HTTP 200,且 response body 內容為 OK。若失敗,系統會記錄失敗狀態,最多重試 5 次;重試通知會帶上 retry: 1

常見 ShipStatus

代碼 說明
91 未處理或尚未判定。
21 待出貨或物流商已收件。
22 物流驗收或送達物流中心。
31 配送中。
32 待取貨。
11 已取貨或已送達。
51 一般退貨。
53 廠退或退件。

錯誤回應

API 錯誤會以 JSON 回傳 error 欄位。

{
    "error": "無效的 API Key"
}
錯誤訊息 可能原因
缺少必要參數 未帶入必要 query string。
資料庫連線失敗 MongoDB 無法連線或認證失敗。
無效的 API Key API Key 不存在。
用戶帳號已被停用 使用者狀態不是 active
API 使用次數已達上限 用戶 API 使用量已達限制。
該物流單號已被其他用戶註冊 相同物流單號與物流方式已被其他使用者建立。
找不到該物流單號或無權限查詢 單號不存在,或不屬於該 API Key 的使用者。

串接範例

PHP

$url = 'https://itrack.ing/?' . http_build_query([
    'sub' => 'queryLogistics',
    'logisticsID' => 'T01434848391',
]);

$context = stream_context_create([
    'http' => [
        'header' => "Authorization: Bearer YOUR_API_KEY\r\n"
    ]
]);

$response = file_get_contents($url, false, $context);
$data = json_decode($response, true);

curl

curl -H 'Authorization: Bearer YOUR_API_KEY' 'https://itrack.ing/?sub=queryLogistics&logisticsID=T01434848391'