Tổng quan SePay eInvoice API
Giới thiệu, luồng xử lý và các endpoint chính của eInvoice API.
Giới thiệu
- eInvoice API giúp doanh nghiệp tạo, phát hành và tra cứu hóa đơn điện tử qua HTTP.
- Hỗ trợ hai môi trường: Sandbox cho thử nghiệm và Production cho vận hành.
Môi trường & Base URL
Production: https://einvoice-api.sepay.vn Sandbox: https://einvoice-api-sandbox.sepay.vn
Xác thực
Header: Authorization: Bearer <ACCESS_TOKEN>
Luồng tổng quát
-
Mô tả luồng xử lý eInvoice:
-
Luồng xử lý eInvoice bao gồm các bước chính từ xác thực, kiểm tra tài khoản/ hạn ngạch đến tạo, phát hành và tra cứu hóa đơn:
-
Lấy access token Ứng dụng của merchant gọi API để lấy
access_token. Token này được sử dụng cho tất cả các API eInvoice tiếp theo. -
Danh sách tài khoản Merchant truy vấn danh sách tài khoản nhà cung cấp (
GET v1/provider-accounts) để biết các tài khoản eInvoice khả dụng cùng trạng thái của từng tài khoản. -
Chi tiết tài khoản Khi đã chọn được tài khoản, merchant gọi
GET v1/provider-accounts/{id}để lấy cấu hình chi tiết (mẫu/ký hiệu hóa đơn, trạng thái hoạt động). -
Tạo hóa đơn (Create) Merchant gửi dữ liệu hóa đơn lên hệ thống (
POST v1/invoices/create). API trả vềtracking_codeđể theo dõi trạng thái xử lý xuất hóa đơn. -
Kiểm tra trạng thái tạo hóa đơn Merchant sử dụng
tracking_codegọi/create/checkđể kiểm tra trạng thái xuất hóa đơn (thành công hoặc thất bại). -
Phát hành hóa đơn (Issue) Sau khi hóa đơn được tạo thành công, merchant gửi yêu cầu phát hành (
POST v1/invoices/issue). API trả vềtracking_codecho bước phát hành. -
Kiểm tra trạng thái phát hành Merchant gọi
/issue/checkvớitracking_codeđể xác nhận kết quả phát hành hóa đơn. -
Lấy chi tiết hóa đơn Khi hóa đơn đã phát hành thành công, merchant có thể truy vấn
GET v1/invoices/{reference_code}để nhận thông tin và file hóa đơn (PDF, XML,…). -
Kiểm tra hạn ngạch Merchant có thể gọi
GET v1/usageđể theo dõi số lượt phát hành/xuất hóa đơn còn lại nhằm tối ưu kế hoạch sử dụng dịch vụ. -
Danh sách hóa đơn Merchant có thể gọi
GET v1/invoicesđể lấy danh sách các hóa đơn đã tạo/phát hành kèm phân trang phục vụ quản lý và đối soát.
Các bước Create và Issue được xử lý bất đồng bộ. Merchant cần gọi API /check tương ứng để xác nhận trạng thái trước khi thực hiện bước tiếp theo.
Endpoint chính
v1/token- Lấy access token.
v1/provider-accounts- Danh sách tài khoản
v1/provider-accounts/{id}- Chi tiết tài khoản
v1/invoices/create- Tạo hóa đơn (nháp/phát hành tùy
is_draft).
v1/invoices/create/check/{tracking_code}- Kiểm tra trạng thái tạo hóa đơn.
v1/invoices/issue- Gửi yêu cầu phát hành từ hóa đơn nháp đã tạo.
v1/invoices/issue/check/{tracking_code}- Theo dõi trạng thái phát hành.
v1/invoices/{reference_code}- Chi tiết hóa đơn.
v1/usage- Kiểm tra hạn ngạch
v1/invoices- Danh sách hóa đơn (phân trang).
Cấu trúc phản hồi chung
{
"success": true,
"data": "object"
}{
"success": false,
"error": {
"code": "ERROR_CODE",
"message": "Thông điệp lỗi"
}
}Mã lỗi chung
200OKThành công
400Bad RequestThiếu hoặc sai định dạng các trường bắt buộc
401UnauthorizedThiếu hoặc sai Bearer token
403QUOTA_EXCEEDEDHết hạn ngạch phát hành hóa đơn điện tử
404Not FoundKhông tìm thấy tài nguyên yêu cầu
500Internal Server ErrorLỗi hệ thống
Bước tiếp theo
Để bắt đầu sử dụng eInvoice API, bạn cần 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
- Danh sách tài khoản - Xem các tài khoản nhà cung cấp hóa đơn điện tử khả dụng
- Xuất hóa đơn điện tử - Bắt đầu tạo hóa đơn đầu tiên
Nếu bạn mới bắt đầu, hãy sử dụng môi trường Sandbox để thử nghiệm trước khi chuyển sang Production.