Một hóa đơn điện tử thường đến cùng lúc ba dạng: tệp XML người bán gửi kèm, bản PDF để xem, và đôi khi một ảnh chụp màn hình khách chuyển qua Zalo. Nhiều người đưa cả ba cho AI đọc. Cách nhanh và chắc hơn là đọc XML bằng máy theo đúng thẻ dữ liệu, kiểm tổng bằng phép cộng, và chỉ cần AI khi trong tay chỉ có PDF hay ảnh. Bài này dùng bốn tệp XML giả lập để chỉ cách đọc bằng Power Query trong Excel, cách nhận ra một tệp tải hai lần, cách không gộp nhầm hai hóa đơn cùng số khác ký hiệu, và chỗ nào AI có ích.

Ba dạng, ba cách đọc

DạngBản chấtCách đọc nên dùngRủi ro chính
XMLDữ liệu có cấu trúc, mỗi số nằm trong một thẻ có tênCông cụ đọc XML: Power Query, phần mềm kế toán, chức năng nhập hóa đơn của phần mềmĐọc sai thẻ, gộp nhầm khi tên thẻ khác phiên bản
PDF có chữBản trình bày để người xem; chữ chọn đượcTrích bảng hoặc AI đọc, rồi đối chiếu với XML hoặc tra cứuDòng bị tách trang, số bị đọc lệch cột
Ảnh chụp, PDF scanChỉ là điểm ảnhNhận dạng chữ (OCR) hoặc AI đọc ảnh, người kiểm từng sốNhầm 6 với 8, mất số 0, cắt mép

Nguyên tắc: có XML thì đọc XML. PDF và ảnh chỉ để xem nhanh hoặc khi người bán không gửi XML. Bài đọc hóa đơn PDF bằng AI và bài ảnh hóa đơn thành bảng đi sâu hai trường hợp đó.

Đọc được dữ liệu không phải là xác nhận hóa đơn hợp lệ. Từ 01/07/2026, hóa đơn điện tử theo Luật Quản lý thuế số 108/2025/QH15, Nghị định 254/2026/NĐ-CP và Thông tư 91/2026/TT-BTC. Trạng thái hóa đơn tra trên cổng tra cứu hóa đơn điện tử của cơ quan thuế; việc hóa đơn có được dùng để khấu trừ hay tính chi phí hay không do kế toán trưởng hoặc người có chuyên môn quyết.

Bước 1: mở thử một tệp XML để biết mình đang đọc gì

Tải bốn tệp XML hóa đơn giả lập (ZIP)

Mở một tệp bằng trình soạn thảo văn bản. Bạn sẽ thấy các thẻ lồng nhau. Trong ví dụ rút gọn, thẻ đặt tên theo cách phổ biến trong tệp hóa đơn điện tử ở Việt Nam:

ThẻNghĩa
KHHDonKý hiệu hóa đơn
SHDonSố hóa đơn
NLapNgày lập
NBan, NMuaKhối người bán, người mua; bên trong có thẻ tên và thẻ mã số thuế
HHDVuMột dòng hàng hóa, dịch vụ (tên, đơn vị, số lượng, đơn giá, thành tiền, thuế suất)
TgTCThueTổng tiền chưa thuế
TgTThueTổng tiền thuế
TgTTTBSoTổng tiền thanh toán bằng số

Tệp thật có nhiều thẻ hơn, có chữ ký số và có thể khác tên theo phiên bản định dạng. Trước khi dựng quy trình, mở một tệp thật của người bán quen để biết tên thẻ đúng.

Bước 2: đọc cả thư mục XML bằng Power Query

