SHA-256 transforme les octets d’un fichier en une empreinte de 64 caractères hexadécimaux. Le même fichier donne la même empreinte ; une différence, même minuscule, en donne presque certainement une autre. C’est utile pour vérifier que l’XML exporté est identique à celui scellé lors de l’émission. Mais le hash seul ne nomme pas son auteur, ne donne pas une date juridiquement fiable et ne prouve aucun dépôt DGI.

La bonne lecture du hash
- SHA-256 calcule une empreinte déterministe sur les octets exacts.
- Changer une lettre, un espace ou l’encodage suffit à changer le résultat.
- Une empreinte correspondante établit l’identité des octets comparés, pas la vérité commerciale du contenu.
- Le hash seul n’est ni signature électronique, ni cachet qualifié, ni horodatage de confiance.
- Conservez l’empreinte dans un manifeste séparé et contrôlez-la avant transmission ou restauration.
- BelloPOS scelle localement l’UBL émis et réexporte cette copie exacte.
1. Comment 1 200 DH deviennent une empreinte
L’algorithme ne comprend ni facture ni dirham. Il lit une suite d’octets : balises XML, lettres, chiffres, espaces et retours de ligne. Il produit toujours 256 bits, généralement affichés en 64 caractères de 0 à 9 et de a à f. Une petite facture et un grand ZIP ont donc une empreinte de même longueur. Pour comprendre le contenu avant son hash, lisez notre guide UBL 2.1.
| Action sur la copie | Empreinte attendue | Interprétation |
|---|---|---|
| Aucune modification | Identique | Les octets comparés sont identiques |
| 1 200.00 devient 1 201.00 | Différente | Le contenu a changé |
| Ajout d’un espace | Différente | La représentation binaire a changé |
| Nouvel encodage ou fins de ligne | Différente | Le texte peut sembler pareil, pas les octets |
| Renommage sans toucher au contenu | Identique | Le nom n’entre pas dans le hash du fichier |
| Compression dans un nouveau ZIP | Hash du ZIP différent | L’archive est un autre objet à contrôler |
L’effet d’avalanche rend deux empreintes sans relation visuelle même pour un changement minime. On ne doit donc pas chercher quel champ a changé en lisant les hashes ; on constate seulement que les octets ne sont plus les mêmes, puis on compare les fichiers ou on revient à la source.
2. Ce que l’empreinte prouve réellement
Si vous avez une empreinte de référence conservée séparément et que le calcul actuel correspond, vous pouvez conclure que le fichier testé possède les mêmes octets que la référence. Dans BelloPOS, cette référence est calculée au moment où la facture reçoit son numéro et le XML est placé dans la file locale. Le manifeste de l’export XML et ZIP répète l’empreinte pour le rapprochement.
- Intégrité : Détecter qu’un fichier n’est plus identique à la copie de référence.
- Déduplication : Reconnaître deux copies octet pour octet identiques malgré des noms différents.
- Remise : Noter l’empreinte du fichier transmis et vérifier la copie reçue.
- Restauration : Contrôler que la sauvegarde rend exactement l’objet attendu.
- Piste : Relier un numéro de manifeste au XML correspondant.
La qualité de la preuve dépend de la protection de la référence. Si un attaquant modifie à la fois le XML et le hash stocké dans le même dossier, une comparaison naïve ne détecte rien. Copiez donc le manifeste ou le journal dans un emplacement protégé, limitez les droits et gardez plusieurs sauvegardes.
3. Ce que SHA-256 ne prouve pas
Un hash est un outil d’intégrité, pas une conclusion juridique universelle.
| Question | SHA-256 seul répond ? | Preuve complémentaire |
|---|---|---|
| Qui a émis la facture ? | Non | Identité, droits, journal et éventuellement signature |
| Quand a-t-elle existé ? | Non | Journal protégé ou horodatage de confiance |
| Le taux de TVA est-il juste ? | Non | Règles fiscales et contrôle comptable |
| Le client l’a-t-il reçue ? | Non | Accusé de remise |
| La DGI l’a-t-elle acceptée ? | Non | Réponse du canal officiel |
| Le fichier a-t-il changé ? | Oui, si la référence est fiable | Recalcul et comparaison complète |
Ne dites donc pas facture signée lorsque vous voulez dire fichier hashé. Une signature électronique lie des données à un signataire et à un mécanisme de vérification ; un cachet électronique répond à un autre rôle ; un horodatage apporte une information temporelle. Le guide cachet, signature et scellement compare ces notions.

