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

Tính cước vận chuyển J&T Express — API J&T Express

spmComCost.getComCost · 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.

spmComCost.getComCost

POST/spmComCost/getComCostGọi qua 360: POST https://partner.quantri360.com/v1/jtexpress/spmComCost/getComCost
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

Tính cước vận chuyển trước khi tạo đơn: tổng cước, phí thu hộ (COD), phí bảo hiểm — theo trọng lượng, kích thước, tuyến lấy → giao.

Request

Địa chỉ

POST https://partner.quantri360.com/v1/jtexpress/spmComCost/getComCost

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_idquerystringTEST001apiAccount J&T đã nối (GET /v1/platforms). Có thể bỏ.

Tham số request

TênVị tríKiểuBắt buộcMẫuMô tả
weightbodynumberCó1Trọng lượng (kg).
productTypebodystringCóEXPRESSLoại dịch vụ — mặc định EXPRESS.
goodsTypebodystringCóbm000010Loại hàng: bm000001 tài liệu · bm000010 hàng hóa · bm000011 hàng tươi sống.
isInsuredbodyintCó01 = mua bảo hiểm (khai giá trị hàng), 0 = không.
goodsValuebodynumberCó200000Giá trị hàng (VND, 0 – 30.000.000). Phí bảo hiểm thường 1% theo hợp đồng; chỉ được bồi thường khi isInsured = 1.
codMoneybodystringKhông200000Tiền thu hộ (VND).
lengthbodystringKhông20Dài (cm, 1 – 320).
widthbodystringKhông15Rộng (cm, 1 – 100).
heightbodystringKhông10Cao (cm, 1 – 180).
selfAddressbodyintKhông00 = dùng kho địa chỉ J&T · 1 = dùng ánh xạ địa giới hành chính của J&T.
sender.provbodystringCóHồ Chí MinhTỉnh / thành.
sender.citybodystringKhôngQuận 1Quận / huyện — địa chỉ hệ mới 2 cấp để trống / null.
sender.areabodystringCóPhường Nguyễn Thái Bình-028QQ107Phường / xã theo kho địa chỉ J&T (tên kèm mã, vd Phường Bến Nghé-028QQ101).
receiver.provbodystringCóHồ Chí MinhTỉnh / thành.
receiver.citybodystringKhôngQuận 1Quận / huyện — địa chỉ hệ mới 2 cấp để trống / null.
receiver.areabodystringCóPhường Nguyễn Thái Bình-028QQ107Phường / xã theo kho địa chỉ J&T (tên kèm mã, vd Phường Bến Nghé-028QQ101).
senderbodystringCóBắt buộc.
receiverbodystringCóBắt buộc.

Ví dụ request

curl -s -X POST "https://partner.quantri360.com/v1/jtexpress/spmComCost/getComCost" \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{"weight":1,"productType":"EXPRESS","goodsType":"bm000010","isInsured":0,"goodsValue":200000,"codMoney":"200000","sender":{"prov":"Hồ Chí Minh","city":"Quận 1","area":"Phường Bến Nghé-028QQ101"},"receiver":{"prov":"Hà Nội","city":"Huyện Mê Linh","area":"Thị trấn Chi Đông-024HML01"}}'
Python
import requests

KEY = "q360_live_..."  # khóa API của brand
r = requests.post(
    "https://partner.quantri360.com/v1/jtexpress/spmComCost/getComCost",
    params={},
    json={
        "weight": 1,
        "productType": "EXPRESS",
        "goodsType": "bm000010",
        "isInsured": 0,
        "goodsValue": 200000,
        "codMoney": "200000",
        "sender": {
            "prov": "Hồ Chí Minh",
            "city": "Quận 1",
            "area": "Phường Bến Nghé-028QQ101"
        },
        "receiver": {
            "prov": "Hà Nội",
            "city": "Huyện Mê Linh",
            "area": "Thị trấn Chi Đông-024HML01"
        }
    },
    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/jtexpress/spmComCost/getComCost');
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({"weight":1,"productType":"EXPRESS","goodsType":"bm000010","isInsured":0,"goodsValue":200000,"codMoney":"200000","sender":{"prov":"Hồ Chí Minh","city":"Quận 1","area":"Phường Bến Nghé-028QQ101"},"receiver":{"prov":"Hà Nội","city":"Huyện Mê Linh","area":"Thị trấn Chi Đông-024HML01"}}),
});
console.log(r.status, await r.json());
PHP
<?php
$key = 'q360_live_...'; // khóa API của brand
$url = 'https://partner.quantri360.com/v1/jtexpress/spmComCost/getComCost' . '?' . 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, '{"weight":1,"productType":"EXPRESS","goodsType":"bm000010","isInsured":0,"goodsValue":200000,"codMoney":"200000","sender":{"prov":"Hồ Chí Minh","city":"Quận 1","area":"Phường Bến Nghé-028QQ101"},"receiver":{"prov":"Hà Nội","city":"Huyện Mê Linh","area":"Thị trấn Chi Đông-024HML01"}}');
$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 J&T Express)

TênKiểuMẫuMô tả
codestring1`"1"` = thành công; mã khác = lỗi, xem `msg` (J&T trả HTTP 200 kèm mã lỗi).
msgstringsuccessThông báo kết quả.
dataobjectDữ liệu.
pricestringTổng cước (VND).
codfeestringPhí thu hộ (VND).
insurancefeestringPhí bảo hiểm (VND).

Bắt đầu dùng

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