Vận chuyển
In nhãn vận đơn
Lấy file/link in nhãn cho nhiều vận đơn cùng một carrier
Endpoint
POST /v1/shippingbillgateways/printlabel
Quyền:
inventory.dispatchprocess
In nhãn theo lô (tối đa 100 vận đơn), tất cả vận đơn phải cùng một carrier và đã có mã vận đơn.
Hãng và khổ giấy hỗ trợ
- GHN:
A5,80x80,52x70. Link in sống khoảng 30 phút. - ViettelPost:
A5,A6,A7. Link in sống khoảng 24 giờ. - Các hãng khác:
error_not_supported.
Request Body
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
company_id | int | Có | ID công ty |
shipping_bill_ids | array<int> | Có | Danh sách ID vận đơn (tối đa 100) |
size | string | Không | Khổ nhãn: A5 (mặc định), A6, A7, 80x80, 52x70 |
Response Schema
HTTP 200 - JSON Object
| Trường | Kiểu | Mô tả |
|---|---|---|
carrier_id | int | ID carrier |
api_type | int | Loại hãng |
url | string | Link in của hãng (HTML/PDF). Rỗng nếu trả nội dung file |
content_type | string | application/pdf, text/html hoặc rỗng |
content_base64 | string | Nội dung file (base64) nếu hãng trả file thay vì link |
expires_at | int | Thời điểm link hết hạn (Unix timestamp, 0 = không rõ) |
failed | object | Vận đơn hãng từ chối in: { "<shipping_bill_id>": "<lỗi>" } |
{
"carrier_id": 12,
"api_type": 19,
"url": "https://.../a5?token=...",
"content_type": "text/html",
"content_base64": "",
"expires_at": 1760001800,
"failed": {}
}Error Codes
| Mã lỗi | Mô tả |
|---|---|
error_shipping_bill_ids_required | Thiếu shipping_bill_ids (HTTP 422) |
error_shipping_bill_ids_too_many | Quá 100 vận đơn (HTTP 422) |
error_label_size_invalid | size không thuộc danh sách (HTTP 422) |
error_label_size_not_supported | Hãng không hỗ trợ khổ này (HTTP 422) |
error_shipping_bill_notfound (ID #...) | Vận đơn không tồn tại hoặc không thuộc công ty (HTTP 422) |
error_shipping_bills_carrier_mismatch | Các vận đơn không cùng carrier (HTTP 422) |
error_tracking_code_required (ID #...) | Vận đơn chưa có mã vận đơn (HTTP 422) |
error_shipping_carrier_notfound | Carrier không tồn tại / khác công ty (HTTP 422) |
error_not_supported | Hãng chưa hỗ trợ in nhãn qua API (HTTP 422) |
error_print_label_failed | Hãng không trả được nhãn (HTTP 422) |
error_role_not_available | Không có quyền inventory.dispatchprocess (HTTP 403) |