Aller au contenu

Conformité (NF525)

Garage+ tient pour chaque garage un journal fiscal inaltérable : chaque facture, chaque avoir, chaque remise d’un PDF et chaque clôture y est inscrit, chaîné au précédent et signé, dans la transaction même qui le produit. Au quotidien, vous n’avez rien à faire : les clôtures sont automatiques. Seule la clôture d’exercice se fait à la main, une fois par an. L’écran Réglages › Conformité est réservé aux personnes qui ont la permission Consulter la conformité ; la clôture d’exercice et le début d’exercice exigent Gérer la conformité. Une session support peut consulter, jamais clôturer.

L’écran a cinq onglets : Résumé, Journal, Clôtures, Archives et Attestation.

Le Résumé donne le nombre d’entrées du journal, la dernière (numéro, date, signature courte) et la dernière vérification faite depuis cet écran, avec sa pastille « Chaîne intègre ✓ » ou « Chaîne altérée ✗ ». Vérifier l’intégrité recalcule toute la chaîne : empreinte et signature de chaque entrée, chaînage, contenu de chaque pièce relu dans Garage+ ; le résultat s’affiche dans un dialogue et reste dans le résumé. Une vérification par minute au plus ; Garage+ vérifie aussi chaque chaîne toutes les nuits et prévient son équipe en cas d’anomalie.

Le résumé dit aussi si le garage est un garage de démonstration (documents « sans valeur ») ou, pour un garage réel, depuis quand sa facturation est activée et sur quel justificatif (voir Activation de la facturation), la version fiscale de Garage+ et les clés de signature de votre journal, chacune avec son empreinte SHA-256 complète (voir Clés de signature).

Le Journal liste les entrées, de la plus récente à la plus ancienne : numéro, date et heure (heure du garage), sorte (pièce émise, original rangé, remise, clôture, archive, clé, paiement, annulation de paiement, report de paiement, mouvement ou comptage de caisse…), pièce visée (numéro de la facture ou de l’avoir et, pour une remise, son numéro ; pour un paiement ou son annulation, les numéros des pièces réglées ; pour un report, « pièce d’origine → pièce visée » ; pour un mouvement de caisse, sa sorte ; période d’une clôture ou d’une archive ; lien vers le dossier), auteur (nom d’un membre actuel, « Système » ou « Opérateur »), début de l’empreinte et signature courte. Une pièce émise avant la mise en service du journal est marquée scellée a posteriori. Filtrez par sorte et par période ; le journal se lit par pages de 25 (barre de pages sous la liste, page gardée dans l’adresse) et reste consultable en entier. Les clôtures et les archives se lisent aussi par pages de 25. Le journal ne contient ni nom ni adresse de client : seulement des numéros, des montants et des empreintes.

Clôture journalière : chaque nuit (au plus tard un quart d’heure après minuit, heure de votre garage), Garage+ clôt la journée écoulée. Les jours sans activité sont clos aussi, à zéro : les clôtures se suivent sans trou depuis la première pièce émise. Une pièce compte dans le jour de son émission, selon le fuseau horaire du garage (Réglages › Garage) ; les jours de changement d’heure durent 23 ou 25 heures.

Clôture mensuelle : dès que le dernier jour d’un mois est clos, le mois l’est à son tour ; ses totaux sont la somme de ses jours (Garage+ le vérifie et refuse un écart).

Chaque clôture porte :

  • le nombre de factures, de factures d’acompte et d’avoirs, leurs montants HT, TVA et TTC — une facture finale y compte nette des acomptes qu’elle déduit (l’acompte a déjà compté le jour de sa facture d’acompte : jamais deux fois) ;
  • la TVA par taux, avoirs et acomptes déduits ;
  • le total TTC de la période (avoirs déduits) et le même total en valeur absolue ;
  • les encaissements par mode (nombre d’opérations et montant) et leur total : un paiement compte le jour où il est reçu, son annulation le jour où elle est faite (en négatif) ; un report d’une pièce à une autre ne change pas le total ;
  • la caisse : entrées et sorties d’espèces (paiements en espèces, fond de caisse, sorties, remises en banque, ajustements de comptage), nombre de comptages et écart de comptage cumulé ;
  • le grand total perpétuel : le total de toutes les périodes depuis la première pièce, repris de la clôture précédente (il ne revient jamais à zéro), et le total perpétuel en valeur absolue ;
  • le nombre de duplicatas remis ;
  • la plage du journal fiscal qu’elle couvre (entrées n° … à …) et sa signature courte.

