Skip to main content

API tính phí đơn hàng + thời gian dự kiến giao

API dùng để thực hiện tính tính phí đơn hàng và thời gian dự kiến giao liên quan tới đơn hàng dựa trên các thông tin như địa chỉ lấy hàng, địa chỉ giao, cân nặng...

Request

Đường dẫn

POST /api/v1/shipping-calculate

Headers

Authorization: Bearer {JWT}
X-Client-Source: {PARTNER_CODE}
Content-Type: application/json
curl --location --globoff '{{url}}/api/v1/shipping-calculate' \
--header 'Authorization: Bearer Bearer {{token}}' \
--header 'X-Client-Source: mwg' \
--header 'Content-Type: application/json' \
--data '[
{
"partner_id": "MWG_ORDER_1",
"items": [
{
"name": "Áo thun",
"price": 200000,
"weight": 0.8,
"height": 50,
"length": 50,
"width": 50,
"quantity": 2,
"code": "TSHIRT001"
},
{
"name": "Quần jeans",
"price": 400000,
"weight": 0.8,
"quantity": 1,
"height": 50,
"length": 50,
"width": 50,
"code": "JEANS123"
}
],
"service_type": [
1,
2
],
"pickup": {
"address_id": 1,
"last_update": "2025-15-08 17:00:00",
"address": "Số 10 đường Phù Đổng Thiên Vương",
"province": "Bắc Ninh",
"ward": "kinh bắc"
},
"delivery": {
"address_id": 2,
"last_update": "2025-15-08 17:00:00",
"address": "Số 304 đường Phù Đổng Thiên Vương",
"province": "Bắc Ninh",
"ward": "kinh bắc"
},
"order_time": "2025-10-20 10:00:00"
},
{
"partner_id": "MWG_ORDER_2",
"items": [
{
"name": "Áo thun",
"price": 200000,
"weight": 0.8,
"height": 50,
"length": 50,
"width": 50,
"quantity": 2,
"code": "TSHIRT001"
},
{
"name": "Quần jeans",
"price": 400000,
"weight": 0.8,
"quantity": 1,
"height": 50,
"length": 50,
"width": 50,
"code": "JEANS123"
}
],
"service_type": [
1,
2,
3
],
"pickup": {
"address_id": 1,
"last_update": "2025-15-08 17:00:00",
"address": "Số 10 đường Phù Đổng Thiên Vương",
"province": "Bắc Ninh",
"ward": "kinh bắc"
},
"delivery": {
"address_id": 2,
"last_update": "2025-15-08 17:00:00",
"address": "Số 304 đường Phù Đổng Thiên Vương",
"province": "Bắc Ninh",
"ward": "kinh bắc"
},
"order_time": "2025-10-20 10:00:00"
}
]'

Tham số

Tham sốBắt buộcKiểu dữ liệuMô tả
partner_idNostringTracking id của đối tác (Bắt cuộc nếu trong màn checkout)
pickupyesobjectThông tin điểm lấy hàng
deliveryyesobjectThông tin điểm giao hàng
service_typeyesarrayLoại dịch vụ (1: Giao hỏa tốc / 2: Giao nhanh/ 3: Giao tiêu chuẩn)
itemsyesobjectThông tin sản phẩm

Tham số pickup - Thông tin điểm lấy hàng

Tham sốBắt buộcKiểu dữ liệuMô tả
address_idYesintegerID địa điểm lấy hàng từ trang quản lý của khách hàng (ưu tiên nếu có)
last_updateYesStringThời gian cuối cùng update địa chỉ (yyyy-MM-dd HH:mm:ss)
addressyesstringĐịa chỉ chi tiết lấy hàng
provinceyesstringTỉnh/thành phố nơi lấy hàng hóa
wardyesstringPhường/xã nơi lấy hàng (tùy chọn)

Tham số delivery - Thông tin điểm giao hàng

Tham sốBắt buộcKiểu dữ liệuMô tả
address_idYesintegerID địa điểm lấy hàng từ trang quản lý của khách hàng (ưu tiên nếu có)
last_updateYesStringThời gian cuối cùng update địa chỉ (yyyy-MM-dd HH:mm:ss)
addressyesstringĐịa chỉ chi tiết của người nhận hàng
provinceyesstringTỉnh/thành phố của người nhận hàng hóa
wardyesstringPhường/xã của người nhận hàng hóa (tùy chọn)

Tham số items - Thông tin sản phẩm

