v2.a5.gen-token
POST/shiip/public-api/v2/a5/gen-tokenGọi qua 360: POST https://partner.quantri360.com/v1/ghn/shiip/public-api/v2/a5/gen-token
Sắp mở. API này đã chạy thật qua 360 và đang được chốt giá — bạn có thể đọc tài liệu và chuẩn bị tích hợp trước.
Endpoint ghi — thay đổi dữ liệu trên GHN. Key phải được tạo với tick "Cho phép gọi API ghi", nếu không sẽ nhận 403 write_not_allowed. Mỗi lần gọi được ghi nhật ký.
Mô tả API
Sinh token in nhãn vận đơn GHN. Gắn token vào trang in của GHN (cùng máy chủ GHN của kết nối): /a5/public-api/printA5?token=… (khổ A5), /a5/public-api/print80x80?token=…, /a5/public-api/print52x70?token=… — mở thẳng trên trình duyệt / máy in, không cần đi qua 360.
- Coi như API GHI (tạo token in trên GHN) — key cần quyền ghi.
- Token in hết hạn sau thời gian ngắn — mỗi lần in sinh token mới.
Request
Địa chỉ
POST https://partner.quantri360.com/v1/ghn/shiip/public-api/v2/a5/gen-token
Xác thực & gian hàng
| Tên | Vị trí | Kiểu | Mẫu | Mô tả |
|---|---|---|---|---|
| Authorization | header | header | Bearer q360_live_ab12cd34_… | Khóa API của brand (tạo ở mục API key). Bắt buộc với mọi request. Brand suy từ key — không truyền mã brand. |
| platform_shop_id | query | string | 196560 | ShopId GHN đã nối (GET /v1/platforms). Mỗi brand một cửa hàng — có thể bỏ. shop_id trong body (vd available-services) phải trùng. |
Tham số request
| Tên | Vị trí | Kiểu | Bắt buộc | Mẫu | Mô tả |
|---|---|---|---|---|---|
| order_codes | body | string[] | Có | ["LADFYR"] | Mã vận đơn cần in (tối đa 10.000). Tất cả hoặc không: một mã sai / không thuộc tài khoản → không tạo token. |
| item_index | body | int[] | Không | Đơn nhiều sản phẩm: vị trí (từ 0) các sản phẩm cần in; mặc định in tất cả. |
Ví dụ request
curl -s -X POST "https://partner.quantri360.com/v1/ghn/shiip/public-api/v2/a5/gen-token" \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d '{"order_codes":["LADFYR"]}'
Python
import requests
KEY = "q360_live_..." # khóa API của brand
r = requests.post(
"https://partner.quantri360.com/v1/ghn/shiip/public-api/v2/a5/gen-token",
params={},
json={
"order_codes": [
"LADFYR"
]
},
headers={"Authorization": f"Bearer {KEY}"},
timeout=60,
)
print(r.status_code)
print(r.json())Node.js
const KEY = 'q360_live_...'; // khóa API của brand
const url = new URL('https://partner.quantri360.com/v1/ghn/shiip/public-api/v2/a5/gen-token');
for (const [k, v] of Object.entries({})) url.searchParams.set(k, typeof v === 'object' ? JSON.stringify(v) : String(v));
const r = await fetch(url, {
method: 'POST',
headers: { Authorization: `Bearer ${KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({"order_codes":["LADFYR"]}),
});
console.log(r.status, await r.json());PHP
<?php
$key = 'q360_live_...'; // khóa API của brand
$url = 'https://partner.quantri360.com/v1/ghn/shiip/public-api/v2/a5/gen-token' . '?' . http_build_query([]);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer ' . $key, 'Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"order_codes":["LADFYR"]}');
$res = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $status, "\n", $res;Response
Tham số phản hồi (nguyên của GHN)
| Tên | Kiểu | Mẫu | Mô tả |
|---|---|---|---|
| code | int | 200 | |
| message | string | Success | |
| data | object | ||
| token | string | 1b744cae-8005-11f1-b50f-ba37616041ec | Token in — có hạn ngắn (khoảng 30 phút), sinh ngay trước khi in, không lưu lại. |
Mẫu phản hồi
{
"code": 200,
"message": "Success",
"data": {
"token": "1b744cae-8005-11f1-…"
}
}
Mã lỗi của GHN (4)
Bấm để xem
| Mã | Ý nghĩa |
|---|---|
| ORDER_NOT_FOUND | 400 — Một mã đơn không tồn tại hoặc không thuộc tài khoản của bạn. Toàn bộ lô bị hủy; không token nào được tạo |
| CLIENT_NOT_OWNER_OF_SHOP | 400 — Một đơn thuộc shop mà tài khoản của bạn không phải thành viên |
| Vượt giới hạn (Not support over 10000 orders) | 400 — Quá 10,000 mã trong một request |
| SERVER_ERROR_COMMON | 500 — Lỗi hệ thống |
Bắt đầu dùng
- Đăng ký tài khoản Partner
- Mở loại dữ liệu thuộc nhóm Vận đơn ở trang nền tảng
- Tạo API key (tick kênh GHN)
- Gọi theo ví dụ ở trên