Une clôture ne se modifie ni ne se supprime, par personne. Une fois un jour clos, aucune pièce ne peut plus être datée de ce jour : une facture émise exactement à minuit, pendant la clôture, est refusée (« Cette période est déjà clôturée ») ; émettez-la de nouveau, elle sera datée d’aujourd’hui.

Chaque clôture s’imprime en ticket Z (PDF A4) : identité du garage, période, totaux par sorte de pièce (factures nettes des acomptes déduits, factures d’acompte, avoirs) et par taux, grand total perpétuel, encaissements par mode et leur total, caisse (entrées, sorties, solde des mouvements, comptages, écart cumulé), plage du journal, signature courte et version de Garage+. Celui d’un garage de démonstration porte sur chaque page « Document de démonstration, sans valeur » et le filigrane « DÉMONSTRATION — sans valeur », sans mention de conformité. Le ticket Z se rend à la demande : l’ouvrir ne compte rien et ne change rien. Une clôture antérieure au suivi des règlements affiche « Aucun encaissement » et une caisse à zéro.

Le premier exercice commence avec la première pièce émise : par défaut l’année civile. Tant qu’aucun exercice n’est clos, vous pouvez choisir le mois de début de l’exercice (Gérer la conformité) : l’exercice en cours se termine alors la veille du prochain 1er de ce mois qui suit aujourd’hui (le premier exercice peut donc durer moins d’un an) : un exercice ne se termine jamais dans le passé ni avant la première pièce.

La clôture d’exercice se fait dans un dialogue, à partir du lendemain du dernier jour de l’exercice et une fois tous ses mois clos : récapitulatif des totaux, case « Je confirme que l’exercice est terminé », bouton Clôturer l’exercice. Elle est inscrite au journal fiscal, l’exercice suivant s’ouvre, et le début d’exercice ne se change plus. Une clôture d’exercice est définitive.

Garage+ produit automatiquement une archive fiscale à chaque clôture mensuelle et à chaque clôture d’exercice, dans le quart d’heure qui suit. Vous pouvez aussi en demander une pour une période de votre choix (un an au plus, jours déjà clos) avec la permission Gérer la conformité ; elle est prête quelques instants plus tard.

Une archive est un fichier ZIP qui se lit sans Garage+ :

  • les factures, les factures d’acompte et les avoirs de la période, avec tout ce qu’ils impriment (garage, client, véhicule, lignes, acomptes déduits, part déjà réglée par un tiers, condition de règlement), en JSON et en CSV (montants en centimes) ;
  • toutes les entrées du journal fiscal de la période, leurs empreintes et leurs signatures ;
  • les règlements de la période (paiements, annulations de paiement, reports), en JSON et en CSV (payments.json, format d’archive 2 ; une archive plus ancienne, de format 1, n’en a pas et se vérifie toujours) ;
  • la caisse de la période (fond de caisse, entrées, sorties, remises en banque, comptages et leurs écarts), en JSON et en CSV (cash.json, format d’archive 2) ;
  • les remises (original, duplicatas), les clôtures et leurs totaux, les archives précédentes ;
  • les clés publiques de signature, une page index.html lisible dans un navigateur, une notice en français (NOTICE-FR.md) et le script de vérification (verify-archive.mjs) ;
  • un manifeste qui liste chaque fichier avec son empreinte, signé par Garage+.

