Tài liệu API Hóa đơn điện tử Matbao-Invoice

Tài liệu cung cấp đầy đủ thông tin kỹ thuật kết nối trực tiếp cổng phát hành Hóa đơn điện tử theo chuẩn Tổng Cục Thuế (Thông tư 78/NĐ 123).

Môi trường Hệ thống (Base URL)

Hệ thống cung cấp hai môi trường hoạt động biệt lập phục vụ kiểm thử và phát hành thực tế.

Môi trường Cấu hình URL Thông tin Tài khoản Demo Hệ thống
Thông tin Demo (Sandbox) https://demo-api-hddt.matbao.in:11443 MST: 0302712571-999
TDNhap: admin
MKhau: Gtybf@12sd
Trang quản lý: demo.matbao.in (User: demo / Pass: demo@123!)
Thông tin Production https://api-hddt.matbao.in:11443 Xem trực tiếp trên mục cấu hình API trang quản lý hóa đơn Production để lấy MST, TDNhap, MKhau.

1. Đăng nhập hệ thống (api/auth/login)

Mục đích:Xác thực tài khoản doanh nghiệp để lấy Access Token phục vụ cho các thao tác tiếp theo.
Phương thức:POST
Đường dẫn URL:<BaseUrl>/api/auth/login

Tham số dữ liệu Request Body

Tên trường Định nghĩa ý nghĩa Độ dài tối đa Kiểu dữ liệu Ràng buộc
MST Mã số thuế đăng nhập doanh nghiệp 20 Chuỗi ký tự Bắt buộc
TDNhap Tên đăng nhập hệ thống 50 Chuỗi ký tự Bắt buộc
MKhau Mật khẩu đăng nhập bảo mật 50 Chuỗi ký tự Bắt buộc
Mẫu JSON Request / Response
{
  // Request Body
  "MST": "string",
  "TDNhap": "string",
  "MKhau": "string"
}

// Response Body
{
  "Success": true,
  "Data": "<Dữ liệu api trả về / Chuỗi AccessToken>",
  "ErrorCode": "<Trống hoặc Mã lỗi>",
  "Message": "<Thông báo thành công hoặc thất bại>"
}

2.a. Danh sách mẫu hóa đơn (api/invoice/templates)

Phương thức:GET
Đường dẫn URL:<BaseUrl>/api/invoice/templates?year=<year>

Thông tin trường dữ liệu

Tên trường Định nghĩa Độ dài tối đa Kiểu dữ liệu Ràng buộc
year Năm lấy mẫu hóa đơn (Query Parameter) 4 Số Bắt buộc
KHMSHDon Mẫu số ký hiệu hóa đơn 6 Chuỗi ký tự -
KHHDon Ký hiệu hóa đơn 6 Chuỗi ký tự -
SLuong Tổng số lượng hóa đơn 21 Số -
CLai Số lượng hóa đơn còn lại 21 Số -

2.b. Tạo mới hóa đơn (api/invoice/create-invoice)

Phương thức:POST
Đường dẫn URL:<BaseUrl>/api/invoice/create-invoice

Bảng định nghĩa dữ liệu chi tiết khối Header

Tên trường Định nghĩa ý nghĩa & Logic quy định của Thuế Độ dài tối đa Kiểu dữ liệu Ràng buộc
LoaiHDon Loại hóa đơn thiết lập: 0 - Hóa đơn nháp | 1 - Tạo và ký phát hành ngay 10 Số -
TCHDon Tính chất hóa đơn: 0: Hóa đơn mới, 1: Thay thế, 2: Điều chỉnh tăng, 3: Điều chỉnh giảm, 4: Điều chỉnh thông tin, 5: Điều chỉnh tăng và giảm 5 Số Bắt buộc
KTraMTChieuTrung Kiểm tra MTChieu trùng: 0-Không ktra | 1-Trùng không import | 2-Trùng xóa bản chưa phát hành 1 Số -
DVTTe Đơn vị tiền tệ chính (704: VND, 840: USD, 124: CAD) 3 Số Bắt buộc
TGia Tỷ giá quy đổi dòng tiền thanh toán 7,2 Số Bắt buộc
KHMSHDon Mẫu số ký hiệu hóa đơn chuẩn Tổng Cục Thuế 6 Chuỗi ký tự -
KHHDon Ký hiệu chuỗi series quản lý hành chính 6 Chuỗi ký tự -
NMua_Ten Tên khách hàng hoặc tên đơn vị doanh nghiệp mua hàng 400 Chuỗi ký tự -
NMua_MST Mã số thuế của cá nhân/doanh nghiệp mua hàng 14 Chuỗi ký tự -
NMua_DChi Địa chỉ nơi đăng ký kinh doanh người mua 400 Chuỗi ký tự -
TgThTien / TgTThue Tổng số tiền trước thuế / Tổng số tiền thuế GTGT toàn đơn 21,6 Số Bắt buộc
TgTTTBSo / TgTTTBChu Tổng tiền thanh toán cuối cùng viết bằng Số / bằng Chữ - Số / Chuỗi Bắt buộc