Tham sốBắt buộcKiểu dữ liệuMô tả
nameyesstringTên hàng hóa
pricenointegerGiá trị hàng hóa
weightyesfloatKhối lượng hàng hóa (kg)
quantityyesintegerSố lượng hàng hóa
codeyesstringMã sản phẩm

Phản hồi

Các thông tin trả về

Tham sốMô tả
data[i].partner_idString - Tracking id của đối tác
data[i].txidString - tracing id trả về
data[i].services[j].fee.idInteger - Id gói phí áp dụng
data[i].services[j].fee.valInteger - Phí áp dụng tính theo VNĐ
data[i].services[j].leadtime.order_timeString - Thời gian khách đặt hàng (yyyy-MM-dd HH:mm:ss)
data[i].services[j].leadtime.min_preparation_timeString - Thời gian min người bán chuẩn bị xong hàng (yyyy-MM-dd HH:mm:ss)
data[i].services[j].leadtime.max_preparation_timeString - Thời gian max người bán chuẩn bị xong hàng (yyyy-MM-dd HH:mm:ss)
data[i].services[j].leadtime.min_pickup_timeString - Thời gian min đơn vị vận chuyển (ĐVVC) lấy hàng (yyyy-MM-dd HH:mm:ss)
data[i].services[j].leadtime.max_pickup_timeString - Thời gian max đơn vị vận chuyển (ĐVVC) lấy hàng (yyyy-MM-dd HH:mm:ss)
data[i].services[j].leadtime.min_scheduled_timeString - Thời gian min hẹn khách (yyyy-MM-dd HH:mm:ss)
data[i].services[j].leadtime.max_scheduled_timeString - Thời gian max hẹn khách (yyyy-MM-dd HH:mm:ss)
data[i].services[j].leadtime.min_delivery_timeString - Thời gian giao hàng sớm nhất trong ngày (yyyy-MM-dd HH:mm:ss)
data[i].services[j].leadtime.max_delivery_timeString - Thời gian giao hàng muộn nhất trong ngày (yyyy-MM-dd HH:mm:ss)
data[i].services[j].leadtime.min_return_timeString - Thời gian min đơn vị vận chuyển (ĐVVC) hoàn hàng (yyyy-MM-dd HH:mm:ss)
data[i].services[j].leadtime.max_return_timeString - Thời gian max đơn vị vận chuyển (ĐVVC) hoàn hàng (yyyy-MM-dd HH:mm:ss)

Thành công

{
"status": 200,
"message": "Lấy thông tin thành công",
"data": [
{
"partner_id": "MGW_ORDER_1",
"txid": "GHTK_TRACING_ID_1",
"services": [
{
"service_type": 1,
"leadtime": {
"order_time": "2025-08-08 06:00:00",
"min_preparation_time": "2025-08-08 08:00:00",
"max_preparation_time": "2025-08-08 08:00:00",
"min_pickup_time": "2025-08-08 08:30:00",
"max_pickup_time": "2025-08-08 08:30:00",
"min_scheduled_time": "2025-08-08 10:00:00",
"max_scheduled_time": "2025-08-08 10:00:00",
"min_delivery_time": "2025-08-08 14:00:00",
"max_delivery_time": "2025-08-08 16:00:00",
"min_return_time": "2025-15-08 17:00:00",
"max_return_time": "2025-15-08 17:00:00"
},
"fee": {
"id": 123123,
"val": 30400
}
},
{
"service_type": 2,
"leadtime": {
"order_time": "2025-08-08 06:00:00",
"min_preparation_time": "2025-08-08 08:00:00",
"max_preparation_time": "2025-08-08 08:00:00",
"min_pickup_time": "2025-08-08 08:30:00",
"max_pickup_time": "2025-08-08 08:30:00",
"min_scheduled_time": "2025-08-08 10:00:00",
"max_scheduled_time": "2025-08-08 10:00:00",
"min_delivery_time": "2025-08-08 14:00:00",
"max_delivery_time": "2025-08-08 16:00:00",
"min_return_time": "2025-15-08 17:00:00",
"max_return_time": "2025-15-08 17:00:00"
},
"fee": {
"id": 123123,
"val": 30400
}
}
]
},
{
"partner_id": "MGW_ORDER_2",
"txid": "GHTK_TRACING_ID_2",
"services": [
{
"service_type": 1,
"leadtime": {
"order_time": "2025-08-08 06:00:00",
"min_preparation_time": "2025-08-08 08:00:00",
"max_preparation_time": "2025-08-08 08:00:00",
"min_pickup_time": "2025-08-08 08:30:00",
"max_pickup_time": "2025-08-08 08:30:00",
"min_scheduled_time": "2025-08-08 10:00:00",
"max_scheduled_time": "2025-08-08 10:00:00",
"min_delivery_time": "2025-08-08 14:00:00",
"max_delivery_time": "2025-08-08 16:00:00",
"min_return_time": "2025-15-08 17:00:00",
"max_return_time": "2025-15-08 17:00:00"
},
"fee": {
"id": 123123,
"val": 30400
}
},
{
"service_type": 2,
"leadtime": {
"order_time": "2025-08-08 06:00:00",
"min_preparation_time": "2025-08-08 08:00:00",
"max_preparation_time": "2025-08-08 08:00:00",
"min_pickup_time": "2025-08-08 08:30:00",
"max_pickup_time": "2025-08-08 08:30:00",
"min_scheduled_time": "2025-08-08 10:00:00",
"max_scheduled_time": "2025-08-08 10:00:00",
"min_delivery_time": "2025-08-08 14:00:00",
"max_delivery_time": "2025-08-08 16:00:00",
"min_return_time": "2025-15-08 17:00:00",
"max_return_time": "2025-15-08 17:00:00"
},
"fee": {
"id": 123123,
"val": 30400
}
}
]
}
],
"timestamp": "2025-10-10T15:36:56.794Z"
}

