Webhooks
Webhooks cho phép Cohost gửi sự kiện chủ động đến hệ thống bên thứ 3 khi có các thay đổi quan trọng (ví dụ: booking, thanh toán, đồng bộ lịch).
Scope: Tập trung vào việc tích hợp bên thứ 3/đối tác với Cohost qua Webhooks.
Thường được dùng kết hợp với External API Guide và iCal Sync để đồng bộ hai chiều.
Lưu ý: Danh sách event và payload cụ thể được định nghĩa chi tiết trong spec backend (OpenAPI / tài liệu nội bộ) và có thể thay đổi theo từng integration. Phần này mô tả khái niệm chung.
1. Tổng quan
- Thay vì bên thứ 3 phải polling API thường xuyên để kiểm tra thay đổi, Cohost có thể gửi HTTP request đến endpoint do bên thứ 3 cấu hình.
- Ví dụ các nhóm sự kiện thường gặp:
- Booking được tạo/cập nhật/hủy.
- Thanh toán thành công/thất bại.
- Đồng bộ lịch hoàn tất hoặc có lỗi.
2. Cấu hình Webhook Endpoint (khái quát)
Luồng cấu hình (có thể khác nhau tuỳ integration):
- Bên thứ 3 cung cấp một hoặc nhiều URL webhook (vd qua Admin UI/API riêng).
- Cohost lưu thông tin:
- URL.
- Danh sách event quan tâm.
- Secret key (nếu dùng chữ ký HMAC).
- Khi có sự kiện, Cohost gửi request tới URL tương ứng.
3. Hình thức request
Thông thường Cohost sẽ:
- Gửi request HTTP POST với body JSON.
- Bao gồm:
event_type(tên event).data(payload chính, ví dụ thông tin booking).id/timestamp(giúp idempotent và logging).
- Có thể kèm header xác thực:
- Ví dụ:
X-Signature(HMAC),X-Webhook-Id, …
- Ví dụ:
Chi tiết format và cơ chế ký sẽ được mô tả cụ thể trong tài liệu webhook từng đối tác.
4. Yêu cầu đối với bên thứ 3
Bên thứ 3 nên:
- Đảm bảo endpoint:
- Hỗ trợ HTTPS.
- Trả về
2xxnếu xử lý thành công.
- Xử lý idempotent:
- Lưu
idhoặcevent_idđể tránh xử lý trùng nếu Cohost retry.
- Lưu
- Xử lý retry:
- Cohost có thể retry khi gặp lỗi mạng / non-2xx.
- Thiết kế endpoint sao cho nhận nhiều lần cùng một event vẫn an toàn.