ED13 - Finanzamt: número fiscal, § 60a AO, declaración del impuesto salarial
Problema
Tras la constitución y el alta en el registro de actividades económicas se pone en contacto el Finanzamt (FA) - pero en el ámbito de las pymes no está claro qué obligaciones se derivan de ello ni cómo se acreditan en el repo:
- "¿Número fiscal? Esa la tiene el asesor fiscal." - muchos empresarios no conocen su propio número fiscal, y mucho menos dónde se encuentra
- La declaración del impuesto salarial como caja negra - la LStA la realiza la oficina de nóminas, pero el empresario no tiene ninguna acreditación en el repo
- Certificado ELSTER no documentado - el certificado personal o de organización está instalado en algún lugar, pero no está acreditado en el repo
- Confusión entre la comunicación de USt y la de KSt - hay números fiscales distintos para cada tipo de impuesto, pero solo se dispone de uno
- Falta de supervisión de plazos para las presentaciones al FA - la LStA, la UStA y las declaraciones de ESt/KSt tienen plazos distintos, pero nadie los supervisa de forma centralizada
- Resolución § 60a AO desconocida - la resolución sobre la utilidad pública (§ 60a Abs. 1 AO) es la base de las exenciones fiscales, pero está en algún sitio en formato papel
Idea central
Las obligaciones frente al Finanzamt en el repositorio Git implican:
- Números fiscales como entradas del registry - almacenamiento
centralizado en
registry/con sidecar, un número por tipo de impuesto - Declaración del impuesto salarial como artefacto JSON - LStA con
source_sha256apuntando al recibo de ELSTER - Certificado ELSTER documentado - archivo
.pfxcon sidecar (no el certificado en sí al repo, sino la acreditación) - Control de plazos para todas las presentaciones al FA - LStA, UStA, ESt/KSt con advertencia automática
- Resolución § 60a AO como justificante con sidecar - resolución de exención con seguimiento de la validez
Compliance by Design: las obligaciones frente al FA no se gestionan a posteriori, sino que se capturan de forma estructural mediante entradas del registry con sidecars, control de plazos y artefactos JSON.
Números fiscales en el directorio registry
| Identificador | Origen | Uso | Almacenamiento |
|---|---|---|---|
| Número fiscal KSt | Comunicación del FA | Declaración del impuesto de sociedades | registry/finanzamt/ + sidecar |
| Número fiscal USt | Comunicación del FA | Declaración preliminar del IVA, declaración anual | registry/finanzamt/ + sidecar |
| Número fiscal LSt | Comunicación del FA | Declaración del impuesto salarial, certificado LSt | registry/finanzamt/ + sidecar |
| W-IdNr | Comunicación del BZSt | Número de identificación empresarial | registry/bzst/ + sidecar |
| USt-IdNr | Comunicación del BZSt | Número de identificación a efectos del IVA (UE) | registry/bzst/ + sidecar |
| Certificado ELSTER | Registro en ELSTER | Presentaciones electrónicas | registry/elster/ + sidecar |
| Resolución § 60a AO | Resolución del FA | Reconocimiento de la utilidad pública | registry/finanzamt/ + sidecar |
Ejemplo práctico: La
KMUtiene el número fiscal KSt<STNR>, el número fiscal USt<STNR>, el número fiscal LSt<STNR>, la W-IdNr<WID>, la USt-IdNrDE<UID>. Cada número está archivado como justificante con sidecar enregistry/. La resolución § 60a AO (reconocimiento de la utilidad pública) también está archivada allí, con seguimiento de la validez.
Resolución § 60a AO - Utilidad pública
| Propiedad | Valor |
|---|---|
| Base jurídica | § 60a Abs. 1 AO |
| Contenido | Reconocimiento de la utilidad pública (§§ 51-68 AO) |
| Efecto | Exención de KSt, exención de PV, exención parcial de USt, posible exención VBG |
| Validez | Hasta la revocación o hasta la pérdida del reconocimiento |
| Almacenamiento | registry/finanzamt/ con sidecar (SHA-256 + V7GUID:uuidV7) |
Importante: La resolución § 60a AO es la base de todos los privilegios de utilidad pública (KSt, USt, VBG, Pauschalen). Sin esta resolución, las exenciones fiscales no pueden hacerse valer. La resolución debe estar archivada en el repo con sidecar para que la acreditación pueda presentarse en caso de inspección.
Declaración del impuesto salarial (§ 41a EStG)
| Paso | Acción | Plazo | Implementación en GitCover |
|---|---|---|---|
| Liquidación de nómina | Cálculo bruto-neto (véase ED23) | mensual | Artefacto JSON en el repo |
| Cálculo de la LStA | LSt, Soli, KiSt de la liquidación | - | tags: ["lsta", "§41a-estg"] |
| Transmisión vía ELSTER | Electrónica vía ELSTER | día 10 del mes siguiente (+5 días) | Recibo de ELSTER como justificante |
| Recibo archivado | Recibo de ELSTER con sidecar | - | source_sha256 en la entrada de la LStA |
| Control de plazos | Próximo plazo de la LStA | mensual | FRISTEN_CHECK.md + advertencia automática |
La LStA como artefacto JSON
{
"$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"
}
}
Nota: La
uuidV7es la DocID de la entrada. La clave compuestaV7GUID:uuidV7sirve para la organización del almacenamiento y para las consultas a la base de datos. El objetolstadocumenta la declaración del impuesto salarial con todos sus componentes. Con Aktivrente (§ 3 Nr. 21 EStG), la LSt = 0,00 - se trata de una Nullmeldung (véase ED23).
Documentar el certificado ELSTER
(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
| Tipo de certificado | Estado | Almacenamiento en el repo |
|---|---|---|
| Certificado personal (E1) | activo (desde 260522) | Sidecar en registry/elster/ (no el .pfx en sí) |
| Certificado de organización (ORG-1) | pendiente (plazo 200826) | previsto: sidecar tras la activación |
Importante - el .pfx no va al repo: El archivo
.pfx(certificado + clave privada) no se incluye en el repositorio Git - contiene secretos criptográficos. En su lugar, se archiva un sidecar que documenta la existencia y la activación del certificado (fecha, estado, recibo de prueba de ELSTER). El archivo.pfxse guarda de forma segura fuera del repositorio (p. ej., en un soporte de datos cifrado).
Véase ED15: El uso práctico del certificado ELSTER (práctica de las interfaces con las autoridades, DE-Mail, intermediación por parte de GitCover) se trata en ED15.
Supervisión de plazos para las presentaciones al FA
| Presentación | Plazo | Frecuencia | Supervisión de GitCover |
|---|---|---|---|
| Declaración del impuesto salarial | día 10 del mes siguiente (+5 días para la vía electrónica) | mensual | FRISTEN_CHECK.md + advertencia automática |
| Declaración preliminar del IVA | día 10 del mes siguiente | mensual/trimestral | FRISTEN_CHECK.md + advertencia automática |
| Declaración de ESt/KSt | 31.07. (prorrogada por el StB) | anual | FRISTEN_CHECK.md |
| Declaración anual del IVA | 31.07. (prorrogada) | anual | FRISTEN_CHECK.md |
| Certificado del impuesto salarial | 28.02. del año siguiente | anual | FRISTEN_CHECK.md |
Consejo práctico: El control de plazos se gestiona como artefacto Git y se actualiza con cada commit. La advertencia automática (véase ED08) avisa 14 días antes del vencimiento de un plazo del FA. Así no se pasa por alto ningún incumplimiento de plazos - y se evita el § 152 AO (recargo por demora de hasta 25.000 EUR).
Apalancamiento de riesgo
| Hoy (barato) | Mañana (a prueba de auditoría) | Riesgo mitigado |
|---|---|---|
Números fiscales en registry/ con sidecar |
Todos los identificadores acreditables de forma centralizada | Impugnación del número fiscal |
| Resolución § 60a AO con sidecar | Utilidad pública acreditable | Pérdida del reconocimiento si falta la acreditación |
| LStA como artefacto JSON + recibo de ELSTER | Declaración del impuesto salarial trazable | Recargo por demora § 152 AO |
| Certificado ELSTER con sidecar | Presentaciones electrónicas acreditables | Falta de presentación § 370 AO |
| Control de plazos para todas las presentaciones al FA | Incumplimientos de plazos evitados | Recargos por demora § 152 AO |
Requisito de Harness (vista previa)
Derivable de ED13:
| ID | Requisito | Prioridad |
|---|---|---|
| FA-12.1 | Intermediación ELSTER: LStA, UStA, certificado LSt; recibo como justificante con sidecar | MUST |
| FA-12.8 | Registry de identificadores de autoridades (StNr, W-IdNr, USt-IdNr, SV-BetrNr, VBG-Mitgliedsnr, IK) | MUST |
| FA-8.1 | Archivo de la resolución § 60a AO y seguimiento de la validez | MUST (utilidad pública) |
| FA-4.1 | Archivo de control de plazos (checks/FRISTEN_CHECK.md) |
MUST |
| FA-4.2 | Entradas de plazos con fecha, tipo, Tenant, referencia al justificante | MUST |
| FA-4.3 | Advertencia automática para plazos de menos de 14 días | SHOULD |
La lista completa de requisitos en Harness-Anforderungen.md.
Fuentes
- AO (§ 60a - reconocimiento de la utilidad pública, § 149 - declaraciones fiscales, § 152 - recargo por demora)
- EStG (§ 41a - declaración del impuesto salarial, § 41b - certificado del impuesto salarial)
- UStG (§ 18 - declaración preliminar del IVA, § 14 - factura electrónica)
AFJD/agents/(anonimizado) - concepto SSoT con registry, control de plazos, ELSTER
Topología de fuentes y enlaces de referencia CDN
| Rol | Ubicación | Propósito |
|---|---|---|
| Primary / SSoT | git.gitcover.org/GCC | Archivo canónico (firmado con GPG, versionado) |
| Public OSS Mirror / CDN | codeberg.org/gitcover-commons | Réplica de solo lectura; descubrimiento FLOSS |
| Community Hub | github.com/gitcover-commons | Issues & Discussions; referencia del código fuente en Codeberg |
Nota: Esta asignación de fuentes, mirror y Community Hub refleja el estado actual y puede cambiar. Por favor, consulte la fuente canónica correspondiente en gitcover.org para conocer el estado actual.