Blog

Factur-X : format, structure et outils pour la facturation électronique française

May 7, 2026

Factur-X est un format de facture électronique hybride associant un PDF/A-3 lisible par tout lecteur standard et un fichier XML structuré selon la syntaxe CII (Cross Industry Invoice) de l'UN/CEFACT, embarqué dans la même enveloppe. Standardisé par l'AFNOR sous la référence Z 111-200 et développé par le FNFE-MPE, il couvre six profils de données allant de MINIMUM à EXTENDED. Ce format constitue l'une des syntaxes retenues pour la réforme française de facturation électronique, dont l'entrée en vigueur débute en septembre 2026 pour les grandes entreprises et les ETI.

La facturation électronique en France ne se résume plus à un PDF envoyé par e-mail. Depuis l'ordonnance du 15 septembre 2021, la DGFiP a engagé un chantier de refonte profond : toutes les transactions entre assujettis à la TVA devront transiter, à terme, par une plateforme certifiée (PDP) ou le portail public de facturation (PPF). Dans ce cadre, le choix du format technique n'est pas anodin. Factur-X s'impose comme le format hybride de référence précisément parce qu'il répond à deux contraintes simultanées : être lisible par un comptable sans outil spécifique, et être traitable automatiquement par un ERP ou une application de gestion.

Qu'est-ce que Factur-X

Factur-X est né d'une coopération franco-allemande entre le FNFE-MPE (Forum National de la Facture Électronique et des Marchés Publics Électroniques) et la FeRD (Forum Elektronische Rechnung Deutschland). L'objectif initial était de produire un format commun compatible avec les deux marchés, tout en respectant la norme européenne EN 16931 sur la sémantique des données de facturation.

Le principe repose sur une architecture en deux couches. Un fichier PDF/A-3 sert d'enveloppe visible : quand un comptable l'ouvre dans son lecteur habituel, il voit la facture mise en forme. À l'intérieur de ce même fichier, un document XML nommé factur-x.xml est attaché comme pièce jointe intégrée. Ce XML suit la syntaxe CII (Cross Industry Invoice), issue du standard international UN/CEFACT version D16B. Quand un logiciel de comptabilité importe le fichier, il lit directement le XML, sans OCR ni interprétation visuelle.

Cette architecture répond à un problème pratique. Pendant la phase de transition vers la dématérialisation complète, tous les destinataires ne disposent pas encore d'un système capable de traiter du XML pur. Le PDF/A-3 assure la continuité de lecture, tandis que le XML garantit l'intégrité et la structuration des données.

Factur-X a été normalisé par l'AFNOR sous la référence Z 111-200, publiée en juillet 2017. La version 1.0.07 fait office de référence technique pour le marché français. À partir de la version 2.x, Factur-X et ZUGFeRD sont devenus techniquement identiques : seul le nom diffère selon le pays d'émission.

Structure d'un fichier Factur-X

L'enveloppe PDF/A-3

Le PDF/A-3 est une version archivable du format PDF, défini par la norme ISO 19005-3:2012. Par rapport aux versions antérieures PDF/A-1 et PDF/A-2, il autorise l'intégration de pièces jointes de tout type de fichier. C'est cette caractéristique qui permet d'embarquer le XML sans altérer la conformité d'archivage du document. Le fichier résultant peut être conservé comme document légal, ce qui répond aux obligations de conservation des factures sur dix ans en droit français.

Les métadonnées XMP du PDF/A-3 contiennent des champs spécifiques à Factur-X : le nom du profil utilisé, la version de la spécification et le nom du fichier XML joint. Ces métadonnées permettent à un logiciel de détecter automatiquement la présence du XML et d'en extraire le contenu.

Le fichier XML embarqué au format CII

Le XML suit la syntaxe Cross Industry Invoice de l'UN/CEFACT, version D16B. Cette syntaxe est l'une des deux syntaxes officielles retenues par la norme EN 16931, avec UBL 2.1. Elle organise les données en une hiérarchie précise, depuis les informations générales jusqu'aux lignes de détail.

Le document CII s'articule autour de plusieurs blocs fonctionnels. L'en-tête contient le numéro de facture, la date d'émission, le type de document (facture, avoir, note de débit) et les références au contrat ou à la commande si elles existent. Les parties identifient le vendeur et l'acheteur : raison sociale, adresse postale complète, numéro de TVA intracommunautaire, SIREN pour les entités françaises. Les lignes de facturation décrivent chaque article ou prestation avec sa quantité, son prix unitaire HT et le taux de TVA. Les totaux récapitulent le montant HT, la TVA ventilée par taux, le montant TTC et les éventuelles remises globales. Les conditions de paiement précisent l'IBAN du bénéficiaire, le délai de règlement et le mode de paiement retenu.