Une empreinte n’est pas une validation fiscale
L’inscription SHA-256 dans un manifeste BelloPOS prouve le choix technique de l’application et permet une vérification locale. Elle n’est pas un jeton DGI, une signature d’agent public, un agrément ou un accusé de dépôt.
4. Test pratique sur une copie
Exportez un XML, calculez SHA-256 avec un outil local de confiance et copiez le résultat dans votre feuille de contrôle. Dupliquez le fichier, modifiez un caractère non critique dans la copie et recalculez. Les deux chaînes doivent être différentes. Supprimez ensuite la copie altérée, pas l’original scellé.
Sur Windows, Get-FileHash permet de choisir SHA256. Sur macOS et Linux, shasum -a 256 est courant. Vérifiez le chemin exact avant d’exécuter la commande et comparez les 64 caractères. Une capture partielle ou huit premiers caractères ne suffisent pas à votre journal de preuve.
Répétez le test après copie vers une clé, restauration d’une sauvegarde ou réception par la fiduciaire. Une différence ne dit pas automatiquement fraude : transfert incomplet, outil qui réécrit le texte, changement de fins de ligne ou mauvais fichier peuvent l’expliquer. Mais il faut arrêter le flux jusqu’à identification.
5. Le scellement dans BelloPOS
À l’émission d’une facture ou d’un avoir couvert, BelloPOS construit l’UBL 2.1, calcule SHA-256 sur sa chaîne UTF-8 et conserve XML, empreinte, numéro, type, état et date locale de scellement dans la file. L’opération est idempotente : une réimpression ne doit pas produire un deuxième scellé pour la même facture.
| Moment | Objet | Résultat |
|---|---|---|
| Émission | XML UBL exact | Hash et copie locale |
| Réimpression | Même document | Pas de nouveau dépôt ni nouveau hash |
| Export individuel | XML conservé | Octets identiques au scellé |
| Export de période | Plusieurs XML | ZIP et manifeste de hashes |
| Transmission | Hors BelloPOS aujourd’hui | Accusé à conserver séparément |
Cette fonction existe à partir de Go et travaille sans Internet. Elle n’empêche pas la perte du PC et ne remplace donc pas la sauvegarde. Le hash aide à vérifier une restauration ; il ne restaure rien. Associez-le aux règles d’archivage des factures.
Les erreurs à éviter
- Hasher le PDF alors que le manifeste décrit l’XML.
- Comparer seulement une partie de la chaîne.
- Recalculer après avoir ouvert et enregistré le fichier.
- Conserver fichier et seule référence dans le même dossier modifiable.
- Appeler le hash signature électronique.
- Présenter le hash comme accusé DGI.
- Ignorer une différence parce que la facture semble identique.
- Oublier de tester les copies restaurées.
Questions fréquentes
SHA-256 chiffre-t-il la facture ?
Non. Le hash n’empêche pas la lecture et ne permet pas de récupérer le contenu. Le chiffrement sert à la confidentialité ; SHA-256 sert ici à l’intégrité.
Peut-on reconstruire l’XML depuis son hash ?
Non. L’empreinte est à sens unique. Il faut conserver le fichier et ses sauvegardes.
Deux fichiers identiques ont-ils le même hash ?
Oui si leurs octets sont exactement identiques. Un simple changement d’encodage peut produire un hash différent.
SHA-256 est-il une signature électronique ?
Non. Une signature ajoute notamment un lien avec un signataire et une vérification de clé. Le hash seul ne fournit pas cela.
Le hash prouve-t-il le dépôt à la DGI ?
Non. Seul le retour du canal officiel peut documenter réception ou statut. BelloPOS ne transmet pas directement aujourd’hui.
Pourquoi BelloPOS hash-t-il au moment de l’émission ?
Pour lier la copie structurée au document qui vient de recevoir son numéro, puis réexporter les mêmes octets au lieu de les reconstruire plus tard.
À retenir
SHA-256 répond très bien à une question étroite : ce fichier est-il identique à la référence ? Il ne répond pas à qui, quand, pourquoi, fiscalement juste ou accepté par la DGI. Utilisez-le dans une chaîne de preuve, jamais comme raccourci pour toute la conformité.
Sources
Les chiffres et les règles cités ci-dessus viennent de ces pages, consultées à la date indiquée dans l’article.
- BelloPOS, facturation électronique et export UBL, consulté le 29 août 2026
- Spécification officielle Universal Business Language 2.1, OASIS
- Code général des impôts 2026, DGI, consulté le 29 août 2026
Scellez, exportez et vérifiez localement
Testez BelloPOS Go avec une facture d’essai, recalculez son SHA-256 et faites vérifier la même copie après remise à votre fiduciaire.
Pour aller plus loin
D’autres guides pratiques sur le même sujet :