Shipping Carrier Object Schema
Đối tượng hãng vận chuyển (tài khoản hãng mà shop tự kết nối)
Mỗi Shipping Carrier là một tài khoản hãng vận chuyển mà shop tự kết nối vào Hubport (mô hình "shop dùng tài khoản hãng của mình"). Hubport dùng thông tin kết nối này để báo giá, tạo vận đơn, in nhãn, huỷ và tra cứu hành trình tại hãng.
Tiền COD
Hubport không giữ tiền COD. Hãng vận chuyển thu hộ và đối soát COD trực tiếp với chủ shop; Hubport chỉ lưu và hiển thị số liệu.
JSON Schema
| Trường (Field) | Kiểu (Type) | Mô tả (Description) |
|---|---|---|
company_id | int | ID công ty |
creator_id | int | ID người tạo |
id | int | ID hãng vận chuyển (carrier) |
name | string | Tên hiển thị |
description | string | Mô tả |
status | int | Trạng thái: 1 (Bật), 3 (Tắt) |
display_order | int | Thứ tự hiển thị |
api_type | int | Loại hãng / cổng tích hợp (xem bảng bên dưới) |
api_setting | object | Cấu hình kết nối với hãng. Chỉ trả về khi người gọi có quyền setting.sale, ngược lại là mảng rỗng []. Các trường bí mật luôn được che (xem bên dưới) |
date_created | int | Thời gian tạo (Unix timestamp) |
date_modified | int | Thời gian sửa đổi (Unix timestamp) |
ghn_connection | object | null | Chỉ có ở chi tiết carrier GHN và sau khi kết nối GHN bằng OTP: shop_id, client_id, is_sandbox, phone_masked (SĐT đã che), mode (create | with_shop), date_created. null nếu chưa kết nối OTP |
Giá trị api_type
| Giá trị | Tên (/apitypes) | Hãng |
|---|---|---|
1 | (empty) | Không tích hợp API (shop tự giao / nhập mã vận đơn tay) |
7 | ghtk | Giao Hàng Tiết Kiệm |
9 | jtexpress | J&T Express |
11 | superai | SuperAI (hiện đang ẩn, không tạo mới được) |
13 | be | BeDelivery |
15 | viettelpost | ViettelPost |
17 | ahamove | Ahamove |
19 | ghn | Giao Hàng Nhanh |
Dùng GET /v1/shippingcarriers/apitypes để biết hãng nào đang cho tạo mới (creatable).
Các trường api_setting theo hãng
Khi tạo / sửa carrier, shop gửi api_setting là object với các trường sau (trường không có trong danh sách sẽ bị bỏ khi lưu). Mọi hãng đều có is_sandbox (int, 1 = gọi môi trường thử nghiệm của hãng).
GHN (api_type = 19)
| Trường | Kiểu | Mô tả |
|---|---|---|
connect_mode | string | token (shop dán Token API) hoặc affiliate (kết nối bằng OTP, xem Kết nối GHN bằng OTP). Mặc định token |
token | string | Bí mật. Token API GHN của shop (lấy ở trang quản lý token của GHN). Không cần khi kết nối bằng OTP |
shop_id | int | ShopId GHN. Với kết nối OTP, shop_id luôn lấy theo shop đã xác minh, không sửa tay được |
webhook_token | string | Bí mật. Mã bí mật webhook, chỉ dùng khi shop tự cấu hình webhook trên tài khoản GHN (xem Webhook hãng vận chuyển) |
service_type_id | int | 2 hàng nhẹ, 5 hàng nặng, 0 tự chọn theo cân nặng |
payment_type_id | int | 1 shop trả phí, 2 người nhận trả phí |
required_note | string | Ghi chú xem hàng (mã của GHN, ví dụ KHONGCHOXEMHANG) |
sender_name, sender_phone, sender_address | string | Thông tin người gửi |
sender_province, sender_district, sender_ward | int | ID địa chính Hubport của địa chỉ lấy hàng |
ViettelPost (api_type = 15)
| Trường | Kiểu | Mô tả |
|---|---|---|
api_key | string | Tên đăng nhập tài khoản viettelpost.vn của shop |
api_secret | string | Bí mật. Mật khẩu tài khoản viettelpost.vn. Ở lần dùng đầu, Hubport đổi sang token dài hạn và xoá mật khẩu khỏi cấu hình |
vtp_token | string | Bí mật. Cách khác: dán "token bí mật" tạo trong phần cấu hình tài khoản trên viettelpost.vn (không cần mật khẩu) |
webhook_token | string | Bí mật. Chỉ dùng khi shop tự cấu hình webhook trên tài khoản Partner ViettelPost riêng. Kết nối thông thường để trống |
service_code | string | Mã dịch vụ ViettelPost mặc định |
sender_name, sender_phone, sender_address | string | Thông tin người gửi |
sender_province, sender_district, sender_ward | int | ID địa chính Hubport của địa chỉ lấy hàng |
GHTK (api_type = 7)
| Trường | Kiểu | Mô tả |
|---|---|---|
token | string | Bí mật. API token GHTK của shop |
pick_name, pick_address, pick_tel, pick_email | string | Thông tin điểm lấy hàng |
pick_province, pick_district, pick_ward | int | ID địa chính Hubport của điểm lấy hàng |
J&T Express (api_type = 9)
| Trường | Kiểu | Mô tả |
|---|---|---|
ec_company_id, customer_code, api_account | string | Mã công ty / mã khách hàng / tài khoản API do J&T cấp |
password | string | Bí mật. Mật khẩu API |
private_key | string | Bí mật. Private key do J&T cấp |
sender_phone, sender_address | string | Thông tin người gửi |
sender_province_id, sender_district_id, sender_ward_id | string | Mã địa chính của người gửi |
pay_type, product_type | string | Hình thức thanh toán / loại dịch vụ của J&T |
BeDelivery (api_type = 13)
| Trường | Kiểu | Mô tả |
|---|---|---|
client_id | string | Client ID do BE cấp |
client_secret | string | Bí mật. Client secret |
webhook_auth_token | string | Bí mật. Token xác thực webhook từ BE |
service_type | string | Loại dịch vụ |
enable_bulky, enable_sms, enable_door_to_door | int | Tuỳ chọn dịch vụ (0/1) |
pickup_name, pickup_phone, pickup_address, pickup_lat, pickup_long | string | Điểm lấy hàng |
Ahamove (api_type = 17)
| Trường | Kiểu | Mô tả |
|---|---|---|
api_key | string | Bí mật. API key Ahamove |
mobile | string | SĐT tài khoản Ahamove |
service_id | string | Mã dịch vụ |
payment_method | string | Phương thức thanh toán |
Bảo mật thông tin kết nối
- Các trường đánh dấu Bí mật là chỉ ghi: API không bao giờ trả lại giá trị thật. Trong response, trường bí mật đã có giá trị trả về
"********", chưa có thì trả"". - Khi sửa carrier (cùng
api_type), gửi trường bí mật là""hoặc"********"thì Hubport giữ nguyên giá trị đang lưu. Chỉ gửi giá trị mới khi muốn thay. - Đổi carrier sang
api_typekhác thì thông tin kết nối cũ không được giữ.
Tên trường trong response
api_setting trong response trả về theo khoá lưu trữ của hệ thống: is_sandbox được trả là issandbox; với GHTK các trường pick_* được trả không có dấu gạch dưới (pickname, pickaddress, picktel, pickemail, pickprovince, pickdistrict, pickward). Khi gửi lên vẫn dùng tên trường như bảng ở trên.
Ví dụ JSON
{
"company_id": 1001,
"creator_id": 5,
"id": 12,
"name": "GHN - Kho Hà Nội",
"description": "",
"status": 1,
"display_order": 1,
"api_type": 19,
"date_created": 1760000000,
"date_modified": 1760003600,
"api_setting": {
"issandbox": 0,
"connect_mode": "token",
"token": "********",
"shop_id": 885123,
"webhook_token": "",
"service_type_id": 0,
"payment_type_id": 1,
"required_note": "KHONGCHOXEMHANG",
"sender_name": "Shop Demo",
"sender_phone": "0900000000",
"sender_address": "12 Phố Huế",
"sender_province": 1,
"sender_district": 7,
"sender_ward": 0
}
}