Download OpenAPI specification:Download
Welcome to the TNH API! You can use our API to access TNH API endpoints, which can get information on various trackings, businesses and payments in our database.
We have language bindings in HTTP and you can view code examples in the dark area to the right.
As you scroll, you'll see code examples for working with the API in different programming languages in the dark area to the right (or as part of the content on mobile). You can switch the language used with the tabs at the top right (or from the nav menu at the top left on mobile).
The portal provides documentation for the following APIs and services:
All TNH APIs are RESTful APIs.
https://gateway.tnhlog.vnhttps://stg-apigw.tnhlog.vnIn order to provide a high-quality of service for all customers, our API is rate limited.
If the rate limit is exceeded, the API responds with an HTTP 400 API rate limit exceeded status code, and you get temporarily blocked from accessing the API.
In this case, retry your request after a few hours.
Returns a new Bearer access token.
To make requests to this endpoint, you need to have the Email and Password. You can obtain by registration new account here:
Your implementation must adhere to this flow:
Authorization HTTP header, the value must be Bearer <INSERT ACCESS TOKEN>.| email required | string (Email) |
| password required | string (Password) |
{- "email": "string",
- "password": "string"
}{- "success": true,
- "access_token": "37|fzN5sMtrRKmy4VSXK1jwJqbnkttCsJ3aJFwfA8mp"
}{- "id": "SEL00004793",
- "name": "Nguyen van A",
- "phone": "090000000",
- "email": "[email protected]"
}The purpose of the Package API is to create delivery orders, generate awb, and cancel orders...
| Authorization required | any Your Bearer token. |
[- {
- "code": "PKG2210897312",
- "package_code": "PKG10897312",
- "tracking_number": "LMP0170517004VNA",
- "cod": 7000000,
- "weight": 10,
- "size_l": 20,
- "size_h": 30,
- "size_w": 30,
- "product": "Iphone 14 Promax",
- "product_value": 30000000,
- "receiver_name": "Tran Van A",
- "receiver_phone": "090 9332 982",
- "receiver_address": "81 Hoàng Minh Giám",
- "receiver_port_code": "R2587289",
- "receiver_address_level_1": "Phường 4",
- "receiver_address_level_2": "Quận Phú Nhuận",
- "receiver_address_level_3": "Thành Phố Hồ Chí Minh",
- "sender_phone": "0922736283",
- "sender_name": "Test TRG",
- "sender_address": "5/34 Thủ Khoa Huân",
- "sender_port_code": "R2587289",
- "sender_address_level_1": "Phường Long Bình",
- "sender_address_level_2": "Quận 9",
- "sender_address_level_3": "Thành Phố Hồ Chí Minh",
- "status": "In_pickup",
- "notes": "Hàng dễ vỡ, xin nhẹ tay",
}, - {
- "code": "PKG2210897312",
- "package_code": "PKG10897312",
- "tracking_number": "LMP0170517004VNA",
- "cod": 7000000,
- "weight": 10,
- "size_l": 20,
- "size_h": 30,
- "size_w": 30,
- "product": "Nệm",
- "product_value": 3000500,
- "receiver_name": "Tran Van B",
- "receiver_phone": "090 9332 982",
- "receiver_address": "81 Hoàng Minh Giám",
- "receiver_port_code": "R2587289",
- "receiver_address_level_1": "Phường 4",
- "receiver_address_level_2": "Quận Phú Nhuận",
- "receiver_address_level_3": "Thành Phố Hồ Chí Minh",
- "sender_phone": "0922736283",
- "sender_name": "Test TRG",
- "sender_address": "5/34 Thủ Khoa Huân",
- "sender_port_code": "R2587289",
- "sender_address_level_1": "Phường 5",
- "sender_address_level_2": "Quận 4",
- "sender_address_level_3": "Thành Phố Hồ Chí Minh",
- "status": "In_delivery",
- "notes": "Hàng dễ vỡ, xin nhẹ tay",
- "epod_pickup_success": null
}
]| package-code required | string (Package code) Example: BAM291120019982 |
{- "code": "PKG2210897312",
- "package_code": "PKG10897312",
- "tracking_number": "LMP0170517004VNA",
- "port_code": "HT-TRG-I",
- "cod": 7000000,
- "weight": 10,
- "size_l": 20,
- "size_h": 30,
- "size_w": 30,
- "product": "Iphone 14 Promax",
- "product_value": 40000000,
- "shipping_fee": 18000,
- "insurance_fee": 20000,
- "is_insurance_fee": true,
- "receiver_name": "Tran Van A",
- "receiver_phone": "090 9332 982",
- "receiver_address": "81 Hoàng Minh Giám",
- "receiver_port_code": "R2587289",
- "receiver_address_level_1": "Phường 4",
- "receiver_address_level_2": "Quận Phú Nhuận",
- "receiver_address_level_3": "Thành Phố Hồ Chí Minh",
- "sender_phone": "0922736283",
- "sender_name": "Test TRG",
- "sender_address": "5/34 Thủ Khoa Huân",
- "sender_port_code": "R2587289",
- "sender_address_level_1": "Phường Long Bình",
- "sender_address_level_2": "Quận 9",
- "sender_address_level_3": "Thành Phố Hồ Chí Minh",
- "status": "Waiting_for_pickup",
- "notes": "Hàng dễ vỡ, xin nhẹ tay",
}| code required | string (Code) |
| cod required | integer (Cash on Devliery - COD) |
| weight required | integer (Weight) |
| size_l required | integer (Length) |
| size_h required | integer (Height) |
| size_w required | integer (Width) |
| product | string (Product) |
Array of objects (Product) | |
| product_value required | integer (Product value) |
| is_insurance_fee required | boolean (Is Insurance Fee (product value > 3000000, insurance = productValue*0.005)) |
| receiver_name required | string (Receiver's name) |
| receiver_phone required | string (Receiver's phone) |
| receiver_address required | string (Receiver's address) |
| receiver_port_code required | string (Receiever's port code) |
| sender_address required | string (Sender's address) |
| sender_port_code required | string (Sender's port code) |
| notes required | string (Note) |
| quantity required | integer (quantity) |
| address_type | string (address_type) Default: "work" value "home" or "work" |
| sender_payment | boolean (sender_payment) Default: true true: Sender pay fee; false: Receiver pay fee |
| delivery_options | integer (delivery_options) Default: 1 1: can open, try product is not allowed or 2: Not co-checked |
{- "code": "PKG2210897312",
- "cod": 7000000,
- "weight": 10,
- "size_l": 20,
- "size_h": 30,
- "size_w": 30,
- "product": "Iphone 14 Promax",
- "package_products": [
- {
- "amount": 10000000,
- "name": "Laptop",
- "quantity": 1,
- "weight": 1.3
}, - {
- "amount": 30000000,
- "name": "Macbook",
- "quantity": 1,
- "weight": 0.5
}
], - "product_value": 40000000,
- "insurance_fee": 20000,
- "is_insurance_fee": true,
- "receiver_name": "Tran Van A",
- "receiver_phone": "090 9332 982",
- "receiver_address": "81 Hoàng Minh Giám",
- "receiver_port_code": "R2587289",
- "sender_address": "5/34 Thủ Khoa Huân",
- "sender_port_code": "R2587289",
- "notes": "Hàng dễ vỡ, xin nhẹ tay",
- "quantity": 1
}{- "code": "PKG2210897312",
- "package_code": "PKG10897312",
- "tracking_number": "LMP0170517004VNA",
- "port_code": "HT-TRG-I",
- "cod": 7000000,
- "weight": 10,
- "size_l": 20,
- "size_h": 30,
- "size_w": 30,
- "product": "Iphone 14 Promax",
- "product_value": 40000000,
- "shipping_fee": 18000,
- "insurance_fee": 20000,
- "is_insurance_fee": true,
- "receiver_name": "Tran Van A",
- "receiver_phone": "090 9332 982",
- "receiver_address": "81 Hoàng Minh Giám",
- "receiver_port_code": "R2587289",
- "receiver_address_level_1": "Phường 4",
- "receiver_address_level_2": "Quận Phú Nhuận",
- "receiver_address_level_3": "Thành Phố Hồ Chí Minh",
- "sender_phone": "0922736283",
- "sender_name": "Test TRG",
- "sender_address": "5/34 Thủ Khoa Huân",
- "sender_port_code": "R2587289",
- "sender_address_level_1": "Phường Long Bình",
- "sender_address_level_2": "Quận 9",
- "sender_address_level_3": "Thành Phố Hồ Chí Minh",
- "status": "Waiting_for_pickup",
- "notes": "Hàng dễ vỡ, xin nhẹ tay",
}| seller_code | string (Seller code) Use seller code when not authentication |
| sender_port_code required | string (Sender's port code) Default: "R0001" |
| receiver_port_code required | string (Receiver's port code) Default: "R0042" |
| weight required | integer (Weight - gram) Default: 200 |
[- {
- "sender_port_code": "R0001",
- "receiver_port_code": "R0001",
- "weight": "200"
}
]{- "shipping_fee": 27000,
- "min_est_leadtime": 1,
- "max_est_leadtime": 2,
- "max_est_return_leadtime": 8
}| code required | string (Package code) Example: code=BAM291120019982 |
{- "receiver_name": "Nguyễn Văn A",
- "receiver_phone": "0972312231",
- "receiver_address": "132A Nguyễn Trọng Tuyển",
- "receiver_address_level_1": "Phường 8",
- "receiver_address_level_2": "Quận Phú Nhuận",
- "receiver_address_level_3": "Thành Phố Hồ Chí Minh",
- "sender_name": "Nguyễn Văn A",
- "sender_phone": "0972312231",
- "sender_address": "132A Nguyễn Trọng Tuyển",
- "sender_address1_level_1": "Phường 8",
- "sender_address_level_2": "Quận Phú Nhuận",
- "sender_address_level_3": "Thành Phố Hồ Chí Minh",
- "status": "Delivered",
- "cod": 100000,
- "audits": [
- {
- "status": "In_pickup",
- "courier": "",
- "current_hub": "",
- "updated_at": "2022-08-16T06:13:33.000000Z"
}, - {
- "status": "In_Delivery",
- "courier": "Tài Xe a",
- "current_hub": "OMS",
- "updated_at": "2022-08-16T06:13:33.000000Z"
}, - {
- "status": "Delivered",
- "courier": "Tài Xe a",
- "current_hub": "OMS",
- "updated_at": "2022-08-16T06:13:33.000000Z"
}
]
}[- {
- "code": "Waiting_for_approval"
}, - {
- "code": "Planned_for_pickup"
}, - {
- "code": "In_pickup"
}, - {
- "code": "Pickup_failed_attempt"
}, - {
- "code": "Pickup_successful"
}, - {
- "code": "Pickup_failed"
}, - {
- "code": "Waiting_for_linehaul"
}, - {
- "code": "Waiting_for_delivery"
}, - {
- "code": "In_delivery"
}, - {
- "code": "Delivery_failed_attempt"
}, - {
- "code": "Delivery_successful"
}, - {
- "code": "Delivery_failed"
}, - {
- "code": "Waiting_for_return"
}, - {
- "code": "In_return"
}, - {
- "code": "Return_failed_attempt"
}, - {
- "code": "Return_failed"
}, - {
- "code": "Returned"
}, - {
- "code": "Lost_collection_approved"
}, - {
- "code": "Shop_lost_claimed"
}, - {
- "code": "3pl_cancelled"
}, - {
- "code": "Cancel_failed"
}, - {
- "code": "Shop_canceled"
}, - {
- "code": "Cancelled"
}
]| codes required | Array of arrays (codes) The codes can be used as code or package_code |
| type | string (type) There are two types:
|
{- "codes": [
- "PKG0302660748",
- "PKG2210897312"
], - "type": "link"
}{- "link": "link-to-file-awb"
}| limit required | integer (limit) Example: 10 |
[- {
- "province": "Thành Phố Hồ Chí Minh",
- "district": "Quận 1",
- "ward": "Phường Đa Kao",
- "port_code": "R2587289"
}, - {
- "province": "Thành Phố Hồ Chí Minh",
- "district": "Quận 1",
- "ward": "Phường Bến Nghé",
- "port_code": "R2587255"
}
]| name | string (name) >= 3 characters This field is optional, if not provided, seller's name will be used |
| phone | number (phone) [ 10 .. 11 ] characters This field is optional, if not provided, seller's phone will be used |
| address required | string (address) |
| address_port_code required | string (address_port_code) |
{- "name": "Shop em bé",
- "phone": "0987234211",
- "address": "132A Nguyễn Trọng Tuyển",
- "address_port_code": "R000911"
}{- "warehouse_code": "WH000001",
- "phone": "0987234211",
- "address": "132A Nguyễn Trọng Tuyển",
- "ward": "Phường 8",
- "district": "Quận Phú Nhuận",
- "province": "Thành Phố Hồ Chí Minh"
}| code required | string (code) Example: WH000001 |
{- "warehouse_code": "WH000001",
- "phone": "0987234211",
- "address": "132A Nguyễn Trọng Tuyển",
- "ward": "Phường 8",
- "district": "Quận Phú Nhuận",
- "province": "Thành Phố Hồ Chí Minh"
}| name | string (name) >= 3 characters |
| phone | number (phone) [ 10 .. 11 ] characters |
| address_port_code | string (address_port_code) |
| address | string (address) |
{- "name": "Shop em bé",
- "phone": "0987234211",
- "address_port_code": "R000911",
- "address": "132A Nguyễn Trọng Tuyển"
}{- "warehouse_code": "WH000001",
- "phone": "0987234211",
- "address": "132A Nguyễn Trọng Tuyển",
- "ward": "Phường 8",
- "district": "Quận Phú Nhuận",
- "province": "Thành Phố Hồ Chí Minh"
}Webhooks help you register to listen to events arising from Quick.vn's system, for example:
| Event | Webhook is triggered when... |
|---|---|
| Package status | Update status package |
| Package re-weight | Update package dim weight |
| Fields | Type | Notes |
|---|---|---|
| type | String | required |
| code | String | required |
| status | String | required |
| epod | String | |
| reason | String | |
| trace_id | String |
{
"type": "package-update-status",
"code": "PKG2210897312",
"reason": "recipient reschedule",
"epod": "https://domain.com/url-to-epod-image-here",
"status": "Delivery_failed_attempt"
}
| Fields | Type | Notes |
|---|---|---|
| type | String | required |
| code | String | required |
| length | float | required |
| width | float | required |
| height | float | required |
| weight | float | required |
| trace_id | String | required |
{
"type": "package-re-weight",
"code": "PKG2210897312",
"length": 10.02,
"width": 12.01,
"height": 8.2,
"weight": 2.5
}