Product Management
Đăng nhập
ESC

Nhập từ khóa để tìm kiếm

↑↓ Di chuyển
Enter Mở
ESC Đóng

Bài 6 — Tự động hóa hóa đơn điện tử đúng luật Việt Nam

Đã đọc 0/8 mục · còn khoảng 3 phút
Cách chúng tôi ghi nhận

Một mục được tính là đã đọc khi nó nằm giữa màn hình đủ lâu so với độ dài của nó (bảng và sơ đồ tính một nửa), bạn vẫn đang cuộn hoặc bấm phím, và bạn đã thấy tới cuối mục. Lướt nhanh hoặc để tab mở không được tính. Chúng tôi chỉ lưu thời gian đọc từng mục — không lưu gì khác.

Hóa đơn điện tử (HĐĐT) ở Việt Nam theo Nghị định 123/2020 và Thông tư 78/2021, phát hành qua nhà cung cấp được cấp phép và có kết nối với Cơ quan Thuế. Đây là phần agent phải cực kỳ cẩn thận: sai số liệu = sai pháp lý. Nguyên tắc: agent thu thập và gọi API tạo hóa đơn, con người/nhà cung cấp chịu trách nhiệm phát hành đúng luật.

Bức tranh tổng thể

  • Bạn không tự "in" hóa đơn hợp lệ. Bạn dùng nhà cung cấp HĐĐT: Viettel (S-Invoice), VNPT, MISA meInvoice, EasyInvoice, FPT... — họ có API.
  • Hóa đơn có mã của cơ quan thuế (đa số trường hợp) phải được gửi lên hệ thống Thuế để cấp mã.
  • Agent làm nhiệm vụ: thu đủ thông tin → gọi API nhà cung cấp → nhận link/PDF hóa đơn → gửi khách qua Zalo.

Thông tin bắt buộc để xuất hóa đơn công ty

  • Mã số thuế (MST) — 10 hoặc 13 chữ số.
  • Tên đơn vị đúng như đăng ký.
  • Địa chỉ đơn vị.
  • Email nhận hóa đơn.
  • Danh mục hàng: tên, số lượng, đơn giá, thuế suất (0/5/8/10%).
Agent nên tra cứu MST tự động để giảm sai sót và điền sẵn tên/địa chỉ (có API tra cứu MST công khai).

Luồng agent thu thập thông tin hóa đơn

intent = HOI_HOA_DON hoặc DAT_HANG(can_hoa_don=true)
 → Hỏi MST
 → Tra MST → tự điền tên + địa chỉ → nhờ khách xác nhận
 → Hỏi email nhận HĐĐT
 → Gọi API tạo hóa đơn nháp
 → Gửi khách link xem trước

Gọi API tạo hóa đơn (ví dụ dạng chung)

POST https://api.nhacungcap-hddt.vn/invoices
Authorization: Bearer {api_key}
{
  "buyer": {
    "taxCode": "0312345678",
    "name": "CÔNG TY TNHH ABC",
    "address": "12 Nguyễn Huệ, Q1, TP.HCM",
    "email": "ketoan@abc.vn"
  },
  "items": [
    { "name": "Bánh trung thu", "quantity": 2, "price": 350000, "vatRate": 8 }
  ],
  "paymentMethod": "CK"
}

Kết quả trả về invoiceNumber, taxAuthorityCode (mã CQT), và pdfUrl — agent gửi pdfUrl cho khách.

Ranh giới an toàn (bắt buộc nhớ)

  • Không tự tính sai thuế suất: thuế suất do sản phẩm/quy định, không để LLM đoán. Gắn cứng thuế suất theo từng mã sản phẩm trong Sheet.
  • Xác nhận trước khi phát hành: hóa đơn đã phát hành khó hủy, phải làm điều chỉnh/thay thế đúng quy trình. Luôn cho khách/kế toán duyệt bản nháp.
  • Lưu vết: mọi hóa đơn phải log lại ma_don, MST, invoiceNumber, thời điểm — phục vụ đối soát và thanh tra.

Checklist tuân thủ

  • [ ] Dùng nhà cung cấp HĐĐT được cấp phép, có kết nối Thuế
  • [ ] MST được tra cứu và xác nhận với khách
  • [ ] Thuế suất lấy từ dữ liệu sản phẩm, không do LLM tự tính
  • [ ] Có bước duyệt nháp trước khi phát hành chính thức
  • [ ] Email + link hóa đơn gửi đúng khách
  • [ ] Lưu log đối chiếu mỗi hóa đơn

Sai lầm thường gặp

  • Để agent tự "tạo" hóa đơn mà không qua nhà cung cấp: không hợp lệ pháp lý. Bắt buộc qua API nhà cung cấp có mã CQT.
  • LLM tự tính thuế/thành tiền: dễ sai số. Tính toán bằng code, thuế suất tra từ bảng.
  • Không xác nhận MST: xuất sai tên công ty → phải hủy/điều chỉnh phiền phức. Luôn tra + xác nhận.
  • Phát hành ngay không duyệt: khách đọc nhầm MST cũng bị xuất luôn. Chèn bước duyệt nháp.
  • Không lưu vết: khi thuế kiểm tra không tra được. Log đầy đủ mọi lần xuất.
  • Gộp nhầm HĐĐT với hóa đơn bán lẻ thường: khách cá nhân không cần MST; đừng bắt họ nhập. Phân nhánh rõ cá nhân vs công ty.
Bài sau: nhắc lịch, chăm sóc sau bán và các kịch bản vận hành thực tế.

Học xong bài này rồi? Tạo tài khoản miễn phí để lưu lại — lần sau vào là biết ngay đang dở ở đâu, và học hết khóa thì có chứng chỉ. Lưu tiến độ của tôi