Les archives sont gardées par Garage+ hors de votre quota de stockage et ne sont jamais supprimées. Chaque archive est elle-même inscrite au journal fiscal avec son empreinte : la télécharger plus tard redonne exactement le même fichier, et Garage+ refuse de servir une archive dont le fichier ne correspond plus à cette empreinte (« L’archive fiscale rangée a été altérée ») en le signalant à l’équipe Garage+. Remettez l’archive à l’administration fiscale ou à votre expert-comptable quand ils la demandent.

Dans Garage+ : Vérifier une archive, puis déposez le fichier ZIP (50 Mo au plus ; il n’est pas gardé ; une archive plus grosse se vérifie hors de Garage+). Garage+ contrôle l’archive elle-même (signature du manifeste, empreinte de chaque fichier, chaînage et signature de chaque entrée, contenu de chaque pièce) puis la compare à son journal : mêmes entrées, mêmes signatures, clés de Garage+. Résultat : « Archive intègre ✓ », ou la première anomalie trouvée (fichier modifié, entrée manquante, signature invalide, archive d’un autre garage…).

Hors de Garage+, sur n’importe quel ordinateur, sans compte ni connexion :

  1. Installez Node.js (version 20 ou plus, nodejs.org).
  2. Ouvrez le ZIP de l’archive et copiez le fichier verify-archive.mjs à côté du ZIP.
  3. Vérifiez que ce script est bien celui de Garage+ : son empreinte SHA-256 doit être f6431fd79c3e56ac5f10a34ef9ddc3fd294c4d3863e16003fb9ef64ee1fd78df (sous Windows : certutil -hashfile verify-archive.mjs SHA256 ; sous macOS ou Linux : shasum -a 256 verify-archive.mjs).
  4. Relevez l’empreinte de la clé de signature de Garage+ (ci-dessous, Clés de signature) : elle seule prouve que l’archive a été signée par Garage+.
  5. Dans un terminal, dans ce dossier : node verify-archive.mjs --trusted-key <empreinte> archive-fiscale-….zip (répétez --trusted-key pour chaque clé, par exemple après un changement de clé).
  6. Lisez le résultat :
    • OK — N entrées (n° … à …), période du … au … : l’archive est intègre et signée par une clé de confiance ;
    • INTÈGRE, clés NON authentifiées (lancé sans --trusted-key) : l’archive est cohérente, mais rien ne prouve que ses clés sont celles de Garage+ ; relancez avec l’empreinte ;
    • ARCHIVE ALTÉRÉE — <cause> : l’archive a été modifiée, ou signée par une clé qui n’est pas de confiance (la cause dit où).
  7. Comparez l’empreinte SHA-512 affichée à celle de l’archive dans Garage+.

Sans Node, la notice jointe (NOTICE-FR.md) donne les commandes OpenSSL pour vérifier la signature du manifeste, l’empreinte de chaque fichier et la signature de chaque entrée.

L’onglet Attestation produit le projet d’attestation individuelle de l’éditeur au nom de votre garage, d’après le modèle de l’administration fiscale (BOI-LETTRE-000242) : volet 1 rempli pour l’éditeur et le logiciel (version majeure de Garage+), volet 2 au nom de votre garage, à compléter et signer par votre représentant légal, et en annexe les empreintes des clés de signature de votre journal. Ce document n’est qu’un projet tant qu’il n’est pas signé par le représentant légal de l’éditeur ; tant que l’identité de l’éditeur n’est pas complétée, l’onglet affiche « Attestation indisponible ». Un garage de démonstration n’a pas d’attestation : ses documents sont sans valeur. Présentez l’attestation signée en cas de contrôle.

Chaque entrée du journal fiscal et chaque archive est signée par une clé de Garage+. L’empreinte d’une clé (SHA-256 complet de sa clé publique, 64 caractères hexadécimaux) est publiée hors de l’application, pour qu’une archive falsifiée avec une autre clé soit reconnue : sur cette page et sur l’attestation individuelle de l’éditeur. Réglages › Conformité affiche les clés de votre journal ; le script affiche celles de l’archive.

Environnement Identifiant Empreinte SHA-256 En service depuis
Production — Aucune clé de production publiée à ce jour : Garage+ n’émet pas encore de document fiscal en production. —