Không thành công

Danh sách mã lỗi:

HTTP CodeError CodeError MessageDescription
2002020103Không phân tích được địa chỉParse địa chỉ bị lỗi. Thông tin data[n].services trả về null.
2002020104Địa chỉ lấy hàng không hợp lệTrường thông tin packages[n].pickup truyền lên bị thiếu. Thông tin data[n].services trả về null.
2002020105Địa chỉ giao hàng không hợp lệTrường thông tin packages[n].delivery truyền lên bị thiếu. Thông tin data[n].services trả về null.
2002020106Danh sách sản phẩm không hợp lệTrường thông tin packages[n].items truyền lên bị thiếu. Thông tin data[n].services trả về null.
2002020107Danh sách loại dịch vụ không hợp lệTrường thông tin packages[n].service_type truyền lên bị thiếu hoặc không hợp lệ. Thông tin data[n].services trả về null.
2002020108Thời gian đặt hàng không hợp lệTrường thông tin packages[n].order_time truyền lên bị thiếu hoặc không hợp (Format yyyy-MM-dd HH:mm:ss). Thông tin data[n].services trả về null.
info

Trường data[n].error_code chứa thông tin mã lỗi cho đơn nứng với từng loại dịch vụ (Địa chỉ không hợp lệ, danh sách loại dịch vụ không hợp lệ...)

Ví dụ mẫu response lỗi:

{
"status": 200,
"message": "Lấy thông tin thành công",
"data": [
{
"partner_id": "MWG_ORDER_1",
"txid": "GHTK_TRACING_ID_1",
"error_code": 2020104,
"error_message": "Địa chỉ lấy hàng không hợp lệ",
"services": null
},
{
"partner_id": "MWG_ORDER_2",
"txid": "GHTK_TRACING_ID_2",
"services": [
{
"service_type": 1,
"leadtime": null,
"fee": null
},
{
"service_type": 2,
"leadtime": {
"order_time": "2025-10-10 10:00:00",
"min_preparation_time": "2025-10-12 18:30:00",
"max_preparation_time": "2025-10-11 09:45:00",
"min_pickup_time": "2025-10-12 18:30:00",
"max_pickup_time": "2025-10-11 09:45:00",
"min_scheduled_time": "2025-10-10 11:30:00",
"max_scheduled_time": "2025-10-10 11:30:00",
"min_delivery_time": "2025-10-12 20:30:00",
"max_delivery_time": "2025-10-11 13:30:00",
"min_return_time": "2025-10-11 18:30:00",
"max_return_time": "2025-10-13 08:30:00"
},
"fee": {
"id": 125,
"val": 6000
}
},
{
"service_type": 3,
"leadtime": null,
"fee": null
}
]
},
{
"partner_id": "MWG_ORDER_3",
"txid": "GHTK_TRACING_ID_3",
"error_code": 2020103,
"error_message": "Không phân tích được địa chỉ",
"services": null
},
{
"partner_id": "MWG_ORDER_6",
"txid": "GHTK_TRACING_ID_6",
"error_code": 2020106,
"error_message": "Danh sách sản phẩm không hợp lệ",
"services": null
}
],
"timestamp": "2025-10-10T15:36:56.794Z"
}