Blog/18 juillet 2026·4 min
Le QR code des factures saoudiennes : que contient-il et comment vérifier une facture ?
Le QR code d'une facture saoudienne n'est pas un lien — c'est un paquet de données encodé en TLV portant le nom du vendeur, son numéro de TVA, l'horodatage et les montants, plus, en phase 2, l'empreinte de la facture et sa signature numérique. Guide accessible de son contenu et de sa vérification.
Le QR code d'une facture saoudienne est un champ obligatoire dont la spécification est fixée par la ZATCA (Zakat, Tax and Customs Authority) — et il n'a rien des QR codes marketing qui ouvrent une page web. Il embarque les données mêmes de la facture, dans un format structuré que tout lecteur compatible peut décoder et vérifier. Obligatoire sur les factures fiscales simplifiées depuis le 4 décembre 2021, son contenu s'est enrichi en phase 2 d'éléments cryptographiques qui rendent la facture auto-vérifiable.
Que contient le QR code d'une facture saoudienne ?
Le code porte les données essentielles de la facture encodées au format TLV (tag – longueur – valeur) : le nom du vendeur, son numéro d'immatriculation à la TVA, l'horodatage, le total de la facture TVA comprise et le montant de la TVA. La phase 2 a ajouté des champs cryptographiques : l'empreinte (hash) de la facture, la signature numérique et la clé publique. Ces champs sont concaténés en une chaîne unique, encodée en Base64, puis convertie en carré QR imprimé sur la facture.
En clair : TLV signifie que chaque information est stockée en triplet — un numéro de tag qui identifie sa nature, sa longueur en octets, puis sa valeur — pour une lecture des champs dans un ordre fixe et sans ambiguïté.
Quels sont les neuf champs en détail ?
| Tag | Contenu | Phase |
|---|---|---|
| 1 | Nom du vendeur | Phase 1 |
| 2 | Numéro d'immatriculation à la TVA | Phase 1 |
| 3 | Horodatage de la facture | Phase 1 |
| 4 | Total de la facture (TVA comprise) | Phase 1 |
| 5 | Montant total de la TVA | Phase 1 |
| 6 | Empreinte (hash) du XML de la facture | Phase 2 |
| 7 | Signature numérique (ECDSA) | Phase 2 |
| 8 | Clé publique du vendeur | Phase 2 |
| 9 | Signature ZATCA de la clé publique (factures simplifiées) | Phase 2 |
Les champs 1 à 5 rendent les données de la facture lisibles par machine ; les champs 6 à 9 les rendent prouvables : l'empreinte révèle toute modification postérieure à l'émission, et la signature prouve que la facture provient bien du système du vendeur enregistré auprès de la ZATCA.
Pourquoi le QR code compte-t-il pour le consommateur comme pour l'entreprise ?
Parce qu'il fait de chaque client un vérificateur. Le consommateur peut scanner le code et comparer son contenu (nom du vendeur, numéro de TVA, montants) avec ce qui est imprimé sur la facture ; toute divergence est un signal d'alerte. Pour l'entreprise, le code compte à deux titres :
- conformité : une facture simplifiée sans QR code — ou avec un code non conforme à la spécification — est tout simplement non conforme ;
- confiance : le code signé de la phase 2 prouve à vos clients que vos factures sortent d'un système conforme, intégré à la plateforme Fatoora.
Comment vérifier une facture via son QR code ?
- Scannez le code avec n'importe quel lecteur QR capable d'afficher le texte brut (aucune application spéciale n'est requise pour lire le contenu) ; vous obtenez une chaîne Base64.
- Décodez-la avec un outil de décodage TLV — il en existe de gratuits — pour afficher les champs : nom du vendeur, numéro de TVA, horodatage, montants.
- Comparez les valeurs extraites avec la facture papier ou numérique : elles doivent correspondre exactement.
- Contrôlez le numéro de TVA : un numéro saoudien compte 15 chiffres et commence et se termine par le chiffre 3.
- Pour les développeurs et les systèmes : les guides techniques de la ZATCA spécifient la génération et la validation du code, et les systèmes passent des contrôles de conformité avant de recevoir leur certificat de cachet cryptographique de production.
Quelles sont les erreurs courantes de génération du code ?
- mauvais encodage du texte : les champs texte (dont les noms en arabe) doivent être encodés en UTF-8 avant le calcul des longueurs, sinon le décodage casse ;
- compter la longueur en caractères et non en octets — un caractère arabe occupe plus d'un octet ;
- embarquer une URL au lieu des données TLV : un code qui ouvre une page web ne respecte pas la spécification ;
- ne pas régénérer le code après correction d'une facture par note de crédit — chaque document a son propre code.
Les systèmes conformes — dont Efatora — génèrent automatiquement le code selon la bonne spécification à chaque facture, sans que le dirigeant ait à toucher aux détails d'encodage.
L'essentiel
Le QR code saoudien est la carte d'identité de la facture : cinq champs d'identification depuis la phase 1, quatre champs cryptographiques en phase 2 qui rendent toute falsification détectable. Le scanner et le comparer à la facture est le test d'intégrité le plus simple pour toute facture reçue.