Power Query có sẵn trong Excel trên Windows và Mac bản gần đây. Tên menu có thể khác nhẹ theo phiên bản:

  1. Giải nén bốn tệp vào một thư mục riêng.
  2. Excel, thẻ Data (Dữ liệu), Get Data (Lấy dữ liệu), From File, From Folder, chọn thư mục.
  3. Chọn Combine & Transform. Power Query mở từng tệp XML thành bảng lồng nhau.
  4. Mở rộng lần lượt các cột cho tới khi thấy KHHDon, SHDon, NLap, mã số thuế người bán, TgTCThue, TgTThue, TgTTTBSo. Giữ cột Source.Name (tên tệp) để biết dòng đến từ tệp nào.
  5. Đặt kiểu dữ liệu: số tiền là số nguyên, ngày là ngày, mã số thuế, ký hiệu và số hóa đơn là văn bản để không mất số 0 ở đầu.
  6. Đóng và tải về một trang tính.

Bảng dòng hàng (HHDVu) mở rộng ra một truy vấn riêng nếu bạn cần kiểm từng dòng.

Bước 3: thêm ba cột kiểm bằng công thức

Bốn tệp XML qua ba phép kiểm: khóa nhận diện, tổng dòng so với tổng chưa thuế, chưa thuế cộng thuế so với tổng thanh toán; kết quả một tệp trùng, một hóa đơn lệch tổng
Sơ đồ minh họa của AI Thạo Việc, dữ liệu giả lập.
  1. Khóa nhận diện = mã số thuế người bán & ký hiệu & số. Ví dụ =E2&"|"&B2&"|"&C2. Không dùng riêng số hóa đơn.
  2. Trùng = =IF(COUNTIF($J$2:J2,J2)>1,"Trùng","") trên cột khóa, đếm từ đầu tới dòng hiện tại để chỉ đánh dấu bản xuất hiện sau.
  3. Lệch tổng = =IF(F2+G2<>H2,"Lệch","") với F chưa thuế, G thuế, H tổng thanh toán. Nếu đã mở rộng bảng dòng hàng, thêm phép so tổng thành tiền các dòng với TgTCThue.

Đáp án của bốn tệp giả lập, đọc bằng trình phân tích XML, không dùng AI:

TệpKý hiệu, sốMã số thuế người bánChưa thuếThuếThanh toánKết quả
HD-C26TAA-0000152.xmlC26TAA, 15203000000024.730.000473.0005.203.000Đạt
HD-C26TBB-0000152.xmlC26TBB, 15203000000031.700.000170.0001.870.000Đạt, không trùng dù cùng số 152
tai-lai_HD-C26TAA-0000152.xmlC26TAA, 15203000000024.730.000473.0005.203.000Trùng với tệp đầu
HD-C26TCC-0000087.xmlC26TCC, 8703000000046.300.000630.0006.830.000Lệch 100.000

Hai bài học từ ví dụ:

  • Cùng số, khác ký hiệu, khác người bán là hai hóa đơn. Nếu chỉ dò theo số 152, bạn sẽ xóa nhầm hóa đơn của nhà cung cấp Y.
  • Tệp tải lại không phải hóa đơn mới. Tên tệp khác nhưng khóa giống, chỉ ghi sổ một lần.

Hóa đơn 87 lệch tổng là dấu hiệu tệp không phải bản gốc, bị sửa, hoặc bạn đọc nhầm thẻ. Đừng tự sửa số. Tải lại bản gốc từ người bán hoặc từ hệ thống, tra cứu trên cổng của cơ quan thuế và hỏi người bán.

Bước 4: thêm cột trạng thái tra cứu, do người điền

Với hóa đơn đầu vào cần ghi sổ, thêm cột Trạng thái tra cứu và Ngày tra. Người kiểm tra trên cổng tra cứu hóa đơn điện tử của cơ quan thuế (trang hoadondientu.gdt.gov.vn tại thời điểm viết) hoặc chức năng tương đương trong phần mềm đang dùng, rồi ghi kết quả. Đừng nhờ AI "kiểm hóa đơn có hợp lệ không": AI không truy cập hệ thống của cơ quan thuế, nên câu trả lời chỉ là đoán.

