Tổng quan API
Tổng quan về hệ thống API của SePay Bank Hub, bao gồm môi trường, xác thực, HTTP status code, định dạng error và danh sách endpoints.
Giới thiệu
Ngoài Hosted Link, Bank Hub cung cấp bộ API RESTful đầy đủ để:
- Tạo và quản lý link token
- Tạo và Quản lý công ty
- Quản lý tài khoản ngân hàng đã liên kết
- Truy vấn lịch sử giao dịch
- Cấu hình merchant
- Cấu hình webhook nhận sự kiện
Môi trường API & Versioning
Bank Hub hỗ trợ 2 môi trường:
Production
- Base URL:
https://bankhub-api.sepay.vn - API Version:
/v1 - Sử dụng cho môi trường thực tế
Sandbox
- Base URL:
https://bankhub-api-sandbox.sepay.vn - API Version:
/v1 - Sử dụng cho phát triển và kiểm thử
Tất cả endpoint đều có tiền tố /v1/ và được định tuyến dựa trên hostname.
Xác thực API
Tạo Access Token
Endpoint tạo token sử dụng Basic Authentication với client_id và client_secret được SePay cấp.
/v1/tokenAuthorization: Basic {base64(client_id:client_secret)}KHÔNG sử dụng API này từ client-side (browser, mobile app). API tạo token yêu cầu client_secret - thông tin này phải được bảo mật tuyệt đối trên server. Chỉ gọi API này từ backend server của bạn.
Chi tiết về API tạo token xem tại: API Tạo Token
Gọi API nghiệp vụ
Tất cả API nghiệp vụ khác yêu cầu xác thực bằng Bearer Token:
Authorization: Bearer YOUR_ACCESS_TOKEN
- Token có thời gian hiệu lực giới hạn (TTL)
- Khi token hết hạn, API sẽ trả về lỗi
401 Unauthorized - Cần gọi lại API
/v1/tokenđể lấy token mới - Gợi ý: Nên implement cơ chế refresh token tự động trước khi hết hạn
HTTP Status Code
Bank Hub sử dụng các HTTP status code chuẩn:
200 OK– Request thành công201 Created– Tạo resource thành công400 Bad Request– Lỗi validation hoặc request không hợp lệ401 Unauthorized– Thiếu hoặc sai thông tin xác thực404 Not Found– Không tìm thấy resource405 Method Not Allowed– Sai HTTP method500 Internal Server Error– Lỗi hệ thống503 Service Unavailable– Dịch vụ tạm thời không khả dụng
Định dạng Error Response
Tất cả lỗi API đều trả về theo cấu trúc thống nhất:
{
"code": 400,
"message": "Bad request",
"errors": {
"field_name": "Thông báo lỗi chi tiết"
}
}{
"code": 401,
"message": "Unauthenticated"
}{
"code": 404,
"message": "Resource not found"
}Danh sách API Endpoints
- Link Token APIs:
/v1/link-token/createTạo link liên kết hoặc huỷ liên kết ngân hàng (có thể dùng link để nhúng Iframe hoặc dùng cho SDK). Chi tiết API →
/v1/link-token/getLấy thông tin chi tiết của link token đã tạo. Chi tiết API →
/v1/link-token/revokeHuỷ bỏ link token đã tạo, vô hiệu hoá link. Chi tiết API →
- Company APIs:
/v1/companyLấy danh sách công ty của merchant. Chi tiết API →
/v1/company/{xid}Lấy thông tin chi tiết của một công ty theo xid. Chi tiết API →
/v1/company/createTạo công ty mới cho merchant. Chi tiết API →
/v1/company/edit/{xid}Cập nhật thông tin công ty theo xid. Chi tiết API →
/v1/company/counter/{xid}Đếm giao dịch của công ty. Chi tiết API →
- Bank Account APIs:
/v1/bank-accountLấy danh sách tài khoản ngân hàng đã liên kết. Chi tiết API →
/v1/bank-account/{xid}Lấy thông tin chi tiết của một tài khoản ngân hàng theo xid. Chi tiết API →
- Transaction APIs:
/v1/transactionTruy vấn lịch sử giao dịch với bộ lọc linh hoạt. Chi tiết API →
/v1/transaction/{transaction_id}Lấy thông tin chi tiết của một giao dịch theo transaction_id. Chi tiết API →
- Merchant Config APIs:
/v1/merchant-configLấy cấu hình hiển thị của merchant (logo, tên, màu sắc). Chi tiết API →
/v1/merchant-configCập nhật cấu hình hiển thị của merchant. Chi tiết API →
/v1/merchant-config/logoUpload logo cho merchant. Chi tiết API →
- Webhook APIs:
/v1/webhookLấy cấu hình webhook hiện tại. Chi tiết API →
/v1/webhookCấu hình URL và secret key cho webhook nhận sự kiện. Chi tiết API →
Best Practices
1. Quản lý Token
- Lưu trữ token an toàn, không để lộ ra client-side
- Implement cơ chế refresh token tự động trước khi hết hạn
- Xử lý lỗi 401 bằng cách tự động lấy token mới và retry request
2. Xử lý Lỗi
- Luôn kiểm tra HTTP status code
- Parse và hiển thị thông báo lỗi từ response
- Implement retry logic cho các lỗi tạm thời (5xx)
3. Rate Limiting
- Tuân thủ rate limit của API
- Implement exponential backoff khi gặp lỗi 429
- Cache dữ liệu khi có thể để giảm số lượng API calls
4. Idempotency
- Sử dụng idempotency key cho các request quan trọng
- Lưu trữ và kiểm tra response dựa trên idempotency key
- Xử lý duplicate requests một cách an toàn
Bước tiếp theo
Để bắt đầu sử dụng Bank Hub API, bạn có thể thực hiện theo thứ tự sau:
- Tạo Access Token - Lấy Bearer token để xác thực các API tiếp theo
- Tạo công ty - Tạo công ty để quản lý tài khoản ngân hàng
- Tạo Link Token - Tạo link để người dùng liên kết ngân hàng
Xem Bắt đầu nhanh để có hướng dẫn tích hợp từng bước với code mẫu đầy đủ.