Format Factur-X : tout savoir sur le PDF/A-3 + XML CII pour la facturation 2026
Par Laurent Jachimiak, fondateur Elginux · · Lecture 12 min
Factur-X est le format de facture électronique recommandé par la DGFiP pour la réforme 2026-2027. Ce n'est pas un format purement technique réservé aux développeurs — c'est le format que ta Plateforme Agréée (PA) génère automatiquement quand tu crées une facture dans son interface.
Si tu es dirigeant de TPE, tu n'as pas besoin de comprendre Factur-X pour être en conformité : ta PA s'en charge. Ce guide est utile si tu veux savoir pourquoi ce format existe, ce qu'il contient, ou si tu intègres un système de facturation dans ton infrastructure technique.
Pour la question « quelle PA choisir », voir le guide complet de sélection.
Pourquoi ce format hybride existe
Avant Factur-X, deux approches s'affrontaient pour la facturation électronique :
- Le PDF scanné — lisible par l'humain, mais illisible par les systèmes de comptabilité sans OCR. Chaque champ doit être ressaisi manuellement ou reconnu par intelligence artificielle avec des risques d'erreur.
- Le XML pur (UBL, CII) — lisible et traitable automatiquement par les ERP, mais illisible par l'œil humain sans outil de conversion. Inadapté aux échanges entre TPE où l'interlocuteur a besoin de voir la facture.
Factur-X résout ce problème avec une approche hybride : un seul fichier qui contient les deux. Le PDF/A-3 est lisible par l'humain, l'XML CII embarqué est lisible par les machines. La même pièce jointe sert aux deux usages.
Ce format a été développé conjointement par la France (FNFE-MPE — Forum National de la Facture Électronique et des Marchés Électroniques) et l'Allemagne (FeRD — Forum Elektronische Rechnung Deutschland). L'équivalent allemand s'appelle ZUGFeRD — c'est techniquement le même format avec un nom différent.
La version actuelle est Factur-X 1.0 (2020, publiée par le FNFE-MPE), conforme à la norme européenne EN 16931. Source technique de référence : fnfe-mpe.org.
Structure technique : PDF/A-3 + XML CII embarqué
PDF/A-3 : le conteneur
PDF/A-3 est un sous-standard du format PDF défini par la norme ISO 19005-3. Le suffixe « /A » signifie « Archivage » — il impose des contraintes strictes pour garantir la reproductibilité du document dans le temps :
- Toutes les polices doivent être embarquées dans le fichier (pas de référence externe)
- Les images doivent être en résolution suffisante (minimum 150 DPI, recommandé 300 DPI)
- Pas de chiffrement, pas de DRM
- La couleur doit être définie de façon indépendante du périphérique (ICC profiles)
- Les métadonnées XMP doivent être présentes et valides
Le « -3 » de PDF/A-3 (vs PDF/A-2 et PDF/A-1) ajoute la possibilité d'attacher des fichiers de n'importe quel format au PDF — ce qui permet l'embarquement du fichier XML CII.
XML CII : la donnée machine
CII (Cross Industry Invoice) est un standard XML défini par UN/CEFACT (Nations Unies). Il structure les données de la facture en balises typées : identifiant vendeur, acheteur, lignes de facture, montants, taux de TVA, conditions de paiement, etc.
Ce fichier XML est attaché au PDF/A-3 avec un nom de fichier spécifique défini dans la spécification Factur-X :
factur-x.xml(profil Minimum, Basic WL, Basic)factur-x.xml(profil EN 16931 et Extended également)
Les métadonnées XMP du PDF doivent déclarer le nom du fichier XML et le profil Factur-X utilisé — ce qui permet aux logiciels de lecture de savoir immédiatement quel niveau de données s'attendre.
La norme EN 16931
EN 16931 est la norme européenne de modèle de données sémantique pour la facture électronique. Adoptée en 2017, elle a été révisée le 13 février 2026 pour intégrer les échanges B2B (initialement conçue pour B2G). Elle définit les éléments obligatoires et optionnels d'une facture, indépendamment du format de transport (XML CII, UBL, etc.).
Factur-X est l'une des deux implémentations officielles d'EN 16931 :
- Factur-X / ZUGFeRD — implémentation XML CII (France, Allemagne)
- UBL — implémentation XML UBL (Belgique, Pays-Bas, Espagne, etc.)
Les deux sont acceptés par la DGFiP pour la facturation française. L'interopérabilité est assurée au niveau EN 16931.
Les 4 profils Factur-X : lequel correspond à ton cas ?
Factur-X définit 5 profils (dont un sous-profil), correspondant à des niveaux croissants de richesse de données. Pour les cas pratiques TPE/PME, 4 profils sont pertinents :
| Profil | Données incluses | PDF visible ? | Usage typique |
|---|---|---|---|
| Minimum | Identifiants parties, montant total, date | Oui | Micro-entreprises exonérées TVA, facturation simplifiée |
| Basic WL | Minimum + lignes de facture (sans PDF) | Non (XML pur) | Échanges automatisés entre ERP, sans affichage humain |
| Basic | Lignes, TVA, conditions paiement, mentions légales | Oui | Standard recommandé pour TPE/PME |
| EN 16931 | Toutes les données mandatoires EN 16931 | Oui | Compatibilité Chorus Pro, échanges avec GE/ETI |
| Extended | EN 16931 + données métier complémentaires | Oui | Grands comptes, secteurs avec besoins spécifiques |
Pour la grande majorité des TPE/PME, le profil Basic ou EN 16931 est approprié. Ta PA sélectionne généralement le profil automatiquement selon ton statut et ton secteur. Vérifie dans les réglages de ta PA quel profil elle utilise pour tes factures.
Le profil Minimum n'inclut pas les mentions TVA — il ne convient pas aux entreprises assujetties à la TVA. Le profil Basic WL (sans PDF visible) est réservé aux flux entièrement automatisés, pas aux factures envoyées à des clients TPE.
Factur-X vs UBL vs CII pur : quelle différence ?
| Format | Structure | Lisible humain ? | Norme | Usage |
|---|---|---|---|---|
| Factur-X | PDF/A-3 + XML CII | Oui (PDF) | EN 16931 / CII | France (+ Allemagne = ZUGFeRD) |
| UBL | XML pur | Non (sans conversion) | EN 16931 / UBL | Belgique, NL, Espagne, Suède, e-procurement EU |
| CII pur | XML pur | Non (sans conversion) | EN 16931 / CII | Échanges ERP-to-ERP automatisés |
Les trois formats sont conformes à la norme EN 16931 et acceptés par la DGFiP pour la facturation française 2026-2027. Pour les transactions B2B intra-UE à horizon 2030 (directive ViDA), c'est EN 16931 qui fait foi — pas le format de transport.
En pratique pour les TPE : Factur-X est préférable à UBL ou CII pur car il préserve la lisibilité humaine. Quand tu envoies une facture à un petit fournisseur qui n'a pas encore de PA configurée, le PDF reste lisible. Quand son ERP traite le fichier automatiquement, l'XML CII est là.
Outils pour générer et valider un Factur-X
Mustangproject (open-source, recommandé)
Mustangproject est une bibliothèque Java open-source (licence Apache 2.0) qui permet de générer et valider des fichiers Factur-X / ZUGFeRD. C'est la référence technique de facto dans l'écosystème.
- Génération de Factur-X à partir de données structurées
- Validation en ligne (mustangproject.org/validator) : upload du PDF, rapport de conformité
- Intégration Maven/Gradle pour projets Java
- Support Factur-X 1.0 (tous profils)
Si tu développes une intégration personnalisée, c'est le point de départ. Pour les TPE qui utilisent une PA, Mustangproject est utilisé en arrière-plan par les PA elles-mêmes.
Autres outils
| Outil | Type | Usage |
|---|---|---|
| Mustangproject Validator | Web (gratuit) | Validation d'un PDF Factur-X en ligne |
| Factur-X Python library | Open-source Python | Génération/lecture Factur-X en Python (pip install factur-x) |
| phpFacturX | Open-source PHP | Génération Factur-X en PHP |
| Portail DGFiP (pilote) | Web officiel | Validation DGFiP — disponible via les PA agréées |
Bugs courants à anticiper
Si tu génères des Factur-X toi-même ou si tu intègres une solution de facturation, voici les erreurs les plus fréquentes relevées par les développeurs.
Bug 1 — Polices non embarquées
PDF/A-3 exige que toutes les polices soient embarquées dans le fichier. Si tu génères le PDF à partir d'un HTML avec une police Google Fonts servie depuis un CDN externe, la police n'est pas embarquée — le fichier n'est pas PDF/A-3 conforme. Solution : utiliser des polices système (Helvetica, Times, Courier) ou embarquer la police en base64 dans le CSS avant la génération PDF.
Bug 2 — Résolution image insuffisante
Si tu inclus un logo d'entreprise dans ta facture, il doit être en résolution suffisante (recommandé 300 DPI pour l'archivage). Les logos exportés en 72 DPI depuis un outil web peuvent être trop petits. Exporte ton logo en PNG 600×600 px minimum ou utilise un SVG converti avant intégration.
Bug 3 — XML CII avec mauvais namespace
Le fichier XML CII embarqué doit déclarer les namespaces corrects selon le profil Factur-X. Un namespace incorrect ou manquant rend le fichier non conforme même si les données sont correctes. Le validateur Mustangproject détecte ce problème immédiatement. Utilise les templates officiels FNFE-MPE comme base.
Bug 4 — Signature électronique qui altère le hash
Si tu appliques une signature électronique au PDF après avoir embarqué le XML CII, la signature doit être compatible PDF/A-3 (PAdES conforming signature). Une signature électronique standard peut altérer la structure du fichier et invalider la conformité PDF/A. Utilise un outil de signature qui supporte explicitement PDF/A-3 (Adobe Acrobat Pro, DocuSign, GlobalSign avec profil PDF/A).
Bug 5 — Montants arrondis incorrectement
Le format XML CII requiert des montants avec 2 décimales exactes dans certains champs (BT-106 InvoiceTotalAmount par exemple). Un montant arrondi à 1 décimale ou formaté avec une virgule au lieu d'un point invalide la structure. En langage informatique : utilise toujours un format numérique ##0.00 avec séparateur décimal . (point, pas virgule).
Comment archiver un Factur-X correctement
La réglementation fiscale française impose la conservation des factures pendant 6 ans (article L. 102 B du Livre des Procédures Fiscales). Pour les e-factures, cela signifie conserver le fichier Factur-X original dans son intégralité — le PDF seul ne suffit pas si l'XML CII en fait partie.
Points à vérifier avec ta PA :
- La PA conserve-t-elle les fichiers Factur-X originaux, ou seulement les données extraites ?
- L'archivage est-il inclus dans l'offre gratuite ou en option payante ?
- Comment récupérer l'archive si tu changes de PA ?
- Le coffre-fort numérique est-il certifié (norme NF Z42-013 pour l'archivage électronique probant) ?
Pour les TPE, la majorité des PA intègrent un archivage basique. Les PA premium proposent un coffre-fort probant certifié NF Z42-013 en option payante. Pour des enjeux fiscaux importants (montants élevés, contentieux potentiels), l'archivage certifié est recommandé.
Questions fréquentes sur Factur-X
Dois-je comprendre Factur-X pour choisir ma PA ?
Non. La PA gère la génération du fichier Factur-X en ton nom. Tu crées ta facture dans l'interface, la PA produit le Factur-X conforme et le transmet au PPF et à ton client. Tu n'interagis jamais directement avec le format technique. Ce guide est utile si tu développes un système d'intégration ou si tu veux comprendre pourquoi ce format existe.
Ma PA m'envoie des fichiers .pdf — sont-ils automatiquement des Factur-X ?
Pas forcément. Un PDF classique n'est pas un Factur-X. Pour qu'il le soit, il faut qu'il soit au format PDF/A-3 avec un XML CII embarqué. Pour vérifier : télécharge un fichier facture émis par ta PA et dépose-le sur mustangproject.org/validator. Si le validateur détecte un fichier XML CII intégré et que le profil est reconnu, c'est bien un Factur-X.
Mon client reçoit un fichier PDF — peut-il l'ouvrir normalement ?
Oui. Un Factur-X est un PDF standard lisible dans n'importe quel lecteur PDF (Adobe Reader, Aperçu Mac, navigateurs web). L'XML CII est invisible à la lecture humaine — il ne change pas l'apparence du document. Ton client voit exactement la même chose qu'un PDF classique, mais son logiciel de comptabilité peut en plus extraire automatiquement les données structurées.
Factur-X fonctionne-t-il pour les factures internationales ?
Oui, en partie. Factur-X étant conforme EN 16931, il est compatible avec les systèmes des pays qui ont adopté EN 16931 (Allemagne avec ZUGFeRD, Belgique, Pays-Bas, etc.). À partir du 1er juillet 2030 (directive ViDA), les transactions B2B intra-UE devront toutes être en e-invoicing conforme EN 16931 — une facture Factur-X française sera nativement compatible. Source : Commission EU, directive ViDA mars 2025.
Comparer les PA qui supportent Factur-X
Toutes les PA immatriculées DGFiP supportent Factur-X — c'est une exigence de l'immatriculation. Le quiz ConformiCheck t'aide à choisir parmi les 127 PA selon ton profil, pas selon le format (toutes sont compatibles).
Articles complémentaires
Article rédigé par Laurent Jachimiak, fondateur d'Elginux, avec assistance IA pour la recherche documentaire et la synthèse initiale. Édité et signé par Laurent. Sources principales : spécification Factur-X 1.0 (FNFE-MPE, fnfe-mpe.org), norme EN 16931 (révisée 13 fév 2026), Mustangproject.org, Commission EU (directive ViDA mars 2025), impots.gouv.fr. Aucune affiliation ni commission ne lie l'auteur aux PA citées. Conformément à l'EU AI Act (applicable au 2 août 2026).