Factur-X : la facture mixte, expliquée pour les développeurs
Une facture Factur-X est un PDF lisible qui contient aussi toutes les données de la facture en XML. C’est l’un des trois formats que toute plateforme agréée doit accepter dans la réforme française, et c’est le même format que l’Allemagne appelle ZUGFeRD.
Mis à jour le 19 octobre 2026
Ce que contient un fichier Factur-X
- Un document PDF/A-3, la variante d’archivage du PDF qui autorise les fichiers joints.
- Un fichier joint
factur-x.xmlen syntaxe UN/CEFACT CII (Cross Industry Invoice, version D22B dans les versions actuelles). - Des métadonnées XMP qui déclarent le fichier joint, la version et le profil.
Factur-X est publié par le FNFE-MPE (Forum National de la Facture Électronique et des Marchés Publics Électroniques) avec le FeRD allemand. Le FNFE-MPE présente Factur-X et ZUGFeRD comme techniquement identiques : même XML, mêmes profils, même nom de fichier joint. Un outil qui traite l’un traite l’autre.
Version actuelle
Factur-X 1.09.2, publiée avec ZUGFeRD 2.5.2 le 4 août 2026 et alignée sur les dernières listes de codes de l’EN 16931 (FNFE-MPE, FeRD). La version précédente, 1.08 (décembre 2025), a modifié le profil EXTENDED pour l’obligation B2B française. Les versions mineures restent rétrocompatibles.
Profils
| Profil | Contenu |
|---|---|
| MINIMUM | Les données d’en-tête demandées par Chorus Pro, le portail des factures au secteur public. Pas de lignes de facture. |
| BASIC WL | Les données d’en-tête et de pied dont l’acheteur a le plus souvent besoin, toujours sans lignes (« without lines »). |
| BASIC | BASIC WL plus les données essentielles des lignes. |
| EN 16931 | Toutes les données prévues par la norme européenne EN 16931. |
| EXTENDED | EN 16931 plus des données supplémentaires pour les factures plus complexes. |
MINIMUM et BASIC WL ne contiennent pas de lignes : ils ne peuvent pas porter une facture complète. En Allemagne, ils ne valent même pas facture électronique (FAQ du ministère fédéral des Finances, question 7). Pour une nouvelle intégration, choisissez EN 16931 ; EXTENDED seulement pour les champs que l’EN 16931 n’a pas.
Factur-X dans la réforme française
Depuis le 1er septembre 2026, toute entreprise assujettie à la TVA en France doit pouvoir recevoir des factures électroniques, et les grandes entreprises et ETI doivent en émettre ; les PME et micro-entreprises suivent le 1er septembre 2027 (impots.gouv.fr). Le détail est sur la page facturation électronique obligatoire. Pour Factur-X, trois points comptent :
- Il fait partie du socle. La réforme définit un socle minimal de formats que toute plateforme agréée doit accepter : UBL, CII et le format mixte, c’est-à-dire Factur-X (FNFE-MPE). Formats et profils sont fixés par la norme AFNOR XP Z12-012, à laquelle renvoient les spécifications externes de la DGFiP (version 3.2 du 30 avril 2026).
- Il passe par une plateforme. Les factures entre entreprises françaises transitent par une plateforme agréée, qui transmet aussi les données requises à l’administration. Envoyer un PDF Factur-X directement par e-mail à l’acheteur n’est plus une facture B2B conforme dès que l’obligation vous concerne.
- C’est le XML qui est contrôlé. Les plateformes valident les données structurées. Un fichier qui échoue aux règles de l’EN 16931 est rejeté, quelle que soit la qualité du PDF.
Le rôle de votre logiciel est donc de produire un Factur-X (ou un UBL, ou un CII) valide et de le remettre à la plateforme choisie par votre client. Invoir fait la première partie : génération et validation, pas la transmission.
Valider un Factur-X
Quatre niveaux de contrôle : la conformité PDF/A-3, les métadonnées XMP, le schéma XML du profil et les règles métier Schematron. La page valider un Factur-X explique les erreurs les plus fréquentes et comment les corriger. Le validateur gratuit applique les quatre niveaux dans le navigateur.
API Factur-X
Validez un PDF Factur-X en un appel et recevez un rapport JSON avec identifiants de règles, messages et emplacements dans le XML :
curl https://validate.invoir.dev/api/v1/validate \
-H "Authorization: Bearer inv_VOTRE_CLE" \
-F [email protected]
POST /api/v1/extract renvoie le factur-x.xml intégré. Voir la documentation de l’API (en anglais). La génération de Factur-X à partir de JSON (votre modèle, votre logo, validée avant d’être renvoyée) est en développement. Pour le faire vous-même, des bibliothèques open source existent : factur-x (Python), Mustang (Java), horstoeko/zugferd (PHP).
Vérifiez un fichier dans le navigateur, ou par API. Le validateur gratuit applique les règles officielles (KoSIT, Schematron CEN et Peppol, Mustang, veraPDF) et affiche chaque erreur avec l’identifiant de la règle. Rien n’est conservé. Le même contrôle se fait en un appel HTTP avec une clé API gratuite : 25 documents par mois, sans carte bancaire.
Sources
- FNFE-MPE : Factur-X, version 1.09.2, profils, formats du socle.
- FeRD : ZUGFeRD 2.5.2 / Factur-X 1.09.2.
- DGFiP : Je découvre la facturation électronique ; spécifications externes.
- Ministère fédéral allemand des Finances : FAQ E-Rechnung, question 7.