Hoá đơn điện tử thật là một tệp dữ liệu, thường ở định dạng XML, có chữ ký số của người bán và với hoá đơn có mã thì có thêm mã của cơ quan thuế. Bản PDF bạn hay nhận qua thư chỉ là bản thể hiện của tệp đó. PDF có thể bị sửa bằng phần mềm thông dụng trong vài phút; tệp XML đã ký thì sửa một ký tự là chữ ký báo lỗi.
Vì vậy cách chắc nhất để biết tờ hoá đơn trong tay có bị can thiệp hay không là mở tệp XML, kiểm chữ ký, rồi đối chiếu từng trường với bản PDF. Bài này hướng dẫn việc đó ở mức người làm kế toán, mua hàng không chuyên công nghệ vẫn làm được, và chỉ ra những kiểu sửa hay gặp.
Vì sao bản PDF không đủ để tin
Bản thể hiện của hoá đơn điện tử được sinh ra từ tệp dữ liệu, để người đọc nhìn cho dễ. Nó không phải là hoá đơn gốc. Khi người bán gửi thư, phần mềm hoá đơn thường đính kèm cả hai, hoặc gửi đường dẫn để người mua tải về. Nhiều người chỉ mở PDF, in ra, ký nháy, đưa vào hồ sơ thanh toán, và tệp XML nằm im trong hộp thư.
Chỗ yếu nằm ở đó. PDF là tệp hình ảnh và chữ thông thường; chỉnh tổng tiền, đổi tên người mua, sửa số tài khoản nhận tiền in ở chân hoá đơn đều dễ. Chữ ký số "hiển thị" trên PDF, dạng ô vuông có dấu tích xanh, có khi chỉ là hình vẽ, không chứng minh được gì. Kẻ gian biết điều này nên thường gửi một bản PDF đã sửa kèm lời nhắn "file XML bị lỗi, anh chị dùng tạm bản này".
Tệp XML thì khác. Chữ ký số của người bán được tính trên toàn bộ dữ liệu. Thay đổi bất kỳ trường nào sau khi ký, phần mềm kiểm sẽ báo dữ liệu đã bị thay đổi. Với hoá đơn có mã, phần cơ quan thuế cấp mã cũng gắn với dữ liệu đó. Người làm giả muốn qua mặt phép kiểm này phải có khoá bí mật của người bán, việc gần như không thể với người ngoài.
Pháp luật giao dịch điện tử hiện hành, mà trụ cột là Luật Giao dịch điện tử 2023 có hiệu lực từ 1/7/2024, coi thông điệp dữ liệu có chữ ký số hợp lệ là căn cứ đáng tin về tính toàn vẹn. Bản in hay bản PDF chỉ có giá trị khi đối chiếu được với dữ liệu gốc.
Cần những gì để mở và kiểm tệp XML
Bạn không cần biết lập trình. Chuẩn bị mấy thứ sau là đủ:
- Tệp XML gốc người bán gửi. Thường nằm cùng thư với bản PDF, hoặc tải từ đường dẫn tra cứu của nhà cung cấp hoá đơn. Không đổi tên, không mở bằng trình soạn thảo rồi lưu đè.
- Phần mềm đọc hoá đơn điện tử. Nhiều nhà cung cấp dịch vụ hoá đơn có công cụ đọc tệp XML miễn phí, hiển thị lại hoá đơn và kiểm chữ ký. Phần mềm kế toán phổ biến cũng thường có chức năng nhập và kiểm tệp XML đầu vào.
- Cổng tra cứu của cơ quan thuế. Dùng để tra chéo các trường chính, tách biệt với phần mềm của người bán.
- Bản PDF hoặc bản in bạn đang định dùng. Đây là thứ cần kiểm, không phải công cụ để kiểm.
- Một bảng ghi kết quả. Ghi lại ngày kiểm, người kiểm, kết quả chữ ký, các trường đã đối chiếu.
Lưu ý: không nên tải công cụ đọc XML từ đường dẫn lạ trong thư của người bán mới. Kẻ gian có thể gửi kèm "phần mềm đọc hoá đơn" chứa mã độc. Dùng công cụ từ nguồn bạn đã biết, hoặc chức năng sẵn có trong phần mềm kế toán của mình.
Các bước kiểm một hoá đơn bằng tệp XML
Thứ tự dưới đây đi từ phép kiểm mạnh nhất tới các phép đối chiếu chi tiết.
- Mở tệp XML bằng công cụ đọc hoá đơn. Công cụ sẽ hiển thị lại nội dung hoá đơn từ dữ liệu, không phụ thuộc bản PDF.
- Đọc kết quả kiểm chữ ký số. Cần ba điều: chữ ký hợp lệ, dữ liệu không bị thay đổi sau khi ký, chứng thư số thuộc đúng người bán (tên, mã số thuế khớp) và còn hiệu lực tại thời điểm ký.
- Với hoá đơn có mã, kiểm phần mã của cơ quan thuế. Công cụ thường hiển thị mã và trạng thái hợp lệ của phần này.
- Đặt bản hiển thị từ XML cạnh bản PDF. So từng trường: tên, mã số thuế, địa chỉ hai bên; ký hiệu, số, ngày lập; từng dòng hàng, đơn giá, số lượng, thuế suất; tổng tiền bằng số và bằng chữ.
- Tra chéo trên cổng của cơ quan thuế. Nhập các trường chính lấy từ XML, không lấy từ PDF.
- Ghi kết quả và lưu cả hai tệp. Tệp XML là bản phải giữ lâu dài; PDF chỉ để đọc.
Nếu bước 2 đã báo dữ liệu bị thay đổi hoặc chứng thư không thuộc người bán, bạn có thể dừng ở đó: tờ hoá đơn không dùng được, chuyển sang bước làm việc với người bán.
Những kiểu sửa bản PDF hay gặp và cách đối chiếu bắt được
Ví dụ giả định dưới đây tổng hợp từ các kiểu thủ đoạn phổ biến, không gắn với vụ việc cụ thể nào.
| Kiểu sửa | Mục đích của kẻ gian | Đối chiếu ở đâu |
|---|---|---|
| Tăng tổng tiền, thêm dòng hàng | Thanh toán nhiều hơn thực tế, nhân viên rút phần chênh | Tổng tiền trên XML và trên cổng tra cứu |
| Đổi tên, mã số thuế người mua | Dùng hoá đơn của khách khác cho giao dịch của mình | Phần người mua trên XML |
| Thay số tài khoản ngân hàng in ở chân hoá đơn | Hướng tiền sang tài khoản kẻ gian | XML thường không chứa số tài khoản; xác minh tài khoản qua kênh độc lập |
| Sửa ngày lập | Khớp với kỳ thanh toán, che việc lập trễ | Ngày lập trên XML và cổng tra cứu |
| Dựng PDF từ đầu, dán hình chữ ký | Tạo hoá đơn không tồn tại | Không có XML, hoặc XML không qua kiểm chữ ký |
Dòng về số tài khoản đáng chú ý: thông tin tài khoản nhận tiền nhiều khi chỉ là phần trình bày thêm, không nằm trong dữ liệu hoá đơn. Đổi số tài khoản là thủ đoạn lừa đảo riêng; cách phòng trước khi chuyển tiền cho nhà cung cấp đã có nhiều bài ở các chuyên trang bảo mật, ở đây chỉ nhắc rằng hoá đơn đúng không có nghĩa tài khoản in kèm là đúng.
Khi người bán không gửi được tệp XML
"Phần mềm bên em chỉ xuất được PDF". Hoá đơn điện tử theo quy định được lập dưới dạng dữ liệu điện tử; phần mềm nào lập được hoá đơn cũng phải xuất được dữ liệu gốc. Câu trả lời này cần được hỏi lại, lịch sự nhưng rõ ràng.
"File XML lỗi, chị dùng PDF tạm". Đề nghị người bán gửi lại tệp, hoặc gửi đường dẫn tra cứu của nhà cung cấp hoá đơn để bạn tự tải. Không chấp nhận "tạm" với hoá đơn giá trị lớn.
"Bên em xuất hoá đơn giấy". Với đa số người bán, hoá đơn giấy tự in đã không còn được dùng từ khi chuyển hẳn sang hoá đơn điện tử. Trường hợp này cần xem kỹ hơn, có bài riêng trong chuyên mục.
Hoá đơn có mã nhưng không có tệp. Bạn vẫn có thể tra trên cổng của cơ quan thuế và, với doanh nghiệp có tài khoản, tải dữ liệu hoá đơn đầu vào mang mã số thuế của mình. Đó là nguồn độc lập với người bán, đáng tin hơn tệp người bán gửi.
Người bán né tránh lặp lại. Ghi nhận bằng văn bản, tạm dừng thanh toán phần chưa trả, và xem lại toàn bộ quan hệ với người bán này. Né tránh cung cấp dữ liệu gốc là dấu hiệu đáng ngại hơn mọi lỗi trình bày.
Ví dụ giả định: một lần đối chiếu bắt được bản bị sửa
Một công ty thương mại nhỏ ở Hải Phòng nhận qua thư điện tử hoá đơn tiền thuê kho tháng này từ đơn vị cho thuê quen. Thư có bản PDF, không có tệp XML, kèm lời nhắn: "Tháng này bên em đổi phần mềm, file XML gửi sau". Bản PDF trông y như mọi tháng: cùng mẫu, cùng chữ ký hiển thị, cùng số tài khoản. Chỉ có tổng tiền nhỉnh hơn một chút vì "phụ thu điện".
Kế toán làm theo quy trình: không chuyển hoá đơn sang thanh toán khi chưa kiểm dữ liệu gốc. Tra trên cổng của cơ quan thuế bằng ký hiệu và số hoá đơn in trên PDF, kết quả ra đúng một hoá đơn của đơn vị cho thuê, nhưng tổng tiền là con số của các tháng trước, không có khoản phụ thu. Kế toán gọi cho người phụ trách bên cho thuê theo số đã lưu sẵn trong hồ sơ, không theo số trong thư. Bên cho thuê xác nhận không hề có phụ thu và không đổi phần mềm.
Hoá ra hộp thư của một nhân viên bên cho thuê đã bị chiếm, kẻ gian sửa bản PDF và gửi đi. Nếu chỉ nhìn PDF, khoản chênh và có thể cả tiền thuê sẽ đi vào một tài khoản lạ ở các tháng sau. Điều đáng chú ý là không cần công cụ gì phức tạp: chỉ cần thói quen tra tổng tiền từ nguồn độc lập và xác minh qua kênh liên lạc đã biết.
Lưu trữ để còn kiểm lại được về sau
Kiểm một lần chưa đủ nếu bạn không giữ được tệp gốc. Vài năm sau, khi có người hỏi về một khoản chi, bản PDF in ra không còn chứng minh được gì; tệp XML còn nguyên chữ ký thì vẫn kiểm lại được. Vì vậy hãy lưu tệp XML ở nơi có sao lưu, đặt tên theo một quy ước thống nhất, ví dụ mã số thuế người bán, ký hiệu, số hoá đơn, và không mở rồi lưu đè bằng trình soạn thảo văn bản.
Thời hạn lưu trữ hoá đơn, chứng từ kế toán theo pháp luật kế toán và thuế hiện hành khá dài; quy định chi tiết và cách tổ chức kho chứng từ đã có ở các chuyên trang thuế, kế toán. Ở góc xác thực, chỉ cần nhớ: thứ phải giữ là tệp dữ liệu gốc, kèm kết quả kiểm chữ ký lúc nhận.
Với doanh nghiệp nhận nhiều hoá đơn, một hộp thư riêng chỉ để nhận hoá đơn, một người phụ trách kiểm và một thư mục lưu theo tháng sẽ giảm đáng kể nguy cơ bỏ sót. Hoá đơn nào chưa qua bước kiểm XML thì chưa chuyển sang bộ phận thanh toán.
Câu hỏi thường gặp
Mở tệp XML bằng trình duyệt thấy toàn chữ và ký hiệu, có đọc được không?
Đọc được nhưng khó và không kiểm được chữ ký. Trình duyệt chỉ hiển thị cấu trúc dữ liệu. Bạn nên dùng công cụ đọc hoá đơn điện tử hoặc chức năng nhập hoá đơn của phần mềm kế toán để vừa xem lại hoá đơn vừa kiểm chữ ký.
Chữ ký số trên bản PDF có dấu tích xanh thì có đáng tin không?
Không đủ. Dấu tích trên PDF có thể là hình vẽ. Chỉ khi kiểm chữ ký trên tệp dữ liệu gốc, hoặc trên tệp PDF có chữ ký số thật bằng phần mềm đọc chuyên dụng, kết quả mới có ý nghĩa.
Kiểm XML báo chữ ký hợp lệ nhưng tên trong chứng thư khác tên người bán thì sao?
Đó là dấu hiệu nghiêm trọng. Hoá đơn phải được ký bằng chứng thư số của chính người bán. Chứng thư mang tên đơn vị khác cho thấy hoá đơn có thể do người khác lập. Dừng sử dụng và yêu cầu người bán giải trình bằng văn bản.
Có cần kiểm XML với mọi hoá đơn nhỏ không?
Nếu phần mềm kế toán tự kiểm khi nhập tệp thì nên để nó kiểm tất cả. Nếu làm tay, ưu tiên hoá đơn từ người bán mới, hoá đơn giá trị lớn, và hoá đơn có bất kỳ chỗ nào đáng ngờ.
Đổi tên tệp XML có làm hỏng chữ ký không?
Đổi tên tệp không làm thay đổi nội dung nên không ảnh hưởng chữ ký. Điều làm hỏng là mở tệp bằng trình soạn thảo rồi lưu lại, vì có thể thay đổi định dạng ký tự hoặc khoảng trắng bên trong.
Hoá đơn của hộ kinh doanh có tệp XML không?
Hộ kinh doanh dùng hoá đơn điện tử, kể cả hoá đơn khởi tạo từ máy tính tiền, cũng có dữ liệu gốc. Cách lấy tệp có thể khác, qua đường dẫn tra cứu hoặc qua cổng của cơ quan thuế, nhưng nguyên tắc kiểm vẫn như trên.