Thông tin Hàng hóa Dịch vụ lồng nhau (DSHHDVu)

Tên trường trường con Định nghĩa cấu trúc logic Kiểu dữ liệu Ràng buộc
DSHHDVu/TChat 1: Hàng hóa/dịch vụ | 2: Khuyến mãi | 3: Chiết khấu | 4: Ghi chú | 5: Đặc trưng Số Bắt buộc
DSHHDVu/THHDVu Tên chi tiết danh mục hàng hóa dịch vụ cung cấp Chuỗi ký tự Bắt buộc
DSHHDVu/SLuong / DGia Số lượng / Đơn giá gốc (Định dạng số thập phân 21,6) Số Bắt buộc
DSHHDVu/TSuat Mã thuế suất: -2: KKKNT | -1: KCT | 0: 0% | 5: 5% | 8: 8% | 10: 10% Số Bắt buộc

2.c. Xóa bỏ hóa đơn (api/invoice/cancel-invoice)

Phương thức:POST
Đường dẫn URL:<BaseUrl>/api/invoice/cancel-invoice

MaSoHDon: Mã số hóa đơn (INVID mã hóa), độ dài 50 ký tự, Bắt buộc.

2.d. Tạo thông báo hóa đơn sai sót mẫu 04 (api/invoice/create-template-04)

Phương thức:POST
Đường dẫn URL:<BaseUrl>/api/invoice/create-template-04

Sử dụng khi cần khai báo thông tin giải trình mẫu 04 gửi Tổng cục thuế đối với danh sách hóa đơn lỗi hệ thống nội bộ.

2.e. Tải file XML và PDF của hóa đơn (api/invoice/download-invoice)

Phương thức:POST
Đường dẫn URL:<BaseUrl>/api/invoice/download-invoice

Yêu cầu bắt buộc các tham số: MaTraCuu (Chuỗi 100) và MaSoHDon (Chuỗi 50).

2.f. Lấy danh sách chi tiết hóa đơn (api/invoice/invoice-detail)

Phương thức:POST
Đường dẫn URL:<BaseUrl>/api/invoice/invoice-detail

Tra cứu dải danh sách dựa theo khoảng thời gian TNLapDNLap (Định dạng bắt buộc: yyyy-MM-dd).

2.g. Ký hóa đơn nháp (api/invoice/sign-invoice)

URL: POST <BaseUrl>/api/invoice/sign-invoice

Tham số đầu vào: MaSoHDon (Chuỗi 50, Bắt buộc).

2.h. Lấy XML hóa đơn chưa ký (api/invoice/get-xml-not-sign)

URL: GET <BaseUrl>/api/invoice/get-xml-not-sign?MaSoHDon=<MaSoHDon>

Trả về cấu trúc chuỗi XML thô mã hóa dưới định dạng Base64 phục vụ ký số bên thứ ba.

2.i. Ký XML (api/invoice/sign-xml)

URL: POST <BaseUrl>/api/invoice/sign-xml

Tham số cấu thành yêu cầu: XmlMaHoa64, MaVungKy, và đường dẫn chứng thư số DuongDanChuKy.

2.k. Xóa hóa đơn nháp (api/invoice/delete-invoice)

URL: POST <BaseUrl>/api/invoice/delete-invoice

