ConformiCheck
Guide technique · 27 avril 2026

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 :

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 :

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 :

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 :

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 :

ProfilDonnées inclusesPDF visible ?Usage typique
MinimumIdentifiants parties, montant total, dateOuiMicro-entreprises exonérées TVA, facturation simplifiée
Basic WLMinimum + lignes de facture (sans PDF)Non (XML pur)Échanges automatisés entre ERP, sans affichage humain
BasicLignes, TVA, conditions paiement, mentions légalesOuiStandard recommandé pour TPE/PME
EN 16931Toutes les données mandatoires EN 16931OuiCompatibilité Chorus Pro, échanges avec GE/ETI
ExtendedEN 16931 + données métier complémentairesOuiGrands 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 ?

FormatStructureLisible humain ?NormeUsage
Factur-XPDF/A-3 + XML CIIOui (PDF)EN 16931 / CIIFrance (+ Allemagne = ZUGFeRD)
UBLXML purNon (sans conversion)EN 16931 / UBLBelgique, NL, Espagne, Suède, e-procurement EU
CII purXML purNon (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.

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

OutilTypeUsage
Mustangproject ValidatorWeb (gratuit)Validation d'un PDF Factur-X en ligne
Factur-X Python libraryOpen-source PythonGénération/lecture Factur-X en Python (pip install factur-x)
phpFacturXOpen-source PHPGénération Factur-X en PHP
Portail DGFiP (pilote)Web officielValidation 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 :

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).