Nhận diện hãng vận chuyển API
Đoán hãng vận chuyển từ mã vận đơn: GHN, GHTK, Viettel Post, VNPost, J&T, SPX, Ninja Van, và UPS, FedEx, DHL, USPS có kiểm tra số kiểm tra.
Gửi mã vận đơn, API trả về hãng vận chuyển có khả năng nhất kèm độ tin cậy, trang tra cứu chính thức và, nếu hãng hỗ trợ, đường dẫn tra cứu trực tiếp. Hãng trong nước: VNPost / EMS (mã UPU S10 kết thúc bằng VN, kiểm tra số kiểm tra), SPX Express (SPXVN…), Giao Hàng Tiết Kiệm (mã S…kèm mã tuyến), Ninja Van, Lazada Logistics, Viettel Post, Giao Hàng Nhanh, J&T Express (12 số bắt đầu bằng 8), BEST Express và Ahamove. Quốc tế: UPS (1Z…, có số kiểm tra), FedEx (12, 15, 18, 22, 32, 34 số kèm số kiểm tra), USPS (IMpb và mã 20 số), DHL Express (mod 7), DHL eCommerce và mã UPU S10 của bưu chính các nước (kèm nước gửi và loại dịch vụ).
Nhiều hãng dùng mã chỉ gồm chữ số với độ dài gần nhau, nên kết quả liệt kê mọi candidates theo độ tin cậy và bật ambiguous khi có hơn một khả năng; số kiểm tra sai làm độ tin cậy giảm còn 0,1. Xử lý hàng loạt tới 100 mã bằng numbers. Định dạng và số kiểm tra quốc tế theo dự án mở tracking_number_data (MIT).
Chỉ nhận diện: API không gọi hệ thống của hãng nên không có trạng thái đơn hàng.
Tham số
| Tên | Vị trí | Kiểu | Bắt buộc | Mặc định | |
|---|---|---|---|---|---|
number | query|body | string | có | Mã vận đơn (bỏ qua dấu cách, gạch nối, tối đa 60 ký tự). Hoặc numbers: mảng tối đa 100 mã. |
Ví dụ
curl "https://apibox.io.vn/v1/tracking-detect?number=EB123456785VN" \
-H "Authorization: Bearer YOUR_API_KEY"const res = await fetch('https://apibox.io.vn/v1/tracking-detect?number=EB123456785VN', {
method: 'GET',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
},
});
const data = await res.json();
console.log(data);import requests
res = requests.get(
"https://apibox.io.vn/v1/tracking-detect?number=EB123456785VN",
headers={"Authorization": "Bearer YOUR_API_KEY"},
timeout=30,
)
print(res.json())<?php
$ch = curl_init('https://apibox.io.vn/v1/tracking-detect?number=EB123456785VN');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY'],
]);
$response = curl_exec($ch);
print_r(json_decode($response, true));Kết quả trả về
{
"input": "EB123456785VN",
"normalized": "EB123456785VN",
"valid_format": true,
"carrier": {
"id": "vnpost",
"name": "VNPost / EMS Việt Nam",
"country": "VN",
"confidence": 0.97,
"check_digit": true,
"tracking_page": "https://www.vnpost.vn/tra-cuu-hanh-trinh/buu-pham",
"tracking_url": "https://www.vnpost.vn/tra-cuu-hanh-trinh/buu-pham?key=EB123456785VN",
"note": "UPU S10 code issued in Vietnam (check digit verified)",
"service": "EMS (express)",
"origin_country": "VN"
},
"candidates": [
"…"
],
"ambiguous": false,
"note": "Detection from the format only: no carrier API is called, so the shipment status is not known."
}
Ứng dụng
- Chuyển câu hỏi "đơn của em tới đâu rồi" của chatbot tới đúng hãng
- Tự điền hãng vận chuyển khi nhân viên dán mã vận đơn
- Kiểm tra mã vận đơn trước khi gửi cho khách
- Tạo link tra cứu trong email xác nhận đơn
Hỏi đáp
API có trả trạng thái đơn hàng không?
Không. API chỉ nhận diện định dạng mã; dùng tracking_url để mở trang tra cứu của hãng.
Sao lại có nhiều kết quả?
Một số hãng trong nước dùng mã toàn chữ số trùng định dạng nhau; mã có số kiểm tra (S10, UPS, FedEx, USPS) được nhận diện với độ tin cậy cao.
Hỗ trợ những hãng quốc tế nào?
UPS, FedEx, USPS, DHL Express, DHL eCommerce và mọi bưu chính dùng mã UPU S10.
API liên quan
Kiểm tra JSON
Kiểm tra cú pháp JSON, báo đúng dòng và cột bị lỗi, và validate dữ liệu theo JSON Schema (draft 4, 7, 2019-09 hoặc 2020-12).
{ }Định dạng JSON
Làm đẹp JSON với thụt lề 0-8 dấu cách hoặc tab, rút gọn (minify) hoặc sắp xếp key theo bảng chữ cái. Báo lỗi cú pháp kèm dòng và cột.
CSVCSV sang JSON
Chuyển CSV thành mảng object JSON theo dòng tiêu đề, tự nhận dấu phân cách, tự chuyển số và boolean, báo lỗi từng dòng.