Truyền khóa định danh MaSoHDon để gỡ bỏ hoàn toàn hóa đơn nháp chưa ký số khỏi database.

2.j. JSON hóa đơn trả về từ Webhook (Callback cấu hình)

Cấu trúc phản hồi thời gian thực từ cổng core Mắt Bão về webhook callback endpoint đối tác.

Cấu trúc cấu thành dữ liệu JSON
{
  "InvID": "QVh5dWZsYksyS0pyY...", // Mã số hóa đơn mã hóa INVID
  "No": 36245, // Số hóa đơn chính thức
  "Pattern": "1", // Mẫu số hóa đơn
  "Serial": "C25TAT", // Ký hiệu series dải hóa đơn
  "SO": "BH250024422", // Mã tham chiếu nội bộ hệ thống đối tác
  "Fkey": "7B164DE80848001", // Mã tra cứu hóa đơn trực tuyến
  "ArisingDate": "2025-05-16T00:00:00",
  "MCCQT": "007865BA205F284530AA353E42B75820B9", // Mã xác thực Cơ quan Thuế cấp
  "MaTTHDon": 4, // 1: Nháp | 2: Lỗi ký | 3: Chưa gửi CQT | 4: Đã cấp mã / tiếp nhận thành công
  "TenTTHDon": "Đã cấp mã / tiếp nhận"
}

3.a. Lấy danh sách tờ khai 01 (api/tokhai01/get-tokhai01)

URL: GET <BaseUrl>/api/tokhai01/get-tokhai01

Tham số lọc: TrangThai (0: Chưa ký, 1: Đã ký, 2: Đã gửi, 3: CQT đã duyệt).

3.b. Tạo mới tờ khai 01 (api/tokhai01/create-tokhai01)

URL: POST <BaseUrl>/api/tokhai01/create-tokhai01

Khởi tạo luồng thông tin đăng ký mới sử dụng hình thức hóa đơn điện tử hoặc chứng từ khấu trừ thuế TNCN lên hệ thống Tổng cục.

Phụ lục 1: Định nghĩa danh mục bảng Mã lỗi Hệ thống

Mã lỗi Mô tả chi tiết nguyên nhân gốc Gợi ý hướng dẫn khắc phục xử lý nhanh cho lập trình viên
200Thành côngYêu cầu hoàn tất tốt đẹp.
10Tham số INPUT không được để trốngLỗi cú pháp: Hãy kiểm tra các trường đánh dấu bắt buộc trong Request body.
201Không tìm thấy dữ liệuKiểm tra lại định danh khóa tra cứu hoặc khoảng thời gian truyền.
304Trùng mã tra cứuTrường MaTraCuu bị lặp lại trong DB hệ thống. Cần sinh chuỗi mã ngẫu nhiên độc lập mới.
305Trùng mã tham chiếuTrường MTChieu (Số hiệu đơn hàng nội bộ) đã bị trùng. Cần tăng số index định danh đơn hàng.
327Mẫu hóa đơn đã hết sốDải hóa đơn đăng ký dải số đã dùng hết. Cần tạo tờ khai đăng ký dải số mới.
401Xác thực tài khoản không hợp lệMã Access Token bị hết hạn hoặc sai thông tin xác thực đăng nhập API ban đầu.
500Lỗi hệ thốngSự cố từ core xử lý backend. Ghi nhận log message chi tiết gửi cho đội kỹ thuật.

Phụ lục 2: Danh mục ký hiệu mẫu số hóa đơn, chứng từ

Mẫu số Định nghĩa loại cấu thành tương ứng
1Hóa đơn điện tử giá trị gia tăng (GTGT) thông thường
2Hóa đơn điện tử bán hàng thương mại đại chúng
5Tem điện tử, vé điện tử, thẻ điện tử, phiếu thu chi điện tử
6Phiếu xuất kho kiêm vận chuyển nội bộ / Hàng gửi bán đại lý điện tử
03/TNCNChứng từ khấu trừ thuế Thu nhập cá nhân (TNCN) điện tử chính thức

Phụ lục 3: Quy tắc thiết lập cấu trúc Ký hiệu dải series Hóa đơn

Cấu trúc chuỗi series bao gồm tổ hợp chuẩn quy định gồm 6 ký tự viết liền không dấu: