ED13 - Tax Office: Tax Number, § 60a AO, Wage Tax Return
Problem
After incorporation and business registration, 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 done 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 vs. KSt notification confused - different tax numbers for different tax types, but only one is available
- No deadline monitoring for FA filings - LStA, UStA, ESt/KSt returns have different deadlines, but nobody monitors them centrally
- § 60a AO notice unknown - the notice on non-profit status (§ 60a Abs. 1 AO) is the basis for tax exemptions, but it sits somewhere in paper form
Key Message
Tax office obligations in the Git repo mean:
- Tax numbers as registry entries - central storage in
registry/with sidecar, one number per tax type - Wage tax return as a 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 auto-warning
- § 60a AO notice as a document with sidecar - notice of exemption with validity tracking
Compliance by Design: FA obligations are not managed retroactively, but 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, LSt certificate | registry/finanzamt/ + sidecar |
| W-IdNr | BZSt notification | Economic 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 | Non-profit status recognition | 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 non-profit status) is also stored there, with validity tracking.
§ 60a AO Notice - Non-Profit Status
| Property | Value |
|---|---|
| Legal basis | § 60a Abs. 1 AO |
| Content | Recognition of non-profit status (§§ 51-68 AO) |
| Effect | KSt exemption, PV exemption, partial USt exemption, VBG exemption possible |
| Validity | Until revocation or until withdrawal |
| Storage | registry/finanzamt/ with sidecar (SHA-256 + V7GUID:uuidV7) |
Important: The § 60a AO notice is the basis for all non-profit privileges (KSt, USt, VBG, flat-rate allowances). 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 statement | Gross-net calculated (see ED23) | monthly | JSON artefact in the repo |
| LStA calculated | LSt, Soli, KiSt from the statement | - | 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 + auto-warning |
LStA as a 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:uuidV7is used 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 - this is a nil return (see ED23).
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 data carrier).
See ED15: The practical use of the ELSTER certificate (authority interface practice, DE-Mail, brokering by GitCover) is covered in ED15.
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 + auto-warning |
| VAT advance return | 10th of the following month | monthly/quarterly | FRISTEN_CHECK.md + auto-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 auto-warning (see ED08) 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 | Denial of the tax number |
| § 60a AO notice with sidecar | Non-profit status evidenced | Withdrawal due to missing evidence |
| LStA as JSON artefact + ELSTER receipt | Wage tax return traceable | Late-filing surcharge § 152 AO |
| ELSTER certificate with sidecar | Electronic filings evidenced | Failure to file § 370 AO |
| Deadline check for all FA filings | Missed deadlines avoided | Late-filing surcharges § 152 AO |
Harness Requirement (Preview)
Derivable from ED13:
| ID | Requirement | Priority |
|---|---|---|
| FA-12.1 | ELSTER brokering: LStA, UStA, LSt 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 (non-profit) |
| 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 | Auto-warning for deadlines under 14 days | SHOULD |
The complete requirements list in Harness-Anforderungen.md.
Sources
- AO (§ 60a - non-profit status recognition, § 149 - tax returns, § 152 - late-filing surcharge)
- EStG (§ 41a - wage tax return, § 41b - wage tax certificate)
- UStG (§ 18 - VAT advance return, § 14 - e-invoice)
AFJD/agents/(anonymised) - 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.