ED14 - Tax Office: Tax Number, § 60a AO, Payroll Tax Return
Problem
After incorporation and trade registration, the tax office (FA) makes contact—but in the SME sector, it is unclear which obligations this entails and how they are evidenced in the repo:
- "Tax number? The tax advisor has that." - many business owners do not know their own tax number, let alone where it is kept
- Payroll tax return as a black box - the LStA is prepared by the payroll office, but the business owner has no evidence in the repo
- ELSTER certificate not documented - the personal or organization certificate is installed somewhere, but is not evidenced in the repo
- VAT notice confused with corporation tax notice - there are different tax numbers for different tax types, but only one is available
- No central deadline monitoring for tax office submissions - LStA, UStA, income/corporation tax returns have different deadlines, but nobody monitors them centrally
- § 60a AO decision unknown - the decision on nonprofit status (§ 60a Abs. 1 AO) is the basis for tax exemptions, but it is somewhere in paper form
Core Message
Tax office obligations in the Git repo mean:
- Tax numbers as registry entries - centralized storage in
registry/with a sidecar, one number per tax type - Payroll tax return as a JSON artifact - LStA with
source_sha256referencing the ELSTER receipt - ELSTER certificate documented -
.pfxfile with a sidecar (not the certificate itself in the repo, but the evidence) - Deadline check for all tax office submissions - LStA, UStA, income/corporation tax returns with an automatic warning
- § 60a AO decision as evidence with a sidecar - exemption decision with validity tracking
Compliance by Design: Tax office obligations are not managed after the fact, but are structurally captured through registry entries with sidecars, deadline check and JSON artifacts.
Tax Numbers in the Registry Directory
| Identifier | Source | Use | Storage |
|---|---|---|---|
| KSt tax number | Tax office notice | Corporation tax return | registry/finanzamt/ + sidecar |
| USt tax number | Tax office notice | VAT return, annual return | registry/finanzamt/ + sidecar |
| LSt tax number | Tax office notice | Payroll tax return, LSt certificate | registry/finanzamt/ + sidecar |
| W-IdNr | BZSt notice | Business identification number | registry/bzst/ + sidecar |
| USt-IdNr | BZSt notice | VAT identification number (EU) | registry/bzst/ + sidecar |
| ELSTER certificate | ELSTER registration | Electronic submissions | registry/elster/ + sidecar |
| § 60a AO decision | Tax office decision | Recognition of nonprofit status | registry/finanzamt/ + sidecar |
Practical example: The
KMUhas the KSt tax number<STNR>, USt tax number<STNR>, LSt tax number<STNR>, W-IdNr<WID>, and USt-IdNrDE<UID>. Each number is stored as an evidence document with a sidecar inregistry/. The § 60a AO decision (recognition of nonprofit status) is also stored there, with validity tracking.
§ 60a AO Decision - Nonprofit Status
| Property | Value |
|---|---|
| Legal basis | § 60a Abs. 1 AO |
| Content | Recognition of nonprofit status (§§ 51-68 AO) |
| Effect | KSt exemption, PV exemption, partial USt exemption, VBG exemption possible |
| Validity | Until it is withdrawn or recognition is revoked |
| Storage | registry/finanzamt/ with sidecar (SHA-256 + V7GUID:uuidV7) |
Important: The § 60a AO decision is the basis for all nonprofit privileges (KSt, USt, VBG, lump-sum rules). Without this decision, tax exemptions cannot be substantiated. The decision must be stored in the repo with a sidecar so that evidence can be provided during an audit.
Payroll Tax Return (§ 41a EStG)
| Step | Action | Deadline | GitCover implementation |
|---|---|---|---|
| Payroll statement | Gross-to-net calculation (see ED23) | Monthly | JSON artifact in the repo |
| LStA calculated | LSt, Soli, KiSt from the payroll statement | - | tags: ["lsta", "§41a-estg"] |
| ELSTER transmission | Electronically via ELSTER | 10th of the following month (+5 days) | ELSTER receipt as evidence |
| Receipt archived | ELSTER receipt with sidecar | - | source_sha256 in the LStA entry |
| Deadline check | Next LStA deadline | Monthly | FRISTEN_CHECK.md + automatic warning |
LStA as a JSON Artifact
{
"$schema": "https://gitcover.org/schemas/diary-entry-1.0.schema.json",
"V7GUID": "<V7GUID-Class-aus-Registry>",
"docUid": "<uuidV7-Object-mit-vorgegebener-Zeitmarke>",
"author": "E1",
"role": "Lohnverantwortlicher",
"tenant": "ORG-1",
"sphere": "ideell",
"source": "FA",
"source_sha256": "<SHA-256-der-ELSTER-Quittung>",
"tags": ["lsta", "§41a-estg", "nullmeldung", "aktivrente"],
"lsta": {
"monat": "09/2026",
"brutto": 2000.00,
"lst": 0.00,
"soli": 0.00,
"kist": 0.00,
"freibetrag_aktivrente": 2000.00,
"art": "nullmeldung"
}
}
Note: The
uuidV7is the DocID of the entry. The composite keyV7GUID:uuidV7is used to organize storage and for DB queries. Thelstaobject documents the payroll tax return with all its components. For an Aktivrente (§ 3 Nr. 21 EStG), the LSt is 0.00
- it is a nil return (see ED23).
Document the ELSTER Certificate
(nicht die .pfx selbst)"] OI --> D D --> N["Nachweis: Zertifikat aktiv
+ ELSTER-Test-Übermittlung"] style E fill:#0F1B33,stroke:#0F1B33,color:#FBFAF7 style P fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style O fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style PI fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style OI fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style D fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style N fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33
| Certificate type | Status | Storage in the repo |
|---|---|---|
| Personal certificate (E1) | Active (since 260522) | Sidecar in registry/elster/ (not the .pfx file itself) |
| Organization certificate (ORG-1) | Open (deadline 200826) | Planned: sidecar after activation |
Important - .pfx not in the repo: The
.pfxfile (certificate + private key) is not included in the Git repo - it contains cryptographic secrets. Instead, a sidecar is stored that documents the existence and activation of the certificate (date, status, ELSTER test receipt). The.pfxfile is kept securely outside the repo (e.g., on an encrypted data carrier).
See ED16: The practical use of the ELSTER certificate (government interface practices, DE-Mail, transmission via GitCover) is covered in ED16.
Deadline Monitoring for Tax Office Submissions
| Submission | Deadline | Frequency | GitCover monitoring |
|---|---|---|---|
| Payroll tax return | 10th of the following month (+5 days for electronic filing) | Monthly | FRISTEN_CHECK.md + automatic warning |
| VAT return | 10th of the following month | Monthly/quarterly | FRISTEN_CHECK.md + automatic warning |
| Income/corporation tax return | 31.07. (extended by tax advisor) | Annual | FRISTEN_CHECK.md |
| VAT annual return | 31.07. (extended) | Annual | FRISTEN_CHECK.md |
| Payroll tax certificate | 28.02. of the following year | Annual | FRISTEN_CHECK.md |
Practical tip: The deadline check is maintained as a Git artifact and updated with every commit. The automatic warning (see ED08) warns 14 days before an FA deadline expires. This way, no missed deadline goes unnoticed again - and § 152 AO (late filing surcharge of up to EUR 25,000) is avoided.
Risk Leverage
| Today (low-cost) | Tomorrow (revision-proof) | Risk mitigated |
|---|---|---|
Tax numbers in registry/ with sidecar |
All identifiers centrally verifiable | Tax number contested |
| § 60a AO decision with sidecar | Nonprofit status can be proven | Revocation due to missing evidence |
| LStA as JSON artifact + ELSTER receipt | Payroll tax return traceable | Late filing surcharge § 152 AO |
| ELSTER certificate with sidecar | Electronic submissions provable | Failure to file § 370 AO |
| Deadline check for all tax office submissions | Missed deadlines avoided | Late filing surcharges § 152 AO |
Harness Requirement (Preview)
Derivable from ED14:
| ID | Requirement | Priority |
|---|---|---|
| FA-12.1 | ELSTER transmission: LStA, UStA, LSt certificate; receipt as evidence with sidecar | MUST |
| FA-12.8 | Government identifier registry (StNr, W-IdNr, USt-IdNr, SV-BetrNr, VBG-Mitgliedsnr, IK) | MUST |
| FA-8.1 | Storage of the § 60a AO decision and validity tracking | MUST (nonprofit) |
| FA-4.1 | Deadline check file (checks/FRISTEN_CHECK.md) |
MUST |
| FA-4.2 | Deadline entries with date, type, tenant, evidence reference | MUST |
| FA-4.3 | Automatic warning for deadlines less than 14 days away | SHOULD |
The complete requirements list in Harness-Anforderungen.md.
Sources
- AO (§ 60a - recognition of nonprofit status, § 149 - tax returns, § 152 - late filing surcharge)
- EStG (§ 41a - payroll tax return, § 41b - payroll tax certificate)
- UStG (§ 18 - VAT return, § 14 - e-invoice)
E1/agents/(anonymized) - SSoT concept with registry, deadline check, ELSTER
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.