nhanh.v3.0.order.list
POST/v3.0/order/listGọi qua 360: POST https://partner.quantri360.com/v1/nhanh/v3.0/order/list
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.
Mô tả API
Danh sách đơn kèm nội dung đầy đủ (khách, sản phẩm, vận chuyển, trạng thái) — một endpoint cho cả danh sách lẫn chi tiết. Lọc theo updatedAt để đồng bộ thay đổi.
- Kênh bán Facebook / Website / Live do brand phân theo saleChannel / trafficSource — định dạng Đơn hàng chuẩn 360 đã phân sẵn.
Request
Địa chỉ
POST https://partner.quantri360.com/v1/nhanh/v3.0/order/list
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 | 100001 | Gian hàng (lấy ở GET /v1/platforms → shops[].platform_shop_id). BẮT BUỘC khi brand có > 1 gian hàng trên nền tảng; 360 bỏ tham số này trước khi chuyển tiếp. |
Tham số request
| Tên | Vị trí | Kiểu | Bắt buộc | Mẫu | Mô tả |
|---|---|---|---|---|---|
| filters.ids | body | int[] | Không | [123456789] | Lấy đích danh theo id đơn Nhanh. |
| filters.updatedAtFrom | body | int | Không | 1760893200 | Unix giây — đơn cập nhật từ (khuyến nghị). |
| filters.updatedAtTo | body | int | Không | 1760979600 | Unix giây. |
| filters.fromDate | body | string | Không | 19/10/2026 | Ngày tạo từ (dd/mm/yyyy). |
| filters.toDate | body | string | Không | 19/10/2026 | Ngày tạo đến. |
| filters.statuses | body | string[] | Không | ["Success"] | Mã trạng thái Nhanh: New, Confirmed, Packing, Shipping, Success, Returned, Canceled… |
| filters.customerMobile | body | string | Không | 0912345678 | SĐT khách. |
| filters.depotIds | body | int[] | Không | [104486] | Id kho. |
| filters.saleChannels | body | int[] | Không | [2] | Kênh bán Nhanh (1 Admin, 2 Website, 10 API…). |
| paginator.size | body | int | Không | 50 | Số đơn mỗi trang (≤ 100; mặc định 20). |
| paginator.next | body | object | Không | {"id": 123456789} | Object paginator.next của trang trước; bỏ ở trang đầu. |
| dataOptions.marketing | body | int | Không | 1 | 1 để kèm nguồn đơn / khuyến mãi. |
Phân trang
Lặp khi phản hồi có paginator.next; gửi lại nguyên object đó. KHÔNG gửi paginator.sort (Nhanh trả lỗi "Không hỗ trợ sort").
Ví dụ request
curl -s -X POST "https://partner.quantri360.com/v1/nhanh/v3.0/order/list" \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d '{"filters":{"updatedAtFrom":1760893200,"updatedAtTo":1760979600},"paginator":{"size":50},"dataOptions":{"marketing":1}}'
Python
import requests
KEY = "q360_live_..." # khóa API của brand
r = requests.post(
"https://partner.quantri360.com/v1/nhanh/v3.0/order/list",
params={},
json={
"filters": {
"updatedAtFrom": 1760893200,
"updatedAtTo": 1760979600
},
"paginator": {
"size": 50
},
"dataOptions": {
"marketing": 1
}
},
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/nhanh/v3.0/order/list');
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({"filters":{"updatedAtFrom":1760893200,"updatedAtTo":1760979600},"paginator":{"size":50},"dataOptions":{"marketing":1}}),
});
console.log(r.status, await r.json());PHP
<?php
$key = 'q360_live_...'; // khóa API của brand
$url = 'https://partner.quantri360.com/v1/nhanh/v3.0/order/list' . '?' . 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, '{"filters":{"updatedAtFrom":1760893200,"updatedAtTo":1760979600},"paginator":{"size":50},"dataOptions":{"marketing":1}}');
$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 Nhanh.vn)
| Tên | Kiểu | Mẫu | Mô tả |
|---|---|---|---|
| code | int | 1 | 1 = thành công; 0 = lỗi (xem messages). |
| messages | string[] | [] | Thông điệp lỗi của Nhanh. |
| data | object[] | Dữ liệu. | |
| info | object | Thông tin đơn. | |
| id | int | 123456789 | |
| code | string | DH001 | Mã đơn hiển thị. |
| status | string | Success | |
| createdAt | int | 1760893200 | |
| updatedAt | int | 1760979600 | |
| saleChannel | int | 2 | |
| trafficSource | string | Nguồn đơn (khi dataOptions.marketing=1). | |
| depotId | int | ||
| customer | object | ||
| id | int | ||
| name | string | ||
| mobile | string | ||
| address | string | ||
| cityId | int | ||
| districtId | int | ||
| wardId | int | ||
| products | object[] | Dòng hàng. | |
| id | int | ||
| code | string | 1R08.2503OG-MS-XL | SKU. |
| name | string | ||
| quantity | int | ||
| price | float | ||
| discount | float | ||
| shipping | object | ||
| carrierName | string | ||
| trackingCode | string | ||
| shipFee | float | Phí báo giá — chỉ thật khi đã gửi ĐVVC. | |
| payment | object | ||
| total | float | ||
| customerShipFee | float | ||
| moneyTransfer | float | ||
| paginator | object | Phân trang. | |
| next | object | {"id": 123456700} | Gửi lại ở request kế; không có = hết. |
| size | int | 50 |
Mẫu phản hồi
{
"code": 1,
"paginator": {
"next": "Dùng để lấy dữ liệu trang tiếp theo"
},
"data": [
{
"info": {},
"channel": {},
"shippingAddress": {},
"products": [],
"carrier": {},
"payment": {},
"gifts": []
}
]
}
Bắt đầu dùng
- Đăng ký tài khoản Partner
- Mở loại dữ liệu thuộc nhóm Đơn hàng ở trang nền tảng
- Tạo API key (tick kênh Nhanh.vn)
- Gọi theo ví dụ ở trên