Bước 5: chỗ AI thật sự có ích

Sau khi bảng đã có số đọc bằng máy, AI giúp ở phần chữ:

Yêu cầu có thể sao chép
Bạn hỗ trợ kế toán mua hàng. Dưới đây là bảng hóa đơn đầu vào tháng 09/2026 đã đọc từ XML bằng Power Query,
có cột Trùng và Lệch tổng tính bằng công thức. Không tính lại số, không kết luận hóa đơn hợp lệ hay không.

Việc cần làm:
1. Với mỗi dòng có Trùng hoặc Lệch, viết một câu giải thích cho người kiểm và một việc cần làm tiếp.
2. Nhóm tên hàng hóa, dịch vụ theo nhóm chi phí gợi ý (văn phòng phẩm, sửa chữa bảo trì, tài sản, khác). Ghi "Gợi ý, cần kế toán duyệt".
3. Soạn nháp tin nhắn ngắn gửi người bán của hóa đơn lệch tổng, xin gửi lại tệp XML gốc. Không nêu số tài khoản hay thông tin ngoài bảng.

[Dán bảng: Tệp | Ký hiệu | Số | Mã số thuế người bán | Tên người bán | Tên hàng | Chưa thuế | Thuế | Thanh toán | Trùng | Lệch tổng]

Khi chỉ có PDF hoặc ảnh, dùng AI hoặc OCR để lấy số, rồi kiểm bằng cùng ba cột ở bước 3. Nếu được, xin người bán gửi XML để thay bản đọc từ ảnh.

Áp dụng vào dữ liệu của bạn

  • Một thư mục cho một tháng. Mỗi tháng thả tệp XML mới vào, bấm Refresh trong Power Query; bảng và ba cột kiểm cập nhật theo.
  • So với sổ: ghép khóa nhận diện với danh sách hóa đơn đã ghi sổ bằng XLOOKUP để biết hóa đơn nào chưa ghi, hóa đơn nào ghi sổ mà không có tệp.
  • Đo: số hóa đơn mỗi tháng, phút từ lúc nhận tệp tới lúc có bảng kiểm, số dòng phải sửa tay. Nếu phần mềm kế toán đang dùng đã có chức năng nhập XML hóa đơn, so thời gian hai cách trước khi chọn.

Dữ liệu không đưa vào công cụ AI công khai

Hóa đơn có tên, mã số thuế, địa chỉ của bên mua và bên bán. Chỉ dùng công cụ AI đơn vị cho phép. Phần đọc số bằng Power Query chạy trên máy bạn, không cần gửi tệp đi đâu.

Kiểm trước khi ghi sổ

  • Mã số thuế, ký hiệu, số hóa đơn để dạng văn bản, không mất số 0?
  • Mọi tệp trùng khóa đã được loại, không xóa nhầm hóa đơn cùng số khác ký hiệu?
  • Hóa đơn lệch tổng đã có bản gốc thay thế và đã tra cứu?
  • Cột trạng thái tra cứu đã có người điền và ngày tra?

Nguồn & lưu ý

  • Nghị định 254/2026/NĐ-CP và Thông tư 91/2026/TT-BTC về hóa đơn điện tử, chứng từ điện tử, ban hành 30/06/2026, hiệu lực 01/07/2026; bài điểm mới trên Cổng Xây dựng chính sách, 20/07/2026. Đối chiếu ngày 05/10/2026.
  • Bốn tệp XML là giả lập, cấu trúc rút gọn; tên thẻ đặt theo cách phổ biến để học, không phải đặc tả định dạng chuẩn. Kiểm tên thẻ trên tệp thật và tài liệu định dạng hiện hành của cơ quan thuế.
  • Các bước Power Query mô tả theo chức năng chung của Excel; tên menu có thể khác theo phiên bản. Câu lệnh AI chưa chạy trên công cụ nào.