VI | EN
Nhắn Messenger
Dành cho developer

Danh sách đơn (lọc theo ngày tạo / cập nhật / mã) — API Nhanh.vn

nhanh.v3.0.order.list · gọi qua Quantri360 bằng một API key cho chính tài khoản / tài sản bạn đã kết nối và ủy quyền — 360 lo việc ký request và làm mới phiên đăng nhập bạn đã cấp.

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ênVị tríKiểuMẫuMô tả
AuthorizationheaderheaderBearer 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_idquerystring100001Gian 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ênVị tríKiểuBắt buộcMẫuMô tả
filters.idsbodyint[]Không[123456789]Lấy đích danh theo id đơn Nhanh.
filters.updatedAtFrombodyintKhông1760893200Unix giây — đơn cập nhật từ (khuyến nghị).
filters.updatedAtTobodyintKhông1760979600Unix giây.
filters.fromDatebodystringKhông19/10/2026Ngày tạo từ (dd/mm/yyyy).
filters.toDatebodystringKhông19/10/2026Ngày tạo đến.
filters.statusesbodystring[]Không["Success"]Mã trạng thái Nhanh: New, Confirmed, Packing, Shipping, Success, Returned, Canceled…
filters.customerMobilebodystringKhông0912345678SĐT khách.
filters.depotIdsbodyint[]Không[104486]Id kho.
filters.saleChannelsbodyint[]Không[2]Kênh bán Nhanh (1 Admin, 2 Website, 10 API…).
paginator.sizebodyintKhông50Số đơn mỗi trang (≤ 100; mặc định 20).
paginator.nextbodyobjectKhông{"id": 123456789}Object paginator.next của trang trước; bỏ ở trang đầu.
dataOptions.marketingbodyintKhông11 để 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ênKiểuMẫuMô tả
codeint11 = thành công; 0 = lỗi (xem messages).
messagesstring[][]Thông điệp lỗi của Nhanh.
dataobject[]Dữ liệu.
infoobjectThông tin đơn.
idint123456789
codestringDH001Mã đơn hiển thị.
statusstringSuccess
createdAtint1760893200
updatedAtint1760979600
saleChannelint2
trafficSourcestringNguồn đơn (khi dataOptions.marketing=1).
depotIdint
customerobject
idint
namestring
mobilestring
addressstring
cityIdint
districtIdint
wardIdint
productsobject[]Dòng hàng.
idint
codestring1R08.2503OG-MS-XLSKU.
namestring
quantityint
pricefloat
discountfloat
shippingobject
carrierNamestring
trackingCodestring
shipFeefloatPhí báo giá — chỉ thật khi đã gửi ĐVVC.
paymentobject
totalfloat
customerShipFeefloat
moneyTransferfloat
paginatorobjectPhân trang.
nextobject{"id": 123456700}Gửi lại ở request kế; không có = hết.
sizeint50

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

  1. Đăng ký tài khoản Partner
  2. Mở loại dữ liệu thuộc nhóm Đơn hàng ở trang nền tảng
  3. Tạo API key (tick kênh Nhanh.vn)
  4. Gọi theo ví dụ ở trên