1. Data payload
Canceled status
{
"data": {
"date": "2022-10-26T14:22:46+07:00",
"ref_code": "EXT123123",
"order_code": "347171821",
"main_state": "canceled",
"extra_info": {
"cancel_reason_code": "202",
"cancel_reason": "Đặt trùng"
}
}
}
Failed shipment status
{
"data": {
"date": "2022-10-26T14:22:46+07:00",
"ref_code": "EXT123123",
"order_code": "347171821",
"main_state": "shipping",
"main_substate": "delivery_failed_1",
"reason": "Khách hàng hẹn giao lại",
"reason_code": "receiver_reschedule"
}
}
Others status
{
"data": {
"date": "2022-10-26T14:22:05+07:00",
"ref_code": "TR22",
"order_code": "347171821",
"main_state": "processing",
"main_substate": "ready_for_pickup"
}
}
Description:
- date: date at status changed.
- ref_code: partner order code.
- order_code: TNSL order code.
- main_state: main order status.
- main_substate: main substate status.
- reason: delivery failed reason when main state is shipping and main_substate is delivery_failed_1, delivery_failed_2, delivery_failed_3.
- reason_code: delivery failed reason code when main state is shipping and main_substate is delivery_failed_1, delivery_failed_2, delivery_failed_3.
- extra_info: when order status is canceled.
- extra_info.cancel_reason_code: cancel reason code.
- extra_info.cancel_reason: cancel reason.
Reason and Reason code when delivery failed.
Reason code | Reason |
full | Không chở hết |
transferred_to_afs | Đã bàn giao đơn hàng hủy cho bộ phận Đổi – Trả |
contact | Không liên lạc được người gởi |
receiver_reschedule | Khách hàng hẹn giao lại |
wrong_address | Sai địa chỉ, đổi địa chỉ |
absence_of_receiver | Đến nhà không có người nhận |
no_longer_needed | Khách hàng không còn nhu cầu |
order_amendment | Yêu cầu sửa đơn hàng |
can_not_contact | Không liên lạc được |
driver_reschedule | Vận chuyển hẹn lại khách hàng |
handover | Bàn giao cho nhân viên khác |
canceled | Hủy |
unpack | Đóng gói không đảm bảo |
unqualified | Ngoại quan không đạt yêu cầu |
repicking | Khách hẹn |
document | Thiếu chứng từ |
address | Sai địa chỉ |
wrong_phone_number | Sai số điện thoại |
weekend_off | Nhà Bán không làm việc ngoài giờ |
bulky | Hàng cồng kềnh |
unexpected_off | Driver nghỉ làm/tai nạn đột xuất |
support_other_team | Driver cần đi hỗ trợ |
no_longer_needed_but_still_continue | Khách không còn nhu cầu – tiếp tục giao |
2. Authentication signature
Using HMAC-SHA1 signature. TikiNOW provided webhook secret for client and formula generate HMAC-SHA1 signature. Using this signature to compare with signature on header request (key on header: x-signature).
Example Golang code
func GenerateSignature(secretToken, payloadBody string) string {
mac := hmac.New(sha1.New, []byte(secretToken))
mac.Write([]byte(payloadBody))
expectedMAC := mac.Sum(nil)
return "sha1=" + hex.EncodeToString(expectedMAC)
}
Return HTTP status 2xx when received successfully and 5xx when failed
Example
curl --location 'https://your-domain/order/webhooks' \
--header 'Content-Type: application/json' \
--header 'x-signature: sha1=312ece04f931ba89b03bbd9bee51ae8c658a29f3' \
--data '{"data":{"date":"2023-05-15T14:30:44+07:00","ref_code":"#100012N01","order_code":"998471271","main_state":"awaiting_confirmation","main_substate":"order_verified"}}'
Data response
HTTP Status Code | Description | Response |
2xx | Success | { “success”: true } |
4xx | Error | { “success”: false “error”: { “code”: “CLIENT_NOT_EXIST”, “message”: “Client doesn’t exist”, }, } |
5xx | Server error | { “success”: false “error”: { “code”: “BAD_GATEWAY”, “message”: “Bad gateway”, }, } |