ED07 - Documentation des procédures GoBD : champs obligatoires, versionnement, approbation
Problème
La GoBD, Rz. 64–91, exige une documentation des procédures - mais dans le secteur des PME, elle est l’exception la plus courante :
- "Qu’est-ce qu’une documentation des procédures ?" - la plupart des dirigeants ne connaissent pas le terme, sans même connaître son contenu
- "C’est le conseiller fiscal qui s’en charge" - beaucoup croient que le StB établit la documentation des procédures - mais il ne peut que la guider, le dirigeant doit l’établir et l’entretenir lui-même
- "Document Word sur le bureau" - lorsqu’il existe une documentation des procédures, il s’agit d’un document Word statique qui n’est pas mis à jour lors d’un changement de système - violation de la GoBD
- "Pas de versionnement" - les modifications apportées à la documentation des procédures ne sont pas documentées de manière traçable - alors que la GoBD exige l’actualité et la traçabilité (Rz. 83)
- "Pas d’approbation" - la documentation des procédures n’est jamais "approuvée" - alors que la GoBD exige que l’état au moment de l’audit soit clair
- "Changement de système non documenté" - lors d’une migration vers un nouveau logiciel, la documentation des procédures n’est pas mise à jour - GoBD Rz. 146–150 l’exigent expressément
Message clé
Une documentation des procédures conforme à la GoBD dans le dépôt Git signifie :
- La documentation des procédures est un artefact Git versionné - non pas un document Word, mais du Markdown et du JSON dans le dépôt
- Chaque modification est traçable -
git logindique qui, quand, quoi et pourquoi (auteur du commit, horodatageuuidV7, diff, message de commit) - Approbation par des tags - un tag Git marque l’état approuvé de la
documentation des procédures (par ex.
vd-v1.0-2026) - Les changements de système sont consignés - lors d’une migration, un nouveau commit est créé avec une justification, et l’ancienne version reste traçable
- Le dépôt lui-même fait partie de la documentation des procédures -
git logmontre la procédure,.gitcover/schemas/montre les structures de données, les hooks Git montrent les contrôles
Compliance by Design : la documentation des procédures n’est pas constituée a posteriori - elle naît de l’utilisation de Git. Quiconque travaille avec des dépôts Git documente automatiquement sa procédure grâce aux commits, aux diffs et aux tags. La documentation formelle des procédures y ajoute une description lisible par un humain.
Qu’est-ce qu’une documentation des procédures ?
(GoBD Rz. 64–91)"] VD --> V["Verfahren
(Wie wird gebucht?)"] VD --> S["Systemumgebung
(Welche Software/Hardware?)"] VD --> O["Organisation
(Wer macht was?)"] VD --> K["Kontrollen
(Wie wird geprüft?)"] VD --> D["Daten
(Welche Formate/Strukturen?)"] V --> G["Git-Repo
(Commits, Hooks)"] S --> G O --> G K --> G D --> G style VD fill:#0F1B33,stroke:#0F1B33,color:#FBFAF7 style V fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style S fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style O fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style K fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style D fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style G fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33
| Exigence GoBD | Contenu | Comment Git y répond |
|---|---|---|
| Procédure (Rz. 64–71) | Description de la procédure de tenue de la comptabilité | git log montre chaque étape ; les messages de commit documentent la justification |
| Environnement système (Rz. 72–76) | Logiciels, matériel, versions | .gitcover/ avec schémas et dictionnaires ; git config affiche les paramètres |
| Organisation (Rz. 77–80) | Responsabilités, rôles, droits d’accès | champ role par artefact ; git log --author affiche les responsabilités |
| Contrôles (Rz. 81–85) | Contrôles internes, contrôles de plausibilité | hooks de pré-commit (schéma, sphères, obsolescence) ; hooks de post-commit (index) |
| Données (Rz. 86–91) | Structures de données, formats, interfaces | schémas JSON dans .gitcover/schemas/ ; sidecars avec v7g_taxonomy |
Champs obligatoires de la documentation des procédures
Structure dans le dépôt Git
ORG-1/
├── .gitcover/
│ ├── schemas/ # Datenstrukturen (Rz. 86–91)
│ │ ├── diary-entry-1.0.schema.json
│ │ ├── v7g-sidecar-1.0.schema.json
│ │ └── timesheet-1.0.schema.json
│ ├── dictionaries/ # Klassifizierungen (Rz. 86–91)
│ │ ├── spheres.json
│ │ ├── roles.json
│ │ └── beleg-types.json
│ └── LEGAL_ENTITY.v7g.json # Tenant-Identität
├── docs/
│ └── verfahrensdokumentation/
│ ├── README.md # Einstieg + Übersicht
│ ├── 01-verfahren.md # Buchführungsverfahren (Rz. 64–71)
│ ├── 02-systemumgebung.md # Software/Hardware (Rz. 72–76)
│ ├── 03-organisation.md # Zuständigkeiten (Rz. 77–80)
│ ├── 04-kontrollen.md # Internen Kontrollen (Rz. 81–85)
│ └── 05-daten.md # Datenstrukturen (Rz. 86–91)
└── .githooks/
├── pre-commit # Kontrollen (Rz. 81–85)
└── post-commit # Index-Generierung
La documentation des procédures comme artefact JSON
La documentation des procédures elle-même est un artefact versionné avec
V7GUID (classe) et uuidV7 (ID d’objet comme DocID) :
{
"$schema": "https://gitcover.org/schemas/verfahrensdoku-1.0.schema.json",
"V7GUID": "<V7GUID-Class-aus-Registry>",
"docUid": "<uuidV7-Object-mit-vorgegebener-Zeitmarke>",
"author": "E1",
"role": "GF",
"tenant": "ORG-1",
"sphere": "wirtschaftlich",
"source": "E1",
"version": "1.0",
"status": "released",
"sections": ["01-verfahren", "02-systemumgebung", "03-organisation", "04-kontrollen", "05-daten"]
}
Remarque : la
uuidV7est la DocID de la documentation des procédures. La clé compositeV7GUID:uuidV7sert à l’organisation du stockage et aux requêtes en base de données. Aucun champdatetime/datedistinct - l’heure est intégrée dans l’uuidV7.
Versionnement et approbation
Commit 1"] E --> R["Review
Commit 2 (Änderungen)"] R --> F["Freigabe
Tag: vd-v1.0-2026"] F --> P["Produktiv
Stand v1.0"] P --> A["Änderung nötig
(z. B. Systemwechsel)"] A --> E2["Entwurf v2.0
Commit 3"] E2 --> R2["Review v2.0"] R2 --> F2["Freigabe
Tag: vd-v2.0-2027"] F2 --> P2["Produktiv
Stand v2.0"] F -.-> OBS["obsolescence:
v1.0 → superseded by v2.0"] style E fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style R fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style F fill:#10A987,stroke:#0A7F5C,color:#FBFAF7 style P fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style A fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style E2 fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style R2 fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style F2 fill:#10A987,stroke:#0A7F5C,color:#FBFAF7 style P2 fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style OBS fill:#E5E7EB,stroke:#6B7280,color:#0F1B33
| Phase | Opération Git | Référence GoBD |
|---|---|---|
| Brouillon | Commit sur main (ou branche de fonctionnalité) |
Rz. 83 (actualité) |
| Revue | Commits supplémentaires avec modifications | Rz. 83 (traçabilité) |
| Approbation | git tag vd-v1.0-2026 |
Rz. 83 (état contraignant) |
| En production | Le tag est immuable (Protected) | Rz. 146 (immuabilité) |
| Modification | Nouveaux commits + nouveau tag | Rz. 146–150 (changement de système) |
| Obsolescence | Ancienne version obsolescence: superseded_by |
Rz. 146 (traçabilité) |
Important - les tags comme marqueurs d’approbation : un tag Git est immuable
- il marque un état exact du commit qui ne peut pas être modifié ultérieurement. Cela correspond à GoBD Rz. 146 (immuabilité). L’auditeur peut, avec
git show vd-v1.0-2026, reconstituer l’état exact de la documentation des procédures au moment de l’audit.
Changement de système et migration (GoBD Rz. 146–150)
(z. B. Cloud-Lohn)"] A --> M["Migration
Commit mit Begründung"] M --> N["Neues System
(z. B. Git-Cover)"] A --> DA["Daten alt
git bundle
(self-contained)"] N --> DN["Daten neu
Git-Repo
(fortgeführt)"] M --> VD["Verfahrensdoku
fortgeschrieben
+ Commit-Message
mit Begründung"] style A fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style M fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style N fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style DA fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style DN fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style VD fill:#10A987,stroke:#0A7F5C,color:#FBFAF7
GoBD Rz. 146–150 exige lors d’un changement de système :
- Maintenir les données de l’ancien système disponibles -
git bundlecomme archive autonome (aucun compte cloud nécessaire, voir ED05 Z3) - Mettre à jour la documentation des procédures - nouveau commit avec justification : "Migration de Cloud-Lohn vers GitCover, date, rôle"
- Documenter la période transitoire - quelles données ont été migrées et de quelle manière, quels contrôles ont été réalisés
- Marquer l’ancienne version comme obsolète -
obsolescence: superseded_bydans l’ancien artefact de documentation des procédures
Exemple pratique : le dirigeant (
E1) migre d’un logiciel de paie dans le cloud vers GitCover. Il crée ungit bundlecontenant les anciennes données, met à jour la documentation des procédures (nouveau commit avec le message de commit "Migration vers GitCover, 260815, rôle : GF"), marque l’ancienne version commesupersededet crée le tagvd-v2.0-2027pour la nouvelle version. L’auditeur peut retracer les deux versions.
Le dépôt lui-même comme documentation des procédures
Verfahren (Rz. 64–71)"] R --> GC["git config
Systemumgebung (Rz. 72–76)"] R --> GA["git log --author
Organisation (Rz. 77–80)"] R --> GH["Git-Hooks
Kontrollen (Rz. 81–85)"] R --> SC["Schemata + Sidecars
Daten (Rz. 86–91)"] GL --> VD["Verfahrensdokumentation
entsteht automatisch"] GC --> VD GA --> VD GH --> VD SC --> VD style R fill:#0F1B33,stroke:#0F1B33,color:#FBFAF7 style GL fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style GC fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style GA fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style GH fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style SC fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style VD fill:#10A987,stroke:#0A7F5C,color:#FBFAF7
L’idée centrale : un dépôt Git est lui-même une documentation des procédures -
git logmontre la procédure,git configmontre l’environnement système, les hooks Git montrent les contrôles, les schémas montrent les structures de données. La documentation formelle des procédures (Markdown dansdocs/verfahrensdokumentation/) complète cela par une description lisible par un humain - mais la source faisant autorité est le dépôt lui-même.
Levier de réduction des risques
| Aujourd’hui (bon marché) | Demain (sûr en matière de révisions) | Risque réduit |
|---|---|---|
| Documentation des procédures comme artefact Git | GoBD Rz. 64–91 respecté dès la conception | Estimation § 162 AO (absence de documentation des procédures) |
git log comme justificatif de la procédure |
Traçabilité dans un délai raisonnable | Contestation de la documentation des procédures |
| Tags comme marqueurs d’approbation | État immuable au moment de l’audit | Contestation de l’état |
| Changement de système par commit + bundle | Conforme à GoBD Rz. 146–150 | Violation de la GoBD par un changement non documenté |
| Marquage d’obsolescence | Traçabilité des anciennes versions | Modifications dissimulées |
| Dépôt lui-même comme documentation des procédures | Documentation automatique par l’utilisation | Documentation des procédures obsolète |
Exigence Harness (aperçu)
Déductible d’ED07 :
| ID | Exigence | Priorité |
|---|---|---|
| FA-6.1 | Documentation des procédures comme artefact Git versionné | MUST |
| FA-6.3 | Gestion du plan comptable SKR04 (y compris les comptes de paie) | SHOULD |
| FA-6.6 | Immuabilité après approbation (tags, branches protégées) | MUST |
| FA-6.7 | Générateur de sites web statiques pour la clôture périodique (Z3+) | SHOULD |
| TA-2.1 | Pré-commit : validation selon le schéma JSON | MUST |
| TA-2.4 | Pré-commit : contrôle du statut d’obsolescence | SHOULD |
| TA-2.6 | Post-commit : génération automatique de l’index | SHOULD |
La liste complète des exigences se trouve dans Harness-Anforderungen.md.
Sources
- GoBD (lettre du BMF, Rz. 64–91 - documentation des procédures, Rz. 146–150 - changement de système, Rz. 83 - actualité)
- AO (§ 146 - dispositions réglementaires, § 147 - conservation)
E1/agents/(anonymisé) - concept SSoT avec la documentation des procédures comme artefact Git
Topologie des sources et liens de référence CDN
| Rôle | Emplacement | Finalité |
|---|---|---|
| Principal / SSoT | git.gitcover.org/GCC | Dépôt canonique (signé GPG, versionné) |
| Miroir OSS public / CDN | codeberg.org/gitcover-commons | Miroir en lecture seule ; découverte FLOSS |
| Hub communautaire | github.com/gitcover-commons | Issues & Discussions ; référence au code source sur Codeberg |
Remarque : cette attribution des sources, du miroir et du hub communautaire reflète l’état actuel et peut changer. Veuillez vérifier la source canonique correspondante sur gitcover.org pour connaître l’état actuel.