Bắt đầu nhanh
Hướng dẫn tạo đơn hàng VA, nhận thanh toán qua webhook. Hỗ trợ BIDV và Sacombank.
Tạo số VA riêng cho mỗi đơn hàng. Khách chuyển khoản vào VA, SePay tự động khớp và gửi webhook.
Ngân hàng hỗ trợ
| BIDV | Sacombank | |
|---|---|---|
| Loại tài khoản | Doanh nghiệp | Cá nhân / HKD |
Tiền tố VA (va_prefix) | Không cần | Bắt buộc |
Số tiền (amount) | Tùy chọn | Bắt buộc |
| Thanh toán một phần | Có | Không (chỉ đúng số tiền) |
Sacombank không hỗ trợ thanh toán một phần. Đơn hàng chỉ chuyển Pending sang Paid hoặc Cancelled.
Trạng thái
Endpoints
https://userapi.sepay.vn/v2/bank-accounts/{ba_xid}/ordershttps://userapi.sepay.vn/v2/bank-accounts/{ba_xid}/ordershttps://userapi.sepay.vn/v2/bank-accounts/{ba_xid}/orders/{order_xid}https://userapi.sepay.vn/v2/bank-accounts/{ba_xid}/orders/{order_xid}https://userapi.sepay.vn/v2/bank-accounts/{ba_xid}/orders/{order_xid}/vahttps://userapi.sepay.vn/v2/bank-accounts/{ba_xid}/orders/{order_xid}/va/{va_number}https://userapi.sepay.vn/v2/bank-accounts/{ba_xid}/prefixeshttps://userapi.sepay.vn/v2/bank-accounts/{ba_xid}/prefixes/{va_prefix}Luồng thanh toán qua VA
Các bước tích hợp
Chuẩn bị
- Tạo API Token
- Tài khoản ngân hàng đã liên kết trên SePay:
- BIDV: tài khoản doanh nghiệp
- Sacombank: tài khoản cá nhân hoặc hộ kinh doanh, merchant đã kích hoạt
- Lấy UUID tài khoản từ API Tài khoản ngân hàng
Lấy tiền tố VA (chỉ Sacombank)
BIDV không cần bước này. Bỏ qua và chuyển sang bước tiếp theo.
Mỗi đơn hàng Sacombank phải có va_prefix. Gọi API lấy danh sách prefix:
curl -X GET "https://userapi.sepay.vn/v2/bank-accounts/{ba_uuid}/prefixes" \-H "Authorization: Bearer YOUR_API_TOKEN"
{
"status": "success",
"data": [
{
"va_prefix": "SEP200001WEB",
"store_id": "WEB",
"store_name": "NGUYEN VAN A",
"status": "active",
"created_at": "2026-03-20 09:00:00"
}
]
}Tạo đơn hàng
curl -X POST "https://userapi.sepay.vn/v2/bank-accounts/{ba_uuid}/orders" \-H "Content-Type: application/json" \-H "Authorization: Bearer YOUR_API_TOKEN" \-d '{"amount": 500000, "order_code": "DH20250001", "with_qrcode": "1"}'
{"status": "success","message": "Order created successfully","data": {"id": "b2c3d4e5-f6a7-8901-bcde-f12345678902","order_code": "DH20250001","va_number": "963NQDORD1234567890AB","va_holder_name": "CONG TY CP TECH VINA","amount": 500000,"status": "Pending","bank_name": "BIDV","account_holder_name": "CONG TY CP TECH VINA","account_number": "1234567890","expired_at": null,"qr_code": "data:image/png;base64,...","qr_code_url": "https://qr.sepay.vn/img?acc=963NQDORD1234567890AB&bank=BIDV&amount=500000&template=compact"}}
Hiển thị cho khách hàng
Từ response, hiển thị cho khách hàng:
- Số tài khoản:
va_number(số VA để chuyển khoản) - Số tiền:
amount - Mã QR:
qr_codehoặcqr_code_url - Thời hạn:
expired_at(nếu có)
Nhận thông báo thanh toán
Khi khách hàng chuyển khoản thành công, SePay gửi webhook đến URL bạn đã cấu hình. Giao dịch sẽ chứa trường code khớp với order_code của đơn hàng.
Xem chi tiết cấu hình webhook.
Kiểm tra trạng thái đơn hàng
curl -X GET "https://userapi.sepay.vn/v2/bank-accounts/{ba_uuid}/orders/{order_uuid}" \-H "Authorization: Bearer YOUR_API_TOKEN"
Trạng thái đơn hàng:
Pending: chờ thanh toánPaid: đã thanh toánPartially: thanh toán một phần (chỉ BIDV)Cancelled: đã hủy
Tham số chính
| Tham số | Bắt buộc | Mô tả |
|---|---|---|
va_prefix | Có (Sacombank) | Tiền tố VA. Không dùng cho BIDV. |
order_code | Không | Mã đơn hàng (6-50 ký tự). Tự sinh nếu bỏ qua. |
amount | Có (Sacombank) | Số tiền (VND). BIDV: tùy chọn. |
Thanh toán nhiều lần (chỉ BIDV)
BIDV hỗ trợ tạo thêm VA cho đơn hàng đang Pending hoặc Partially. Khi tất cả VA được thanh toán, đơn hàng chuyển sang Paid. Sacombank không hỗ trợ tính năng này.
Hủy đơn hàng hoặc VA
Chỉ hủy được đơn hàng Pending và VA Unpaid. Response: 204 No Content.