La cohérence entre XML et PDF

La norme Factur-X impose que les données du XML soient cohérentes avec ce qui est affiché dans le PDF. En cas de divergence, c'est le XML qui fait foi pour le traitement automatique. Si le logiciel de facturation génère le PDF à partir du XML, cette cohérence est garantie par construction. Si le PDF est créé séparément puis complété avec un XML généré indépendamment, un contrôle de cohérence s'impose avant toute transmission à une PDP ou au PPF.

Les six profils Factur-X

Factur-X définit six profils correspondant à des niveaux de complétude croissants. Le choix du profil dépend de la nature de la transaction, des exigences de la plateforme de dépôt et, à partir de septembre 2026, des contraintes imposées par la PDP ou le PPF de votre entreprise.

Profil Données incluses Cas d'usage principal Conforme EN 16931
MINIMUM 7 champs obligatoires : identifiants vendeur/acheteur, date, montant TTC, TVA globale Virements inter-entreprises sans détail de TVA Non
BASIC WL En-tête complet, totaux, sans lignes de détail Abonnements, factures globales récurrentes Non
BASIC En-tête, lignes simples, totaux, TVA ventilée par taux PME, facturation courante B2B Non
EN 16931 Ensemble sémantique complet de la norme européenne Échanges transfrontaliers au sein de l'Union européenne Oui
EXTENDED Données EN 16931 avec extensions métier (références logistiques, codes articles, données douanières) Secteurs à contraintes documentaires élevées : automobile, industrie, défense Oui
XRechnung Profil allemand pour les marchés publics, basé sur EN 16931 Facturation aux donneurs d'ordre publics allemands Oui

Pour la réforme française de 2026, la DGFiP a indiqué que les profils MINIMUM, BASIC WL et BASIC seront acceptés pour les flux B2B, à condition que le total de TVA soit présent. Le profil EN 16931 sera requis pour certains flux transfrontaliers dans le cadre du projet ViDA (VAT in the Digital Age) porté par la Commission européenne.

Factur-X face aux autres formats de facturation électronique

Critère Factur-X UBL 2.1 CII D16B PDF simple
Nature du fichier PDF/A-3 avec XML embarqué XML seul XML seul PDF sans données structurées
Lisible sans logiciel métier Oui Non Non Oui
Traitement automatique natif Oui, via le XML CII embarqué Oui Oui Non (OCR ou saisie manuelle requis)
Conformité EN 16931 Selon profil (EN 16931 et EXTENDED) Oui (syntaxe officielle) Oui (syntaxe officielle) Non
Accepté sur le PPF français Oui Oui Oui Non à partir de septembre 2026
Utilisé en Allemagne Oui, sous le nom ZUGFeRD depuis la v2.x Usage marginal Oui (XRechnung) Non accepté

La différence principale entre Factur-X et UBL tient à l'enveloppe : UBL est un XML pur, sans PDF. Il est parfaitement lisible par les systèmes informatiques, mais un interlocuteur sans ERP compatible ne peut pas l'afficher directement dans son lecteur de documents standard. Factur-X lève cette contrainte au prix d'un fichier légèrement plus lourd, entre 80 Ko et 300 Ko selon la complexité de la facture.

Comment créer un fichier Factur-X

La génération d'un fichier Factur-X peut suivre deux chemins selon la taille et l'outillage de votre entreprise.

Les principaux éditeurs de logiciels comptables français ont intégré Factur-X dans leurs offres. Sage 100 et Sage X3 produisent des fichiers Factur-X depuis leur version 2023. Cegid Loop et Cegid XRP Flex exposent une option d'export Factur-X dans le module de facturation. Pennylane prend en charge le format depuis 2024. EBP Gestion Commerciale propose l'export à partir de sa version 2024. Dans chacun de ces cas, le logiciel génère simultanément le PDF/A-3 et le XML CII, puis les assemble automatiquement.

Pour une génération programmatique, plusieurs bibliothèques open source couvrent les besoins courants. En Python, drafthorse associée à pypdf permet de construire le XML CII et de l'intégrer dans un PDF/A-3. En Java, Mustang, maintenue par la communauté ZUGFeRD, couvre l'ensemble des profils Factur-X. En PHP, factur-x-php offre une implémentation légère pour les applications web.

Quelle que soit la méthode retenue, quatre points méritent une vérification systématique avant toute mise en production : la conformité du PDF au standard PDF/A-3 (vérifiable avec VeraPDF), la validité du XML par rapport au schéma XSD du profil cible, la cohérence entre les montants affichés dans le PDF et ceux déclarés dans le XML, et la présence correcte du fichier XML dans les pièces jointes intégrées du PDF.

Comment lire et extraire les données d'un fichier Factur-X reçu

