API Webhooks
Tài liệu về cách sử dụng API webhooks thông qua OAuth2 trong SePay.
Giới thiệu
API Webhooks của SePay cho phép bạn quản lý các webhook để nhận thông báo thời gian thực về giao dịch. Webhook là một cách hiệu quả để tự động hóa quy trình thanh toán, giúp hệ thống của bạn nhận được thông báo ngay khi có giao dịch mới.
Để sử dụng API này, bạn cần có các quyền tương ứng trong phạm vi (scope) của Access Token:
webhook:readđể xem,webhook:writeđể tạo/cập nhật, vàwebhook:deleteđể xóa webhook.
Các Endpoints
- API Webhooks cung cấp các endpoints sau:
GET
/api/v1/webhooks- Lấy danh sách webhooks với các tùy chọn lọc
GET
/api/v1/webhooks/{id}- Lấy thông tin chi tiết về một webhook cụ thể
POST
/api/v1/webhooks- Tạo webhook mới
PATCH
/api/v1/webhooks/{id}- Cập nhật thông tin webhook
DELETE
/api/v1/webhooks/{id}- Xóa webhook
Lấy danh sách webhooks
GET
/api/v1/webhooksAuthorization: Bearer {YOUR_ACCESS_TOKEN}
- Endpoint này trả về danh sách webhooks của công ty bạn. Bạn có thể lọc kết quả theo nhiều tiêu chí khác nhau.
- Quyền yêu cầu
- Scope:
webhook:read - Quyền người dùng: Webhooks (Xem danh sách webhooks)
- Scope:
- Tham số truy vấn
Tên Loại Bắt buộc Mô tả webhook_urlstring Không bắt buộc Lọc theo URL webhook (tìm kiếm một phần)api_keystring Không bắt buộc Lọc theo API keyactiveinteger Không bắt buộc Lọc theo trạng thái hoạt động (0: không hoạt động, 1: đang hoạt động)pageinteger Không bắt buộc Số trang, bắt đầu từ 1limitinteger Không bắt buộc Số lượng kết quả trên mỗi trang
Lấy chi tiết webhook
GET
/api/v1/webhooks/{id}Authorization: Bearer {YOUR_ACCESS_TOKEN}
Endpoint này trả về thông tin chi tiết của một webhook dựa trên ID.
Quyền yêu cầu
- Scope:
webhook:read - Quyền người dùng: Webhooks (Xem danh sách webhooks)
- Scope:
Tham số đường dẫn
Tên Loại Bắt buộc Mô tả idinteger Bắt buộc ID của webhook
Tạo webhook mới
POST
/api/v1/webhooksAuthorization: Bearer {YOUR_ACCESS_TOKEN}
Endpoint này cho phép bạn tạo một webhook mới để nhận thông báo về giao dịch.
Quyền yêu cầu
- Scope: webhook:write
- Quyền người dùng: Webhooks (Thêm webhooks)
Tham số yêu cầu
Tên Loại Bắt buộc Mô tả bank_account_idinteger Bắt buộc ID của tài khoản ngân hàngnamestring Bắt buộc Tên của webhookevent_typestring Bắt buộc Loại sự kiện (All, In_only, Out_only)authen_typestring Bắt buộc Kiểu xác thực (No_Authen, OAuth2.0, Api_Key)webhook_urlstring Bắt buộc URL nhận webhookis_verify_paymentinteger Bắt buộc Có xác thực thanh toán không (0: không, 1: có)skip_if_no_codeinteger Không bắt buộc Bỏ qua nếu không có mã thanh toán (0: không, 1: có)activeinteger Không bắt buộc Trạng thái hoạt động (0: không hoạt động, 1: đang hoạt động)retry_conditionsarray Không bắt buộc Điều kiện thử lại khi gặp lỗionly_vainteger Không bắt buộc Chỉ nhận giao dịch từ tài khoản ảo (0: không, 1: có)bank_sub_account_idsarray Không bắt buộc Danh sách ID tài khoản ảo (bắt buộc nếu only_va=1)Thêm tham số cho từng kiểu xác thực:
🔐 OAuth2.0
- Các tham số bổ sung cần cấu hình:
oauth2_access_token_url(bắt buộc) – URL để lấy access token.oauth2_client_id(bắt buộc) – Client ID.oauth2_client_secret(bắt buộc) – Client Secret.
- Các tham số bổ sung cần cấu hình:
🔑 Api_Key
- Các tham số bổ sung cần cấu hình:
api_key(bắt buộc) – API Key dùng để xác thực.request_content_type(bắt buộc) – Kiểu nội dung yêu cầu (Json, multipart_form-data).
- Các tham số bổ sung cần cấu hình:
🚫 No_Authen
- Các tham số bổ sung cần cấu hình:
request_content_type(bắt buộc) – Kiểu nội dung yêu cầu (Json, multipart_form-data).
- Các tham số bổ sung cần cấu hình:
Cập nhật webhook
PATCH
/api/v1/webhooks/{id}Authorization: Bearer {YOUR_ACCESS_TOKEN}
- Endpoint này cho phép bạn cập nhật thông tin của một webhook hiện có.
- Quyền yêu cầu
- Scope:
webhook:write - Quyền người dùng: Webhooks (Sửa webhooks)
- Scope:
- Tham số đường dẫn
Tên Loại Bắt buộc Mô tả idinteger Bắt buộc ID của webhook - Tham số yêu cầu
- Tham số yêu cầu giống như khi tạo webhook, nhưng tất cả đều là tùy chọn. Bạn chỉ cần cung cấp các tham số cần thay đổi.
Xóa webhook
DELETE
/api/v1/webhooks/{id}Authorization: Bearer {YOUR_ACCESS_TOKEN}
- Endpoint này cho phép bạn xóa một webhook.
- Quyền yêu cầu
- Scope: webhook:delete
- Quyền người dùng: Webhooks (Xóa webhooks)
- Tham số đường dẫn
Tên Loại Bắt buộc Mô tả idinteger Bắt buộc ID của webhook
Mã lỗi
- Dưới đây là các mã lỗi có thể gặp khi sử dụng API webhooks:
| Mã Http | Mã lỗi | Mô tả |
|---|---|---|
| 400 | validation_error | Lỗi xác thực dữ liệu đầu vào |
| 401 | unauthorized | Token không hợp lệ hoặc hết hạn |
| 403 | forbidden | Không có quyền truy cập vào tài nguyên này |
| 404 | not_found | Không tìm thấy webhook |