Chuyển tới nội dung chính

Thông tin tenant cần cung cấp cho webhook mới

Thông tin bắt buộc​

1. Webhook endpoint URL​

  • URL mà hệ thống sẽ gửi HTTP POST request tới
  • Phải là HTTPS
  • Ví dụ: https://api.partner.com/webhook/receive

2. Phương thức xác thực​

Chọn một trong ba loại (hoặc kết hợp nhiều loại):

Loại 1: API_KEY​

Thông tinMô tảVí dụ
API KeyGiá trị API keysk-abc123xyz
Vị tríGửi trong header hay query paramheader hoặc query
Tên header/paramTên của header hoặc query paramX-API-KEY, apiKey

Loại 2: BASIC​

Thông tinMô tảVí dụ
UsernameTên đăng nhậpadmin
PasswordMật khẩusecret123

Hệ thống tự động Base64 encode và gửi trong header Authorization: Basic {base64}

Loại 3: HMAC​

Thông tinMô tảVí dụ
Secret KeyKhóa bí mật để kýhmac-secret-abc123
AlgorithmThuật toánSHA256 (mặc định)
Vị trí chữ kýGửi trong header hay queryheader hoặc query
Tên header/paramTên header hoặc query param chứa chữ kýX-Signature, signature
Thành phần cần kýCác phần tham gia payload kýmethod, path, query, body
RecvWindowThời gian hiệu lực chữ ký (ms)5000 (mặc định)

Thông tin tùy chọn​

Thông tinMô tảMặc định
TimeoutThời gian chờ response (ms)30000 (30s)
Retry PolicyChính sách retry khi thất bạiEXPONENTIAL_BACKOFF

Retry Policy:

  • EXPONENTIAL_BACKOFF: Retry sau 60s, 120s, rồi tăng dần. Phù hợp hầu hết trường hợp.
  • IMMEDIATE: Retry sau 10s. Phù hợp khi cần gửi lại nhanh.

Yêu cầu kỹ thuật phía tenant​

  1. Trả về HTTP 2xx khi nhận thành công (ví dụ: 200 OK, 201 Created)
  2. Xử lý idempotent: Có thể nhận cùng một webhook nhiều lần (do retry), cần xử lý trùng lặp
  3. Response time hợp lý: Nên phản hồi trong vòng 30s (hoặc theo timeout đã cấu hình)
  4. Nếu dùng HMAC: Cần triển khai logic verify chữ ký phía tenant để đảm bảo webhook đến từ hệ thống

Mẫu thu thập thông tin​

Gửi bảng này cho tenant để điền:

+----------------------------+------------------------------+
| Thông tin | Giá trị |
+----------------------------+------------------------------+
| Webhook Code | (VD: ORDER_STATUS_UPDATE) |
| Endpoint URL | https://... |
| Loại xác thực | API_KEY / BASIC / HMAC |
+----------------------------+------------------------------+
| [API_KEY] API Key | |
| [API_KEY] Vị trí | header / query |
| [API_KEY] Tên header/param | |
+----------------------------+------------------------------+
| [BASIC] Username | |
| [BASIC] Password | |
+----------------------------+------------------------------+
| [HMAC] Secret Key | |
| [HMAC] Algorithm | SHA256 (mặc định) |
| [HMAC] Vị trí chữ ký | header / query |
| [HMAC] Tên header/param | |
| [HMAC] Thành phần cần ký | method, path, query, body |
| [HMAC] RecvWindow (ms) | 5000 (mặc định) |
+----------------------------+------------------------------+
| Timeout (ms) | 30000 (mặc định) |
| Retry Policy | EXPONENTIAL_BACKOFF (mặc định)|
+----------------------------+------------------------------+

Ví dụ thông tin tenant cung cấp​

Ví dụ 1: Tenant dùng API Key​

Endpoint:     https://api.partnerx.com/webhook
Xác thực: API_KEY
API Key: pk_live_abc123xyz
Vị trí: header
Tên header: X-API-KEY
Timeout: 15000ms
Retry: EXPONENTIAL_BACKOFF

Ví dụ 2: Tenant dùng HMAC​

Endpoint:     https://api.partnery.com/v1/webhook/receive
Xác thực: HMAC
Secret Key: sk_hmac_secret_123456
Algorithm: SHA256
Vị trí: header
Tên header: X-Signature
Cần ký: method, path, body
RecvWindow: 10000ms
Timeout: 20000ms
Retry: IMMEDIATE

Ví dụ 3: Tenant dùng Basic Auth​

Endpoint:     https://webhook.partnerz.com/notify
Xác thực: BASIC
Username: webhook_user
Password: P@ssw0rd!
Timeout: 30000ms
Retry: EXPONENTIAL_BACKOFF