Du côté du destinataire, exploiter un Factur-X suppose d'extraire le XML embarqué puis d'en analyser le contenu. L'extraction peut se faire avec tout outil capable de lire les pièces jointes d'un PDF/A-3 : Adobe Acrobat Pro, des scripts Python utilisant pypdf, ou des API documentaires. Une fois le fichier factur-x.xml isolé, son contenu est parsé selon la structure CII pour alimenter le système comptable.

Cette approche fonctionne correctement lorsque les fichiers reçus sont conformes au profil annoncé. En pratique, les entreprises reçoivent souvent un mélange de formats : Factur-X correctement formé, PDF simples sans XML, fichiers dont le XML présente des écarts par rapport au schéma attendu. Traiter ce volume hétérogène avec des parseurs rigides génère des exceptions fréquentes et exige une supervision manuelle régulière.

Lido est une plateforme d'extraction de données par IA sans modèle qui lit à la fois le PDF et le XML lorsqu'ils sont présents, réconcilie les données issues des deux sources et signale les incohérences détectées. Elle accepte dans le même flux les Factur-X de tous profils, les UBL, les PDF simples et les images de factures numérisées. Le résultat est livré en JSON structuré, directement intégrable dans un ERP, un outil comptable ou une base de données. L'essai est disponible pour 50 pages sans carte bancaire.

Valider un fichier Factur-X

Le FNFE-MPE met à disposition un validateur en ligne accessible sur son site officiel. Cet outil vérifie deux niveaux de conformité : la structure XML par rapport au schéma XSD du profil déclaré, et les règles métier définies dans les schématrons associés. Ces schématrons couvrent des contraintes comme la cohérence des montants, la présence des champs obligatoires selon le profil retenu, et le format des identifiants fiscaux tels que le numéro de TVA intracommunautaire ou le SIREN.

Pour une validation en environnement de développement, les schémas XSD et les fichiers schématron sont publiés librement sur le dépôt GitHub du FNFE-MPE. Ils peuvent être intégrés dans une chaîne CI/CD pour valider chaque Factur-X produit avant envoi. La bibliothèque Java Saxon-HE permet d'exécuter les schématrons en ligne de commande ; en Python, lxml prend en charge la validation XSD avec les mêmes fichiers de référence.

Questions fréquentes

Quelle est la différence entre Factur-X et ZUGFeRD ?

Depuis la version 2.x, Factur-X et ZUGFeRD sont techniquement identiques : même structure PDF/A-3, même syntaxe XML CII, mêmes profils de données. La distinction est uniquement géographique. ZUGFeRD est le nom retenu en Allemagne par la FeRD, Factur-X est le nom utilisé en France par le FNFE-MPE. Un fichier produit par un logiciel ZUGFeRD est lisible par tout outil conçu pour Factur-X, sans conversion.

Quel profil Factur-X choisir pour la réforme française de 2026 ?

Pour les flux B2B domestiques, le profil BASIC couvre la majorité des situations : il inclut l'en-tête complet, les lignes de détail et la TVA ventilée par taux. Le profil EN 16931 est recommandé pour les flux transfrontaliers au sein de l'Union européenne. Le profil MINIMUM est insuffisant car il ne contient pas de lignes de détail et ne permet pas la déduction de TVA ligne par ligne.

Comment valider la conformité d'un fichier Factur-X avant envoi ?

Le FNFE-MPE propose un validateur en ligne gratuit sur son site officiel. Pour une validation automatisée en production, les schémas XSD et fichiers schématron publiés sur le dépôt GitHub du FNFE-MPE permettent d'intégrer la vérification dans un pipeline CI/CD. La validation couvre la conformité structurelle du XML et le respect des règles métier.

Un PDF classique sera-t-il encore accepté après 2026 ?

À partir de septembre 2026 pour les grandes entreprises, les factures B2B devront être émises dans un format structuré (Factur-X, UBL ou CII) et transmises via une PDP ou le PPF. Les PDF sans données XML structurées ne seront plus acceptés comme format d'émission dans les transactions entre assujettis à la TVA. Seules les factures B2C restent hors du périmètre.

Comment extraire les données d'un Factur-X reçu sans développement interne ?

Lido, plateforme d'extraction de données par IA sans modèle, lit le fichier Factur-X, extrait le XML embarqué et les données du PDF visible, puis livre le résultat en JSON structuré via API. Cette approche traite également les PDF simples et les UBL dans le même flux. L'essai est accessible pour 50 pages sans carte bancaire. Le plan Standard est facturé 29 USD par mois, le plan Scale 7 000 USD par an.

¿Listo para hacer crecer tu negocio con automatización de documentos, no más personal?

Únete a cientos de equipos que crecen más rápido automatizando el trabajo repetitivo con Lido.