Ce que ça change concrètement

Depuis le 17 mai 2026, chaque PDF de facture client généré par SynkriaOps embarque un QR code en bas du document. Le QR encode un JWT signé qui contient :

  • L’identifiant du tenant émetteur
  • Le numéro de pièce et la date
  • Le hash SHA-256 chaîné de la pièce (déjà calculé en interne pour la conformité NF203/SYSCOHADA art. 24)
  • Un identifiant de clé (kid) permettant la rotation graceful sur 10 ans

Le scan du QR depuis n’importe quel smartphone ouvre la page app.synkriaops.com/v/{token} qui retourne Document authentique ou Document altéré avec les métadonnées affichées en clair.

Pourquoi c’est important

L’article 24 du SYSCOHADA révisé impose une conservation des pièces comptables sur 10 ans avec garantie d’intégrité. Le hash chaîné déjà présent dans SynkriaOps couvre cette exigence côté base de données interne.

Le QR ajoute une dimension externe : un tiers qui reçoit une facture papier ou PDF peut vérifier sa validité sans accès à votre comptabilité, juste en scannant le code. C’est utile dans deux contextes :

  1. Contrôle fiscal — un inspecteur des impôts peut vérifier en direct qu’une facture qu’on lui présente n’a pas été modifiée après émission.
  2. Audit cabinet — un commissaire aux comptes peut auditer l’intégrité d’un lot de factures avant clôture sans demander d’export FEC complet.

Rotation des clés

Le JWT de vérification est signé par une clé symétrique référencée par un kid (key id). Le backend supporte plusieurs kid simultanément pour permettre la rotation tous les 18-24 mois sans invalider les QR émis précédemment.

La conservation des clés historiques est obligatoire pendant toute la durée de rétention SYSCOHADA, soit 10 ans à compter de la dernière clôture utilisant la clé.

Pour les utilisateurs existants

Aucune action requise. Toutes les factures émises depuis le 17 mai 2026 embarquent automatiquement le QR. Les factures antérieures ne sont pas rétroactivement mises à jour — leur intégrité reste vérifiable côté base via le hash chaîné historique.


Détails techniques de l’implémentation : PR #270, mergée le 2026-05-17. Le mécanisme est documenté dans apps/api/src/modules/pieces-comptables/services/qr-verification-token.service.ts.