ED05 - Kiến thức cơ bản về GoBD: Tính truy nguyên, Tính kiểm chứng được, Tính bất biến
Vấn đề
Một doanh nhân bắt đầu ghi sổ kế toán - và đứng trước câu hỏi: GoBD yêu cầu cụ thể những gì, và làm thế nào để tôi đáp ứng mà không cần phần mềm chuyên dụng đắt tiền?
Thực trạng hiện nay trong khu vực doanh nghiệp vừa và nhỏ (KMU):
- GoBD như một cuốn sách bảy ấn - GoBD (công văn BMF, 146 trang) trừu tượng, diễn đạt bằng văn phong pháp lý, gần như không thể tiếp cận với người ngoài ngành
- "Việc đó để tư vấn thuế lo" - nhiều doanh nhân giao GoBD cho StB mà bản thân không hiểu yêu cầu là gì - và phải trả tiền cho việc đó
- Giải pháp rời rạc - phần mềm tính lương, kế toán, kho lưu trữ chứng từ mỗi thứ riêng một chỗ, không có tính tuân thủ GoBD xuyên suốt
- PDF coi là "điện tử" - nhiều người tin rằng một file PDF trên ổ cứng là đáp ứng GoBD - nhưng GoBD yêu cầu khả năng đánh giá bằng máy (§ 147 Abs. 6 AO), chứ không chỉ là lưu trữ
- Không có tài liệu quy trình - GoBD Rz. 64–91 yêu cầu tài liệu quy trình, nhưng ở doanh nghiệp vừa và nhỏ thì ai lại có?
- Sửa đổi sau đó - các bút toán bị "sửa chữa" mà thay đổi không thể truy nguyên - GoBD Rz. 146 yêu cầu tính bất biến
Luận điểm cốt lõi
GoBD yêu cầu ba nguyên tắc cốt lõi, mà Git đáp ứng by Design:
- Tính truy nguyên (GoBD Rz. 146) - mỗi mục ghi phải có thể truy nguyên (Ai? Khi nào? Cái gì? Tại sao?)
- Tính kiểm chứng được (GoBD Rz. 147) - bộ sách kế toán phải có thể kiểm chứng (khả năng truy vết ngược/xuôi)
- Tính bất biến (GoBD Rz. 146) - sau khi ghi sổ, dữ liệu không được thay đổi (sửa chữa bằng các mục ghi mới)
Git đáp ứng cả ba một cách cấu trúc - không phải qua các kiểm soát bổ sung sau đó, mà qua chính kiến trúc của nó:
Rz. 146"] G --> P["Nachprüfbarkeit
Rz. 147"] G --> U["Unveränderbarkeit
Rz. 146"] N --> GN["Git: Commit-Autor
+ Zeitstempel
+ Commit-Message"] P --> GP["Git: V7GUID + SHA-256
retrograd/progressiv
auflösbar"] U --> GU["Git: Tags + Protected Branches
+ Obsoleszenz-Markierung
Korrekturen als neue Commits"] style G fill:#0F1B33,stroke:#0F1B33,color:#FBFAF7 style N fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style P fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style U fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style GN fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style GP fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style GU fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33
Compliance by Design: Tính tuân thủ GoBD không hình thành từ việc kiểm tra sau đó, mà từ việc lựa chọn phương tiện. Ai làm việc trong các Git-repo thì đáp ứng Tính truy nguyên, Tính kiểm chứng được và Tính bất biến một cách cấu trúc - không phải qua các Controls bổ sung.
GoBD - Nguồn gốc và phạm vi hiệu lực
Các GoBD (Grundsätze zur ordnungsmäßigen Führung und Aufbewahrung von Büchern, Aufzeichnungen und Unterlagen in elektronischer Form sowie zum Datenzugriff) là một công văn BMF ngày 28.11.2019 (BStBl I S. 1269), được sửa đổi lần cuối vào ngày 14.07.2025 (BStBl I S. 1502).
| Thuộc tính | Giá trị |
|---|---|
| Cơ quan ban hành | Bundesministerium der Finanzen (BMF) |
| Tính chất pháp lý | Chỉ thị hành chính (không phải luật, nhưng ràng buộc các cơ quan thuế) |
| Cơ sở | § 146 AO (các quy định về trật tự), § 147 AO (lưu trữ), HGB (§§ 238–241) |
| Phạm vi áp dụng | Cho mọi doanh nhân ghi sổ điện tử (thực tế: tất cả) |
| Khối lượng | 146 Randziffern (Rz.) |
Quan trọng: GoBD không phải là một "khuyến nghị" - chúng là chỉ thị hành chính mà các cơ quan thuế dựa vào để kiểm tra. Ai không đáp ứng GoBD sẽ đối mặt nguy cơ bị ước tính thuế (§ 162 AO), tiền phạt do chậm trễ (§ 152 AO) và trong trường hợp xấu nhất là thủ tục hình sự về thuế (§ 370 AO).
Chi tiết ba nguyên tắc cốt lõi của GoBD
1. Tính truy nguyên (GoBD Rz. 146)
GoBD Rz. 146: "Bộ sách kế toán phải được tổ chức sao cho một bên thứ ba có chuyên môn có thể trong thời gian hợp lý nắm được tổng quan về các nghiệp vụ kinh doanh và tình hình của doanh nghiệp."
Điều đó có nghĩa là: Một kiểm toán viên (hoặc tư vấn thuế, hoặc công chức thuế) phải có thể trong thời gian hợp lý truy nguyên được những gì đã xảy ra.
| Yêu cầu của GoBD | Git đáp ứng như thế nào |
|---|---|
| Ai đã ghi sổ? | git log --author hiển thị từng tác giả commit |
| Ghi sổ khi nào? | uuidV7 chứa dấu thời gian 48 bit (RFC 9562 §5.7) |
| Ghi sổ cái gì? | Commit-Diff hiển thị chính xác những gì đã được thêm/thay đổi |
| Ghi sổ tại sao? | Commit-Message ghi lại lý do |
| Với vai trò nào? | Trường role trong artefact JSON (GF, kế toán, trưởng F&E) |
Wer? Wann? Was?"] P --> SH["git show
Commit-Details"] P --> DF["git diff
Was hat sich geändert?"] P --> V7["uuidV7 decode
Exakte Erfassungszeit"] GL --> R["Nachvollziehbarkeit
in angemessener Zeit"] SH --> R DF --> R V7 --> R style P fill:#0F1B33,stroke:#0F1B33,color:#FBFAF7 style GL fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style SH fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style DF fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style V7 fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style R fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33
2. Tính kiểm chứng được (GoBD Rz. 147)
GoBD Rz. 147: "Bộ sách kế toán phải được tổ chức sao cho có thể kiểm chứng."
Điều đó có nghĩa là: Bộ sách kế toán phải có thể truy vết ngược và xuôi (xem ED03):
- Truy vết ngược: từ bút toán → chứng từ → mục ghi nhật ký → V7GUID
- Truy vết xuôi: từ chứng từ → bút toán → sổ cái → bảng cân đối mở đầu
| Yêu cầu của GoBD | Git đáp ứng như thế nào |
|---|---|
| Truy vết ngược | source_sha256 trong mục ghi nhật ký → chứng từ |
| Truy vết xuôi | V7GUID trong chứng từ → mục ghi nhật ký → sổ cái |
| Khả năng đánh giá bằng máy (§ 147 Abs. 6 AO) | JSON-Schema-First - dữ liệu có cấu trúc, không phải PDF |
| Tính đầy đủ | Pre-Commit-Hook kiểm tra rằng mỗi mục ghi sổ cái đều có source_sha256 |
3. Tính bất biến (GoBD Rz. 146)
GoBD Rz. 146: "Các mục ghi không được bị thay đổi theo cách mà nội dung ban đầu không còn nhận biết được."
Điều đó có nghĩa là: Sau khi ghi sổ, dữ liệu không được thay đổi. Các sửa chữa phải được thực hiện dưới dạng mục ghi mới kèm lý do.
| Yêu cầu của GoBD | Git đáp ứng như thế nào |
|---|---|
| Không sửa đổi sau đó | Các Git-commit là bất biến (SHA-256-Hash) |
| Sửa chữa dưới dạng mục ghi mới | Các commit mới với obsolescence: superseded_by |
| Sửa chữa có thể truy nguyên | git log hiển thị bản gốc + bản sửa + lý do |
| Protected Branches | Nhánh main được bảo vệ, không có Force-Push |
| Tags làm dấu phê duyệt | Tags đánh dấu các trạng thái đã phê duyệt (không thể thay đổi) |
Commit 1"] B --> TAG["Tag v1.0
freigegeben"] K["Korrektur nötig"] K --> C["Korrektur-Buchung
Commit 2"] C --> OBS["obsolescence:
status: superseded
superseded_by: Commit 2"] B --> OBS style B fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style TAG fill:#10A987,stroke:#0A7F5C,color:#FBFAF7 style K fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style C fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style OBS fill:#E5E7EB,stroke:#6B7280,color:#0F1B33
Quan trọng: Về mặt kỹ thuật, Git cho phép
git rebasevàgit commit --amend- nhưng chỉ lịch sử tuyến tính không bị viết lại mới tuân thủ GoBD. Pre-Commit-Hook kiểm tra rằng không có Force-Push nào lên nhánhmainvà rằng các sửa chữa được thực hiện dưới dạng commit mới kèm đánh dấu obsolescence.
GoBD và AO - cơ sở pháp lý
Ordnungsvorschriften
für Buchführung"] AO --> S147["§ 147 AO
Aufbewahrung
von Unterlagen"] S146 --> GoBD["GoBD
(BMF-Schreiben)
Konkretisierung
für elektronische Systeme"] S147 --> GoBD GoBD --> R146["Rz. 146
Nachvollziehbarkeit
Unveränderbarkeit"] GoBD --> R147["Rz. 147
Nachprüfbarkeit"] GoBD --> R64["Rz. 64–91
Verfahrensdokumentation"] GoBD --> R152["Rz. 152
Aufbewahrungsfristen"] style AO fill:#0F1B33,stroke:#0F1B33,color:#FBFAF7 style S146 fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style S147 fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style GoBD fill:#10A987,stroke:#0A7F5C,color:#FBFAF7 style R146 fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style R147 fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style R64 fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style R152 fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33
| Nguồn pháp lý | Nội dung | Liên quan GoBD |
|---|---|---|
| § 146 Abs. 1 AO | Các bút toán "từng nghiệp vụ một, đầy đủ, đúng đắn, kịp thời và có trật tự" | Rz. 146 (Tính truy nguyên) |
| § 146 Abs. 4 AO | Không có thay đổi nào làm nội dung ban đầu không còn nhận biết được | Rz. 146 (Tính bất biến) |
| § 146 Abs. 5 AO | "sẵn có mọi lúc và đọc được ngay lập tức" | Rz. 152 (Tính sẵn có) |
| § 147 Abs. 2 AO | "có thể được đánh giá bằng máy" | Rz. 147 (Tính kiểm chứng được) |
| § 147 Abs. 3 AO | Thời hạn lưu trữ (10/8/6 năm) | Rz. 152 (Lưu trữ) |
| § 147 Abs. 6 AO | Truy cập dữ liệu trong kiểm tra từ bên ngoài (Z1/Z2/Z3) | Rz. 147 (Truy cập dữ liệu) |
Truy cập dữ liệu GoBD (Z1, Z2, Z3)
GoBD định nghĩa ba hình thức truy cập mà cơ quan quản lý thuế có thể sử dụng trong một cuộc kiểm tra từ bên ngoài:
| Hình thức truy cập | Mô tả | Git hỗ trợ như thế nào |
|---|---|---|
| Z1 (truy cập trực tiếp) | Kiểm toán viên sử dụng hệ thống của doanh nhân | git log, git show, git grep trực tiếp trong repo |
| Z2 (truy cập gián tiếp) | Kiểm toán viên đưa ra yêu cầu, doanh nhân thực hiện đánh giá | git log --since, git grep, xuất JSON |
| Z3 (bàn giao phương tiện lưu trữ dữ liệu) | Doanh nhân bàn giao dữ liệu trên phương tiện lưu trữ | git bundle dưới dạng kho lưu trữ self-contained |
Z3 là điểm mạnh của Git: Một
git bundlechứa toàn bộ repo (lịch sử, các commit, các tag) trong một tệp duy nhất - self-contained, không cần tài khoản cloud, không cần giấy phép phần mềm. Kiểm toán viên có thể dùnggit cloneđể tái dựng repo trên hệ thống của mình và thực hiện mọi thao tác Z1/Z2. Đó là xuất Z3 tuân thủ GoBD "by Design".
Mở rộng GitCover: Static-Web làm cổng truy cập cho kiểm toán viên (Z3+)
Ngoài git bundle, các GitCover Tools (nếu được cài đặt và sử dụng) có thể
tạo ra một Static-Website điều hướng được bằng trình duyệt từ Tenant
Evidence Package trong khuôn khổ kết thúc kỳ kế toán. Website này
bao gồm:
- Mọi tài liệu DMS (chứng từ, hóa đơn, hợp đồng) dưới dạng HTML/PDF
- Các hợp đồng xuyên kỳ và các tài liệu có thời hạn dài
- Các báo cáo phân tích (sổ cái, Journal, BWA, bảng cân đối)
- Các quy định về quy trình (tài liệu quy trình, hệ thống tài khoản)
- Sidecars (
.v7g.mdvới V7GUID, SHA-256, Taxonomie) - Bằng chứng tính toàn vẹn (Manifest với các checksum)
(Periodenabschluss)"] EP --> GB["git bundle
(Z3-Basis)"] EP --> SW["Static-Web-Generator
(GitCover Tool)"] GB --> CL["git clone
(Prüfer rekonstruiert Repo)"] SW --> FS["Filesystem-Based-Web
(HTML + PDF + JSON)"] FS --> BR["Browser
(Prüfer navigiert)"] FS --> IDX["Index-Seiten
(nach Datum, Belegart, V7GUID)"] FS --> NAV["Navigation
(retrograd/progressiv)"] FS --> SRH["Suche
(Volltext, SHA-256, V7GUID)"] style EP fill:#0F1B33,stroke:#0F1B33,color:#FBFAF7 style GB fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style SW fill:#10A987,stroke:#0A7F5C,color:#FBFAF7 style CL fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style FS fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style BR fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style IDX fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style NAV fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style SRH fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33
Phương pháp an toàn nhất từ trước đến nay: Một Filesystem-Based-Web không cần hệ thống IAM, không cần hạ tầng máy chủ, không cần cơ sở dữ liệu, không cần kết nối mạng. Kiểm toán viên mở
index.htmltrong trình duyệt của mình - offline, cục bộ, không cần xác thực. Tính toàn vẹn được đảm bảo bởi Manifest với các checksum SHA-256, chứ không phải bởi quyền truy cập. Đây là hình thức truy cập an toàn nhất cho kiểm toán viên, vì không có bề mặt tấn công nào.
| Thuộc tính | git bundle (Z3) | Static-Web (Z3+) |
|---|---|---|
| Kiểm toán viên cần | Git đã cài đặt | Chỉ cần trình duyệt |
| Điều hướng | CLI (git log, git show) |
Trình duyệt (nhấp chuột, tìm kiếm) |
| Báo cáo phân tích | Thủ công qua git grep |
Các trang chỉ mục được tạo sẵn |
| Tài liệu DMS | Trong repo (PDF, XML) | Nhúng dưới dạng HTML/PDF |
| Tài liệu quy trình | Markdown trong repo | Được render thành HTML |
| Tính toàn vẹn | Git-SHA-256 | Manifest + SHA-256 cho từng tệp |
| Cần IAM | Không | Không |
| Cần mạng | Không | Không |
| Bề mặt tấn công | Tối thiểu | Tối thiểu (chỉ Filesystem) |
Ví dụ thực tế: Doanh nhân (
E1) thực hiện kết thúc kỳ kế toán cho FY2026. GitCover Tool tạo ra một Tenant Evidence Package vớigit bundle(dành cho kiểm toán viên am hiểu kỹ thuật) và một Static-Website (dành cho những kiểm toán viên chỉ muốn dùng trình duyệt). Cả hai được bàn giao trên một ổ USB - self-contained, offline, không cần IAM. Kiểm toán viên tự chọn, mởgit clonehayindex.html.
Đòn bẩy rủi ro
| Hôm nay (cheap) | Ngày mai (chắc chắn chống sửa đổi) | Rủi ro được giảm thiểu |
|---|---|---|
| Git-repo làm phương tiện ghi sổ | GoBD Rz. 146/147 được đáp ứng by Design | Ước tính thuế § 162 AO |
git log làm bằng chứng |
Tính truy nguyên trong thời gian hợp lý | Phủ nhận tính đúng chuẩn mực |
| V7GUID + SHA-256 cho từng mục ghi | Truy vết ngược/xuôi | Giảm giá trị chứng cứ |
| Tags + Protected Branches | Tính bất biến sau phê duyệt | Vi phạm GoBD do sửa đổi sau đó |
git bundle làm xuất Z3 |
Bàn giao phương tiện lưu trữ dữ liệu không cần tài khoản cloud | Vi phạm GoBD do hệ thống cũ không truy cập được |
| Đánh dấu obsolescence | Sửa chữa có thể truy nguyên | Các thay đổi bị che giấu |
| Static-Web làm Z3+ (kết thúc kỳ kế toán) | Truy cập của kiểm toán viên không cần IAM, chỉ cần trình duyệt | **Vi phạm GoBD do dữ liệu không thể tiếp cận/thiếu thân thiện với kiểm toán viên ** |
Yêu cầu Harness (xem trước)
Có thể suy ra từ ED05:
| ID | Yêu cầu | Mức ưu tiên |
|---|---|---|
| FA-6.1 | Tài liệu quy trình dưới dạng artefact Git được phiên bản hóa | MUST |
| FA-6.2 | Sổ cái (Journal) dưới dạng JSON với V7GUID + SHA-256 cho từng mục ghi | MUST |
| FA-6.5 | Lưu trữ 10 năm qua các Evidence-Package (Git-Bundle) | MUST |
| FA-6.6 | Tính bất biến sau phê duyệt (Tags, Protected Branches) | MUST |
| FA-6.7 | Trình tạo Static-Web cho kết thúc kỳ kế toán (Z3+): website điều hướng được bằng trình duyệt từ Tenant Evidence Package, không cần IAM, Filesystem-Based | SHOULD |
| TA-2.1 | Pre-Commit: xác thực JSON-Schema | MUST |
| TA-2.4 | Pre-Commit: kiểm tra trạng thái obsolescence (không commit lên obsolete) |
SHOULD |
Danh sách yêu cầu đầy đủ nằm trong Harness-Anforderungen.md.
Nguồn
- GoBD (công văn BMF ngày 28.11.2019, BStBl I S. 1269, sửa đổi lần cuối 14.07.2025, BStBl I S. 1502)
- AO (§ 146 - các quy định về trật tự, § 147 - lưu trữ, § 162 - ước tính thuế, § 152 - tiền phạt do chậm trễ)
- HGB (§§ 238–241 - nghĩa vụ ghi sổ kế toán)
AFJD/agents/(ẩn danh hóa) - khái niệm SSoT với cách dùng Git tuân thủ GoBDGitCover.Ledger/docs/02-Tenant-Evidence-Package.md- khái niệm Tenant Evidence Package (kết thúc kỳ kế toán, các vai trò repo, quy tắc tính đầy đủ)GitCover.Toolbox- bộ công cụ GitCover (phân tích, V7GUID, thành phần UI)
Cấu trúc nguồn và các liên kết tham chiếu CDN
| Vai trò | Địa điểm | Mục đích |
|---|---|---|
| Primary / SSoT | git.gitcover.org/GCC | Kho lưu trữ chính tắc (ký GPG, có phiên bản) |
| Public OSS Mirror / CDN | codeberg.org/gitcover-commons | Bản sao chỉ đọc; FLOSS-Discovery |
| Community Hub | github.com/gitcover-commons | Issues & Discussions; tham chiếu mã nguồn tới Codeberg |
Lưu ý: Cách phân bổ này giữa nguồn, Mirror và Community-Hub phản ánh hiện trạng và có thể thay đổi. Vui lòng kiểm tra nguồn chính tắc tương ứng trên gitcover.org để biết trạng thái hiện tại.