ED09 - AO Fundamentals: Taxation Procedure, Deadlines, Voluntary Disclosure
Problem
The Fiscal Code (AO) is the foundation of German tax law - but in the SME sector it is largely unknown:
- "AO? Never heard of it." - many entrepreneurs don't know the AO, even though they work according to it every day (bookkeeping, deadlines, audits)
- Missed deadlines - assessment periods, filing deadlines, and limitation periods are missed because nobody monitors them
- Estimates as a threat - § 162 AO (estimate) is perceived as an abstract threat, without clarity on when it takes effect
- Voluntary disclosure as a last resort - § 371 AO (voluntary disclosure) is known as the "emergency brake", but the requirements are complex
- External audits as a bogeyman - § 193 AO (external audit) is feared, without clarity on what it actually means
- No deadline monitoring - deadlines are in the calendar, but nobody automatically warns before they expire
Key message
The AO governs the taxation procedure - and GitCover makes the obligations resulting from it machine-readable and automatically monitorable:
- Deadlines as a Git artifact -
checks/FRISTEN_CHECK.mdwith auto-warning (see ED08) - External audits as an Evidence-Package - Z3/Z3+ export (see ED05)
- Avoiding estimates through GoBD compliance - complete, traceable, immutable bookkeeping (see ED05–ED08)
- Voluntary disclosure as a last resort - documented in the journal if GoBD compliance cannot be established
Compliance by Design: The AO obligations are not fulfilled through subsequent audits, but through **structural ** Git-native compliance - deadline check, Evidence-Packages, GoBD-compliant bookkeeping.
The Fiscal Code (AO) - Overview
§§ 78–133"] AO --> FB["Festsetzungs- und
Feststellungsverfahren
§§ 155–217"] AO --> AP["Außenprüfung
§§ 193–203"] AO --> SZ["Sanktionen
§§ 152, 162, 370, 379"] BV --> AN["Anmeldungen
(LStA, UStA, SV)"] FB --> FF["Festsetzungsfristen
§ 169 AO"] AP --> Z["Datenzugriff
Z1/Z2/Z3 (§ 147 Abs. 6)"] SZ --> VS["Verspätungszuschlag
§ 152 AO"] SZ --> SC["Schätzung
§ 162 AO"] SZ --> ST["Steuerstrafverfahren
§ 370 AO"] style AO fill:#0F1B33,stroke:#0F1B33,color:#FBFAF7 style BV fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style FB fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style AP fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style SZ fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style AN fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style FF fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style Z fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style VS fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style SC fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style ST fill:#FDBA74,stroke:#C2410C,color:#0F1B33
| AO area | Sections | SME relevance |
|---|---|---|
| Taxation procedure | §§ 78–133 | Returns (LStA, UStA), duties to cooperate |
| Assessment procedure | §§ 155–217 | Assessment periods (§ 169), estimates (§ 162) |
| External audit | §§ 193–203 | Business audit, data access Z1/Z2/Z3 |
| Sanctions | §§ 152, 162, 370, 379 | Late-filing surcharge, estimates, tax criminal proceedings |
| Bookkeeping | §§ 140–147 | GoBD basis (see ED05–ED08) |
| Voluntary disclosure | § 371 | Emergency brake for tax evasion |
Deadlines in the taxation procedure
Monthly deadlines
Annual deadlines
Assessment periods (§ 169 AO)
| Deadline type | Deadline | Legal basis | GitCover monitoring |
|---|---|---|---|
| Wage tax return | 10th of the following month (+5 days electronic) | § 41a EStG | FRISTEN_CHECK.md + auto-warning |
| VAT advance return | 10th of the following month | § 18 UStG | FRISTEN_CHECK.md + auto-warning |
| Social security contribution statement | third-to-last banking day | § 23 SGB IV | FRISTEN_CHECK.md + auto-warning |
| ESt/KSt/USt return | 31 July (extended by tax advisor) | § 149 AO | FRISTEN_CHECK.md |
| Wage tax certificate | 28 February of the following year | § 41b EStG | FRISTEN_CHECK.md |
| Assessment period (regular) | 4 years | § 169 Abs. 2 Nr. 2 AO | Retention period tracking |
| Assessment period (understatement) | 5 years (reckless) / 10 years (intentional) | § 169 Abs. 2 Nr. 1/2 AO | Retention period tracking |
Practical tip: The deadline check (
checks/FRISTEN_CHECK.md) is maintained as a Git artifact and updated on every commit. The auto-warning (see ED08) warns 14 days before an authority deadline expires. This way, no missed deadline is overlooked anymore - and § 152 AO (late-filing surcharge of up to 25,000 EUR) is avoided.
Estimates (§ 162 AO) - and how Git avoids them
Daten nicht verwertbar
(unvollständig, verändert)"] S --> G2["Grund 2:
Buchführung nicht GoBD-konform"] S --> G3["Grund 3:
Unternehmer liefert keine Auskunft"] G1 --> R["FA schätzt die Besteuerungsgrundlagen
oft zuungunsten des Unternehmers"] G2 --> R G3 --> R R --> B["Beweislastumkehr:
Unternehmer muss Schätzung widerlegen
bei fehlenden Daten kaum möglich"] G["GitCover-Lösung"] G --> V["Vollständige GoBD-konforme Buchführung"] G --> N["Nachvollziehbarkeit (Rz. 146)"] G --> P["Nachprüfbarkeit (Rz. 147)"] G --> E["Evidence-Package (Z3+)"] V --> AV["Schätzung vermieden"] N --> AV P --> AV E --> AV style S fill:#0F1B33,stroke:#0F1B33,color:#FBFAF7 style G1 fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style G2 fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style G3 fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style R fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style B fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style G fill:#10A987,stroke:#0A7F5C,color:#FBFAF7 style V fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style N fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style P fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style E fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style AV fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33
An estimate is the consequence - not the penalty: § 162 AO is not a penalty, but a consequence of unusable bookkeeping. Anyone who keeps GoBD-compliant books (ED05–ED08) makes estimates unnecessary - the auditor can read the tax bases directly from the repo.
External audits (§ 193 AO) - and how Git makes them easier
| Audit type | Trigger | Frequency | GitCover support |
|---|---|---|---|
| Regular audit | Size/revenue of the company | 3–5 years | Evidence-Package (Z3+), Static-Web |
| Audit for cause | Suspicion, tips, random sample | If there is cause | git bundle, git log, git grep |
| Follow-up audit | Anomalies in the preliminary audit | After the regular audit | Complete history traceable |
Practical example: The auditor announces an external audit. The entrepreneur (
E1) generates a Tenant Evidence Package (git bundle + Static-Web + Manifest) for the audit period. The auditor receives the USB stick, opensindex.html(Z3+) orgit clone(Z3), and can navigate all bookings, receipts, process documentation, and sidecars - offline, without IAM, without a cloud account.
Voluntary disclosure (§ 371 AO) - the emergency brake
entdeckt"] H --> SA["Selbstanzeige § 371 AO
möglich?"] SA -->|ja, wenn| V1["1. Vollständig
alle verkürzten Steuern"] SA -->|ja, wenn| V2["2. Unverzüglich
nach Entdeckung"] SA -->|ja, wenn| V3["3. Kein Prüfungsbeginn
noch keine Prüfung angekündigt"] SA -->|ja, wenn| V4["4. Nachzahlung
innerhalb angemessener Frist"] V1 --> W["Wirkung:
Straffreiheit (§ 371 Abs. 3)"] V2 --> W V3 --> W V4 --> W SA -->|nein| ST["Steuerstrafverfahren
§ 370 AO
Freiheitsstrafe bis 5 Jahre"] style H fill:#0F1B33,stroke:#0F1B33,color:#FBFAF7 style SA fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style V1 fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style V2 fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style V3 fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style V4 fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style W fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style ST fill:#FDBA74,stroke:#C2410C,color:#0F1B33
GitCover and voluntary disclosure: When an entrepreneur discovers that they have understated taxes (e.g., a forgotten VAT return), they can document the voluntary disclosure in the journal - with
role: "GF",source: "E1", and a commit with a rationale. Completeness (§ 371 Abs. 1) is evidenced by the repo: all understated taxes are traceable. Immediacy is documented by theuuidV7timestamp in the journal entry.
Caution - voluntary disclosure is complex: The requirements for a valid voluntary disclosure are strict. If anything is unclear, always consult a tax advisor or a lawyer specialized in tax law. GitCover documents the voluntary disclosure - but it does not replace legal advice.
Sanctions for AO violations
| Sanction | Legal basis | Requirement | Amount |
|---|---|---|---|
| Late-filing surcharge | § 152 AO | Missed deadline for returns | up to 25,000 EUR |
| Estimate | § 162 AO | Unusable bookkeeping | often to the disadvantage |
| Penalty for delay | § 146 Abs. 2c AO | Outsourcing without approval | 2,500–250,000 EUR |
| Administrative offense | § 379 AO | Violation of record-keeping obligations | up to 50,000 EUR |
| Tax criminal proceedings | § 370 AO | Intentional tax evasion | imprisonment of up to 5 years |
| Voluntary disclosure | § 371 AO | Exemption from punishment if complete | - (repayment + 6% surcharge) |
Risk leverage: Each of these sanctions is avoided or mitigated through GoBD-compliant use of Git - the deadline check prevents late-filing surcharges, GoBD-compliant bookkeeping prevents estimates, Evidence-Packages facilitate external audits, and the repo itself is the best proof of proper order.
Risk leverage
| Today (cheap) | Tomorrow (audit-proof) | Risk mitigated |
|---|---|---|
| Deadline check as a Git artifact | Missed deadlines avoided | Late-filing surcharge § 152 AO |
| GoBD-compliant bookkeeping | Estimate § 162 AO avoided | Estimate to the disadvantage |
| Evidence-Package (Z3+) | External audit facilitated | Penalty for delay § 146 Abs. 2c |
git log as evidence |
Proper order proven | Administrative offense § 379 AO |
| Voluntary disclosure in the journal | Completeness + immediacy documented | Tax criminal proceedings § 370 AO |
Harness requirement (preview)
Derivable from ED09:
| ID | Requirement | Priority |
|---|---|---|
| FA-4.1 | Deadline check file (checks/FRISTEN_CHECK.md) |
MUST |
| FA-4.2 | Deadline entries with date, type, Tenant, receipt reference | MUST |
| FA-4.3 | Auto-warning for deadlines under 14 days | SHOULD |
| FA-4.5 | Follow-up marker for assessment notices/documents | MUST |
| FA-6.5 | 10-year retention via Evidence-Packages | MUST |
| FA-6.7 | Static-Web generator for period-end closing (Z3+) | SHOULD |
| FA-12.5 | Interface error logging (errors as repo events) | MUST |
The complete list of requirements in Harness-Anforderungen.md.
Sources
- AO (§§ 78–133 - taxation procedure, § 146–147 - bookkeeping/retention, § 152 - late-filing surcharge, § 162 - estimate, § 169 - assessment periods, § 193–203 - external audit, § 370 - tax evasion, § 371 - voluntary disclosure, § 379 - administrative offense)
- EStG (§ 41a - wage tax return, § 41b - wage tax certificate)
- UStG (§ 18 - VAT advance return)
- SGB IV (§ 23 - social security contribution statement)
- GoBD (BMF letter, Rz. 146 - traceability, Rz. 147 - verifiability)
AFJD/agents/(anonymized) - SSoT concept with deadline check, external audit preparation
Source topology and CDN reference links
| Role | Location | Purpose |
|---|---|---|
| Primary / SSoT | git.gitcover.org/GCC | Canonical storage (GPG-signed, versioned) |
| Public OSS Mirror / CDN | codeberg.org/gitcover-commons | Read-only mirror; FLOSS discovery |
| Community Hub | github.com/gitcover-commons | Issues & Discussions; source code reference on Codeberg |
Note: This mapping of sources, mirror, and community hub reflects the current state and may change. Please check the respective canonical source on gitcover.org for the current state.