ED08 - Délais de conservation & immuabilité : Git-Hooks, Evidence-Packages
Problème
La GoBD et l'AO exigent une conservation à long terme - mais la pratique échoue dans sa mise en œuvre :
- « 10 ans ? Le cloud s'en occupe. » - beaucoup d'entrepreneurs croient que le logiciel cloud gère automatiquement la conservation - mais en cas de résiliation du compte, les données ne sont souvent plus disponibles (voir ED01 point sensible 6–7)
- Compte cloud résilié, données perdues - le compte de paie a été suspendu, les anciens comptes de paie ne sont réactivables que contre des frais supplémentaires - violation de la GoBD (§ 146 Abs. 5 AO)
- Anciennes versions logicielles non réactivables - les sauvegardes nécessitent l'ancienne version du logiciel, qui n'est plus installable - violation de la GoBD (§ 147 Abs. 2 AO : « lisibles sans délai »)
- Aucune immuabilité - écritures modifiées a posteriori sans traçabilité - violation de la GoBD (Rz. 146)
- Aucun Evidence-Package - lors d'un contrôle externe, le contrôleur ne peut pas être muni d'un support de données (Z3) - violation de la GoBD (§ 147 Abs. 6 AO)
- Délais de conservation inconnus - 10 ans ? 8 ans ? 6 ans ? Beaucoup d'entrepreneurs ne connaissent pas les délais applicables à leurs documents
Message clé
Une conservation conforme à la GoBD avec Git signifie :
- Les Git-Bundles sont self-contained - pas de compte cloud, pas de
licence logicielle, pas de prestataire -
git clonesuffit - Les délais de conservation sont documentés dans le dépôt - chaque
artefact porte son délai dans le Sidecar (
obsolescence+ date d'échéance) - Immuabilité par Tags et Protected Branches - les états validés sont cryptographiquement immuables
- Evidence-Packages pour les clôtures de période -
git bundle+ Static-Web (Z3+) pour les contrôleurs (voir ED05) - Contrôle des délais comme artefact Git -
checks/FRISTEN_CHECK.mdavertit des échéances imminentes
Compliance by Design : la conservation n'est pas un ajout ultérieur - elle naît du choix du support. Les Git-Bundles sont self-contained et survivent à tout blocage cloud, à tout changement de version logicielle, à toute résiliation de prestataire.
Délais de conservation selon l'AO § 147
Aufbewahrungsfristen"] AO --> J10["10 Jahre
§ 147 Abs. 1 Nr. 1"] AO --> J8["8 Jahre
§ 147 Abs. 1 Nr. 4"] AO --> J6["6 Jahre
§ 147 Abs. 1 Nr. 2/3/5"] J10 --> D10["Bücher, Aufzeichnungen
Inventare, Jahresabschlüsse
Eröffnungsbilanz
Arbeitsanweisungen"] J8 --> D8["Buchungsbelege
E-Rechnungen (XML)
Lohnbelege"] J6 --> D6["Handels- / Geschäftsbriefe
E-Mails (EML)
Sonstige Unterlagen"] style AO fill:#0F1B33,stroke:#0F1B33,color:#FBFAF7 style J10 fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style J8 fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style J6 fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style D10 fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style D8 fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style D6 fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33
| Délai | Type de documents | Base juridique | Exemples |
|---|---|---|---|
| 10 ans | Livres, enregistrements, inventaires, comptes annuels, bilan d'ouverture, instructions de travail | § 147 Abs. 1 Nr. 1 AO | Grundbuch (JSON), documentation des procédures, plan comptable |
| 8 ans | Pièces comptables | § 147 Abs. 1 Nr. 4 AO | Factures électroniques (XML), bulletins de paie, décisions SV |
| 6 ans | Correspondances commerciales / d'affaires, autres documents | § 147 Abs. 1 Nr. 2/3/5 AO | E-mails (EML), correspondance, notes |
Important - Début du délai : le délai commence à la fin de l'année civile au cours de laquelle la dernière inscription a été effectuée, le compte annuel établi, la pièce reçue ou l'enregistrement réalisé (§ 147 Abs. 4 AO). Une écriture du 15.08.2026 fait démarrer le délai le 31.12.2026 - 10 ans se terminent le 31.12.2036.
Immuabilité grâce à Git
Commit"] B --> H["SHA-256-Hash
des Commits"] H --> T["Tag
(Freigabe-Marker)"] T --> P["Protected Branch
(kein Force-Push)"] P --> U["Unveränderbarkeit
GoBD Rz. 146"] K["Korrektur nötig"] K --> NC["Neuer Commit
+ Obsoleszenz-Markierung"] NC --> O["Original bleibt
nachvollziehbar"] style B fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style H fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style T fill:#10A987,stroke:#0A7F5C,color:#FBFAF7 style P fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style U fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style K fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style NC fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style O fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33
| Mécanisme | Fonctionnalité Git | Référence GoBD |
|---|---|---|
| Commit-Hash | Hash SHA-256 par commit - chaque modification génère un nouveau hash | Rz. 146 (Immuabilité) |
| Tags | Marqueurs immuables pour les états validés | Rz. 146 (Validation) |
| Protected Branches | main protégée, pas de force-push, pas de rebase |
Rz. 146 (pas de réécriture) |
| Obsolescence | Corrections sous forme de nouveaux commits avec superseded_by |
Rz. 146 (Traçabilité) |
| Signature GPG | Commits signés - authenticité prouvable | Rz. 146 (Paternité) |
Important - Historique linéaire : seul un historique linéaire sans réécriture est conforme à la GoBD.
git rebase,git commit --amendetgit push --forcesurmainsont interdits. Le Pre-Commit-Hook vérifie qu'aucun force-push n'est effectué et que les corrections sont effectuées sous forme de nouveaux commits avec marquage d'obsolescence.
Evidence-Packages pour la conservation
z. B. FY2026"] FY --> EP["Tenant Evidence Package
(Periodenabschluss)"] EP --> GB["git bundle
self-contained Archiv"] EP --> SW["Static-Web
(Z3+ Browser)"] EP --> MF["Manifest
+ SHA-256-Checksummen"] GB --> USB["USB-Stick
oder Off-Site-Backup"] SW --> USB MF --> USB USB --> PR["Prüfer
git clone oder index.html
offline, ohne IAM"] style FY fill:#0F1B33,stroke:#0F1B33,color:#FBFAF7 style EP fill:#10A987,stroke:#0A7F5C,color:#FBFAF7 style GB fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style SW fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style MF fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style USB fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style PR fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33
Un Tenant Evidence Package (voir ED05 Z3+) pour un exercice comptable contient :
| Composant | Contenu | Référence GoBD |
|---|---|---|
| git bundle | Dépôt complet (historique, commits, tags) | § 147 Abs. 6 AO (support de données Z3) |
| Static-Web | Site web navigable dans le navigateur (HTML/PDF/JSON) | Z3+ (accès contrôleur sans IAM) |
| Manifest | Sommes de contrôle SHA-256 par fichier, index V7GUID | Rz. 146 (Intégrité) |
| Documentation des procédures | Rendue en HTML | Rz. 64–91 (Documentation des procédures) |
| Documents DMS | Toutes les pièces (PDF, XML, EML) | § 147 Abs. 1 (Conservation) |
| Contrats | Documents couvrant plusieurs périodes | § 147 Abs. 1 Nr. 2/3 (Correspondances commerciales) |
La conservation la plus sûre : une clé USB avec
git bundle+ Static-Web + Manifest est self-contained, hors ligne, sans IAM, sans compte cloud, sans licence logicielle. Elle survit à toute résiliation de prestataire, à tout changement de version logicielle, à tout blocage cloud. C'est la forme la plus sûre de conservation conforme à la GoBD - parce qu'il n'existe aucune dépendance.Bien entendu, il faut également tenir compte de la sécurité physique de la clé USB (coffre-fort, protection incendie, sauvegarde hors site).
Gestion des délais dans le dépôt
checks/FRISTEN_CHECK.md
# Fristen-Check
## Vorlauf (bis 010926) - PRIO 1
- [ ] 200826: ELSTER-Organisationszertifikat anfordern
- [ ] 250826: Gefahrtarifstelle festlegen
- [ ] 300826: D&O-Versicherung GF-Haftung
## Aufbewahrungsfristen (laufend)
| Frist | Unterlagen-Typ | Endet | Status |
|---:|:---|---:|:---|
| 10 Jahre | Grundbuch FY2026 | 31.12.2036 | aktiv |
| 8 Jahre | E-Rechnungen FY2026 | 31.12.2034 | aktiv |
| 6 Jahre | E-Mails FY2026 | 31.12.2032 | aktiv |
Alerte automatique en cas d'échéances imminentes
(Git-Artefakt)"] FC --> P14["über 14 Tage
grün"] FC --> P7["7–14 Tage
gelb"] FC --> P0["unter 7 Tage
orange/rot"] P0 --> W["Warnung
an Unternehmer"] style FC fill:#0F1B33,stroke:#0F1B33,color:#FBFAF7 style P14 fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style P7 fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style P0 fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style W fill:#FDBA74,stroke:#C2410C,color:#0F1B33
| Type de délai | Alerte | Action |
|---|---|---|
| Fin du délai de conservation | 30 jours avant | Documenter la destruction après expiration |
| Délai des autorités (ELSTER, SV) | 14 jours avant | Préparer la transmission |
| Délai de prescription (§ 169 AO) | 90 jours avant | Ne pas détruire les documents |
Levier de risque
| Aujourd'hui (peu coûteux) | Demain (à l'épreuve des contrôles) | Risque atténué |
|---|---|---|
git bundle comme archive self-contained |
Conservation de 10 ans sans compte cloud | Violation de la GoBD par résiliation de compte |
| Tags + Protected Branches | Immuabilité après validation | Violation de la GoBD par modification ultérieure |
| Evidence-Package (Z3+) | Accès contrôleur sans IAM, hors ligne | Violation de la GoBD par données inaccessibles |
| Contrôle des délais comme artefact Git | Non-respect des délais évité | Majorations de retard § 152 AO |
| Marquage d'obsolescence | Corrections traçables | Modifications dissimulées |
| Commits signés GPG | Authenticité prouvable | Contestation de la paternité |
| Static-Web (Z3+) | Navigabilité dans le navigateur pour les contrôleurs | Violation de la GoBD par des données peu adaptées aux contrôleurs |
Exigence Harness (aperçu)
Déductible de ED08 :
| ID | Exigence | Priorité |
|---|---|---|
| FA-4.1 | Fichier de contrôle des délais (checks/FRISTEN_CHECK.md) |
MUST |
| FA-4.2 | Entrées de délais avec date, type, Tenant, référence de pièce | MUST |
| FA-4.3 | Alerte automatique pour délais < 14 jours | SHOULD |
| FA-6.5 | Conservation de 10 ans via Evidence-Packages (Git-Bundles) | MUST |
| FA-6.6 | Immuabilité après validation (Tags, Protected Branches) | MUST |
| FA-6.7 | Générateur Static-Web pour la clôture de période (Z3+) | SHOULD |
| TA-2.4 | Pre-Commit : vérification du statut d'obsolescence | SHOULD |
La liste complète des exigences dans Harness-Anforderungen.md.
Sources
- GoBD (lettre du BMF, Rz. 146 - Immuabilité, Rz. 152 - Délais de conservation)
- AO (§ 146 Abs. 5 - Disponibilité, § 147 - Délais de conservation 10/8/6 ans, § 147 Abs. 4 - Début du délai, § 147 Abs. 6 - Accès aux données Z3)
GitCover.Ledger/docs/02-Tenant-Evidence-Package.md- Concept de Tenant Evidence PackageAFJD/agents/(anonymisé) - Concept SSoT avec contrôle des délais, Evidence-Packages
Topologie des sources et liens de référence CDN
| Rôle | Emplacement | Objectif |
|---|---|---|
| Primary / SSoT | git.gitcover.org/GCC | Stockage canonique (signé GPG, versionné) |
| Public OSS Mirror / CDN | codeberg.org/gitcover-commons | Miroir en lecture seule ; découverte FLOSS |
| Community Hub | github.com/gitcover-commons | Issues & Discussions ; référence du code source sur Codeberg |
Remarque : cette attribution des sources, du miroir et du Community Hub reflète l'état actuel et peut changer. Veuillez vérifier la source canonique respective sur gitcover.org pour connaître l'état actuel.