ED11 - Tax Office: Tax Number, § 60a AO, Payroll Tax Registration
Problem
After formation and business registration, the tax office (Finanzamt, 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 that." - many entrepreneurs do not know their own tax number, let alone where it is stored
- § 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
- Payroll tax registration 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 organisational 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 on hand
- No deadline monitoring for FA registrations - LStA, UStA, ESt/KSt returns have different deadlines, but nobody monitors them centrally
Core 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 - § 60a AO notice as evidence with sidecar - exemption notice with validity tracking
- Payroll tax registration as JSON artefact - LStA with
source_sha256on the ELSTER receipt - ELSTER certificate documented -
.pfxfile with sidecar (not the certificate itself in the repo, but the evidence) - Deadline check for all FA registrations - LStA, UStA, ESt/KSt with automatic warning
Compliance by Design: FA obligations are not managed after the fact, but captured structurally 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 | Corporation tax return | registry/finanzamt/ + sidecar |
| USt tax number | FA notification | VAT pre-registration, annual return | registry/finanzamt/ + sidecar |
| LSt tax number | FA notification | Payroll tax registration, 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 |
| § 60a AO notice | FA notice | Non-profit recognition | registry/finanzamt/ + sidecar |
| ELSTER certificate | ELSTER registration | Electronic registrations | registry/elster/ + 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 evidence 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 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, lump sums). Without this notice, tax exemptions do not apply. The notice must be stored in the repo with sidecar so that evidence can be produced during an audit.
Payroll tax registration (§ 41a EStG)
| Step | Action | Deadline | GitCover implementation |
|---|---|---|---|
| Payroll | Gross-to-net calculated (see ED14) | monthly | JSON artefact in repo |
| LStA calculated | LSt, Soli, KiSt from payroll | - | tags: ["lsta", "§41a-estg"] |
| ELSTER submission | Electronically via ELSTER | 10th of following month (+5 days) | ELSTER receipt as evidence |
| Receipt archived | ELSTER receipt with sidecar | - | source_sha256 in LStA entry |
| Deadline check | Next LStA deadline | monthly | FRISTEN_CHECK.md + auto 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 storage organisation and DB queries. Thelstaobject documents the payroll tax registration with all components. For an active pension (§ 3 Nr. 21 EStG) the LSt = 0.00 - this is a zero 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 repo |
|---|---|---|
| Personal certificate (E1) | active (since 260522) | sidecar in registry/elster/ (not the .pfx itself) |
| Organisational certificate (ORG-1) | open (deadline 200826) | planned: sidecar after activation |
Important - no .pfx in 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 safely outside the repo (e.g. on encrypted storage).
See ED12: The practical use of the ELSTER certificate (authority interface practice, DE-Mail, mediation by GitCover) is covered in ED12.
Deadline monitoring for FA registrations
| Registration | Deadline | Frequency | GitCover monitoring |
|---|---|---|---|
| Payroll tax registration | 10th of following month (+5 days electronic) | monthly | FRISTEN_CHECK.md + auto warning |
| VAT pre-registration | 10th of following month | monthly/quarterly | FRISTEN_CHECK.md + auto warning |
| ESt/KSt return | 31.07. (extended via tax advisor) | annually | FRISTEN_CHECK.md |
| USt annual return | 31.07. (extended) | annually | FRISTEN_CHECK.md |
| LSt certificate | 28.02. of the following year | annually | FRISTEN_CHECK.md |
Practical tip: The deadline check is maintained as a Git artefact and updated on every commit. The auto warning (see ED07) warns 14 days before an FA deadline expires. This way no missed deadline is overlooked - and § 152 AO (late payment surcharge up to 25,000 EUR) is avoided.
Risk leverage
| Today (cheap) | Tomorrow (audit-proof) | Risk mitigated |
|---|---|---|
Tax numbers in registry/ with sidecar |
All identifiers centrally evidenced | Dispute of the tax number |
| § 60a AO notice with sidecar | Non-profit status verifiable | Withdrawal for missing evidence |
| LStA as JSON artefact + ELSTER receipt | Payroll tax registration traceable | Late payment surcharge § 152 AO |
| ELSTER certificate with sidecar | Electronic registrations evidenced | Non-submission § 370 AO |
| Deadline check for all FA registrations | Missed deadlines avoided | Late payment surcharges § 152 AO |
Harness requirement (preview)
Derivable from ED11:
| ID | Requirement | Priority |
|---|---|---|
| FA-12.1 | ELSTER mediation: LStA, UStA, LSt certificate; receipt as evidence with sidecar | MUST |
| FA-12.8 | Authority identifiers 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, evidence reference | MUST |
| FA-4.3 | Auto warning for deadlines under 14 days | SHOULD |
The full requirement list in Harness-Anforderungen.md.
Sources
- AO (§ 60a - non-profit recognition, § 149 - tax returns, § 152 - late payment surcharge)
- EStG (§ 41a - payroll tax registration, § 41b - LSt certificate)
- UStG (§ 18 - VAT pre-registration, § 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 to Codeberg |
Note: This assignment 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.