ED11 - Tax Office: Tax Number, § 60a AO, Wage Tax Return
Problem
After the company is founded and the trade registered, the tax office (FA) gets in touch - but in the SME sector it is unclear which obligations arise from this and how they are evidenced in the repo:
- "Tax number? The tax advisor has it." - many entrepreneurs do not know their own tax number, let alone where it is kept
- Wage tax return as a black box - the LStA is prepared by the payroll office, but the entrepreneur has no evidence in the repo
- ELSTER certificate not documented - the personal or organisation certificate is installed somewhere, but not evidenced in the repo
- USt notification confused with KSt notification - different tax numbers for different types of tax, but only one is available
- No deadline monitoring for FA filings - LStA, UStA and ESt/KSt returns have different deadlines, but nobody monitors them centrally
- § 60a AO notice unknown - the notice on charitable status (§ 60a Abs. 1 AO) is the basis for tax exemptions, but it sits somewhere in paper form
Core message
Tax office obligations in the Git repo mean:
- Tax numbers as registry entries - central storage in
registry/with sidecar, one number per type of tax - Wage tax return as JSON artefact - LStA with
source_sha256referencing the ELSTER receipt - ELSTER certificate documented -
.pfxfile with sidecar (not the certificate itself into the repo, but the evidence) - Deadline check for all FA filings - LStA, UStA, ESt/KSt with automatic warning
- § 60a AO notice as document with sidecar - exemption notice with validity tracking
Compliance by Design: FA obligations are not managed retroactively; instead, they are structurally captured through registry entries with sidecars, deadline checks and JSON artefacts.
Tax numbers in the registry directory
| Identifier | Source | Use | Storage |
|---|---|---|---|
| KSt tax number | FA notification | Corporate income tax return | registry/finanzamt/ + sidecar |
| USt tax number | FA notification | VAT advance return, annual return | registry/finanzamt/ + sidecar |
| LSt tax number | FA notification | Wage tax return, wage tax certificate | registry/finanzamt/ + sidecar |
| W-IdNr | BZSt notification | Business identification number | registry/bzst/ + sidecar |
| USt-IdNr | BZSt notification | VAT identification number (EU) | registry/bzst/ + sidecar |
| ELSTER certificate | ELSTER registration | Electronic filings | registry/elster/ + sidecar |
| § 60a AO notice | FA notice | Recognition of charitable status | registry/finanzamt/ + sidecar |
Practical example: The
KMUhas KSt tax number<STNR>, USt tax number<STNR>, LSt tax number<STNR>, W-IdNr<WID>, USt-IdNrDE<UID>. Each number is stored as a document with sidecar inregistry/. The § 60a AO notice (recognition of charitable status) is also stored there, with validity tracking.
§ 60a AO notice - charitable status
| Property | Value |
|---|---|
| Legal basis | § 60a Abs. 1 AO |
| Content | Recognition of charitable status (§§ 51-68 AO) |
| Effect | KSt exemption, PV exemption, partial USt exemption, VBG exemption possible |
| Validity | Until revocation or withdrawal |
| Storage | registry/finanzamt/ with sidecar (SHA-256 + V7GUID:uuidV7) |
Important: The § 60a AO notice is the basis for all charitable privileges (KSt, USt, VBG, flat rates). Without this notice, tax exemptions are out of reach. The notice must be stored in the repo with a sidecar so that evidence can be provided during an audit.
Wage tax return (§ 41a EStG)
| Step | Action | Deadline | GitCover implementation |
|---|---|---|---|
| Payroll | Gross-net calculated (see ED14) | monthly | JSON artefact in the repo |
| LStA calculated | LSt, Soli, KiSt from the payroll | - | tags: ["lsta", "§41a-estg"] |
| ELSTER transmission | Electronically via ELSTER | 10th of the following month (+5 days) | ELSTER receipt as document |
| 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 JSON artefact
{
"$schema": "https://gitcover.org/schemas/diary-entry-1.0.schema.json",
"V7GUID": "<V7GUID-Class-aus-Registry>",
"uuidV7": "<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:uuidV7serves for storage organisation and DB queries. Thelstaobject documents the wage tax return with all components. For Aktivrente (§ 3 Nr. 21 EStG), the LSt = 0.00 - it is a nil return (see ED14).
Documenting 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 itself) |
| Organisation certificate (ORG-1) | open (deadline 200826) | planned: sidecar after activation |
Important - .pfx not into the repo: The
.pfxfile (certificate + private key) is not added to 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 drive).
See ED12: The practical use of the ELSTER certificate (authority interface practice, DE-Mail, facilitation via GitCover) is covered in ED12.
Deadline monitoring for FA filings
| Filing | Deadline | Frequency | GitCover monitoring |
|---|---|---|---|
| Wage tax return | 10th of the following month (+5 days electronically) | monthly | FRISTEN_CHECK.md + automatic warning |
| VAT advance return | 10th of the following month | monthly/quarterly | FRISTEN_CHECK.md + automatic warning |
| ESt/KSt return | 31 July (extended by tax advisor) | annually | FRISTEN_CHECK.md |
| VAT annual return | 31 July (extended) | annually | FRISTEN_CHECK.md |
| Wage tax certificate | 28 February of the following year | annually | FRISTEN_CHECK.md |
Practical tip: The deadline check is maintained as a Git artefact and updated with every commit. The automatic warning (see ED07) warns 14 days before an FA deadline expires. This way, no missed deadline is overlooked any more - and § 152 AO (late-filing surcharge of up to EUR 25,000) is avoided.
Risk leverage
| Today (cheap) | Tomorrow (audit-proof) | Risk mitigated |
|---|---|---|
Tax numbers in registry/ with sidecar |
All identifiers centrally evidenced | Dispute over the tax number |
| § 60a AO notice with sidecar | Charitable status evidenced | Withdrawal if evidence is missing |
| LStA as JSON artefact + ELSTER receipt | Wage tax return traceable | Late-filing surcharge § 152 AO |
| ELSTER certificate with sidecar | Electronic filings evidenced | Non-submission § 370 AO |
| Deadline check for all FA filings | Missed deadlines avoided | Late-filing surcharges § 152 AO |
Harness requirement (preview)
Derivable from ED11:
| ID | Requirement | Priority |
|---|---|---|
| FA-12.1 | ELSTER facilitation: LStA, UStA, wage tax certificate; receipt as document with sidecar | MUST |
| FA-12.8 | Authority identifier registry (StNr, W-IdNr, USt-IdNr, SV-BetrNr, VBG-Mitgliedsnr, IK) | MUST |
| FA-8.1 | § 60a AO notice storage and validity tracking | MUST (charitable) |
| FA-4.1 | Deadline check file (checks/FRISTEN_CHECK.md) |
MUST |
| FA-4.2 | Deadline entries with date, type, tenant, document reference | MUST |
| FA-4.3 | Automatic warning for deadlines under 14 days | SHOULD |
The complete requirements list in Harness-Anforderungen.md.
Sources
- AO (§ 60a - recognition of charitable status, § 149 - tax returns, § 152 - late-filing surcharge)
- EStG (§ 41a - wage tax return, § 41b - wage tax certificate)
- UStG (§ 18 - VAT advance return, § 14 - e-invoicing)
AFJD/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 to 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.