Webhooks
Hệ thống Goship webhook giúp các website tích hợp với Goship có thể nhận thông tin update tự động và nhanh chóng
Api webhooks đã được cập nhật, xem tại đây
Thay vì phải lấy dữ liệu một cách thủ công và bị động, bạn có thể sử dụng Goship Webhooks để nhận các update mới nhất một cách tự động.
Goship API cung cấp webhook dựa trên các event xảy ra trên hệ thống Goship API.
Webhook events
Listen các webhook events dưới đây để cập nhật thông tin mới nhất cho hệ thống của bạn.
- Cập nhật trạng thái vận đơn
Cài đặt webhook
Mỗi khi có cập nhật mới, hệ thống Goship API sẽ đẩy thông tin đó tới một url endpoint của bạn. Bạn cần đăng ký url endpoint theo các webhook event tương ứng.
Trên giao diện Kết nối API mục Goship API Webhooks, bạn chọn Webhook event và nhập vào endpoint để listen event này. Bấm Add subscription.

- Bạn nên sử dụng 1 secured url (https) để listen các webhook event.
- Bạn có thể sử dụng nhiều endpoint để listen cùng webhook event.
Xác thực webhook
Để tránh việc bị tấn công "Man in the middle", mỗi webhook request từ Goship API sẽ bao gồm 1 x-goship-hmac-sha256 trong header.
Giá trị của checksum được sinh ra từ việc mã hóa thông tin credentials của bạn và dữ liệu Goship gửi tới. Sau đó so sánh với chuỗi giá trị checksum của x-goship-hmac-sha256.
Nếu chúng khớp với nhau, bạn có thể sử dụng thông tin từ body request để cập nhật hoặc lưu trữ.
Nhận thông tin từ webhook
Sau khi bạn đã đăng ký thông tin webhook thành công, Goship sẽ gửi các request mang thông tin update của webhook event tới url endpoint mà bạn đã đăng ký.
Các webhook event sẽ có format request body khác nhau:
Cập nhật trạng thái vận đơn
Trong đó:
gcode: Mã đơn của Goshipcode: Mã đơn của hãng vận chuyểnorder_id: Mã đơn của đối tác màweight: Trọng lượng gói hàng mà Goship tiếp nhậnfee: Phí vận chuyểncod: Tiền thu hộpayer: Người trả phí vận chuyển. Giá trị của trường này có thể là:0: Khách trả1: Shop trả
status: Mã trạng thái vận đơnstatus_text: Trạng thái vận đơnmessage: Nội dung thông báo từ Goshiptracking_url: Link theo dõi vận đơn của hãng vận chuyểndescription: Mô tả trạng thái vận đơnsorting_code: Mã phân loại vận đơnreturn_sorting_code: Mã phân loại vận đơn trả hàngis_return: Trả hàng hay không. Giá trị của trường này có thể là:0: Không1: Có
is_part_delivery: Giao hàng một phần hay không. Giá trị của trường này có thể là:0: Không1: Có
is_lost: Mất hàng hay không. Giá trị của trường này có thể là:0: Không1: Có
Khi bạn nhận được các thông tin này, bạn có thể cập nhật lại thông tin vận đơn cho chính xác.
Xem thêm danh sách trạng thái vận đơn
Phản hồi lại webhook
Mỗi khi nhận được webhook request từ Goship API, bạn cần phản hồi lại với 1 HTTP status code là 200 OK.
Một request nếu không có phản hồi với status code là 200, Goship sẽ request lại sau 3 phút.
Sau 3 lần request thất bại, tác vụ sẽ bị hủy để tránh request quá nhiều tới hệ thống của bạn.
Webhook API
Lấy danh sách webhook
GET https://sandbox.goship.io/api/v2/webhooks
Response data
Trong đó:
id: id webhook, dùng để gọi API xóa webhookevent: tên sự kiện; với flow Open API v2 hiện tại luôn làTất cảendpoint: URL nhận callback webhookcreated_at: thời điểm tạo webhookupdated_at: thời điểm cập nhật webhook gần nhất
Tạo webhook
POST https://sandbox.goship.io/api/v2/webhooks
Body:
Trong đó:
endpoint: URL mà hệ thống sẽ gọi đến khi bắn webhook
Response data:
Trong đó:
id: id webhookevent: tên sự kiện mặc định, luôn làTất cảendpoint: URL nhận webhookcreated_at: thời điểm tạo webhookupdated_at: thời điểm cập nhật webhook gần nhất
Xóa webhook
DELETE https://sandbox.goship.io/api/v2/webhooks/{id}
Trong đó:
id: id webhook cần xóa, lấy từ API danh sách webhook
Response data:
Trong đó:
code: mã trạng thái của APIstatus: trạng thái xử lýdata: dữ liệu trả về, ở đây là rỗng sau khi xóa thành côngmessage: thông báo kết quả xóa
Response khi không tìm thấy webhook
Hiện tại chỉ hỗ trợ 1 loại đăng ký webhook mặc định là Tất cả

