Votre facture s'ouvre parfaitement à l'écran — et pourtant le logiciel comptable de votre client la refuse. C'est la situation la plus déroutante de la facturation électronique : une Factur-X peut être visuellement irréprochable et techniquement invalide en même temps. La raison tient à la nature hybride du format, et le défaut est presque toujours invisible à l'œil nu.

Bonne nouvelle : les causes sont peu nombreuses, identifiables, et vérifiables gratuitement en quelques secondes.

🔎 Vous voulez juste savoir ce qui cloche ? Déposez votre PDF dans le Testeur de factures Factur-X — il vous dit immédiatement si le XML est présent, conforme et cohérent. Aucune donnée conservée.

D'abord, comprendre ce que « valide » veut dire

Une Factur-X, ce sont deux couches dans un seul fichier :

facture.pdf  (Factur-X)
├── 📄 Couche visuelle  → le PDF que vous lisez
└── 🤖 Couche données    → le XML que lit la machine

Quand vous ouvrez le fichier, vous ne voyez que la couche visuelle. La validité, elle, se joue entièrement dans la couche données — le XML que vous ne voyez jamais. D'où le piège : « ça s'affiche, donc c'est bon » est faux. Pour comprendre l'ensemble du format, voir notre guide Factur-X : comprendre le format et valider ses factures.

Les 10 causes les plus fréquentes d'une Factur-X invalide

1. Il n'y a tout simplement pas de XML

Le cas n°1. Le fichier est un PDF classique, pas une Factur-X. Aucun XML n'est embarqué : pour une machine, ce n'est pas une facture électronique. Un export « PDF » depuis un vieil outil de facturation produit exactement ça.

2. Le PDF n'est pas un PDF/A-3

Factur-X exige le profil PDF/A-3, le seul qui autorise officiellement l'embarquement d'un fichier dans le PDF. Un PDF standard (ou un PDF/A-1) peut « contenir » une pièce jointe, mais sans la conformité PDF/A-3 attendue, le XML risque de ne pas être reconnu comme la donnée de facturation.

3. Le fichier XML porte le mauvais nom

La spécification attend un fichier nommé factur-x.xml (les anciens ZUGFeRD utilisaient zugferd-invoice.xml). Un nom non conforme, ou une pièce jointe déclarée sans la bonne relation PDF/A-3 (AFRelationship), et le XML devient indétectable automatiquement.

4. Le profil déclaré ne correspond pas au contenu

Le XML annonce un profil (MINIMUM, BASIC, EN 16931, EXTENDED). Si l'en-tête déclare EN 16931 mais que le contenu n'en respecte pas les règles — ou l'inverse — le validateur rejette l'incohérence.

5. Le XML est mal structuré (schéma invalide)

Balise manquante, ordre incorrect, type de données erroné : le XML CII (Cross Industry Invoice) suit un schéma strict. La moindre entorse au schéma rend le fichier non parsable par le destinataire.

6. Les montants ne sont pas cohérents

La règle d'or : HT + TVA = TTC, à l'arrondi près. Un écart d'un centime (souvent un problème d'arrondi ligne à ligne vs total) suffit à déclencher un rejet. Les contrôles arithmétiques d'EN 16931 sont impitoyables.

7. Une mention obligatoire manque

SIREN/SIRET, numéro de facture, dates, taux et montant de TVA, identifiants des parties… Si une donnée requise par le profil est absente du XML — même présente dans le visuel PDF — la facture est incomplète au sens de la norme.

8. Un code n'appartient pas à la bonne liste

EN 16931 impose des listes de codes normalisées : devise (ISO 4217), unités de mesure, catégories de TVA, type de document… Un code hors liste (ou un code maison) casse la conformité.

9. Problème d'encodage ou de caractères

XML mal encodé (autre qu'UTF-8), caractères spéciaux non échappés, BOM parasite : des détails qui font échouer le parsing avant même les contrôles métier.

10. Le profil est valide… mais insuffisant

Cas plus subtil : le fichier est techniquement conforme, mais en profil MINIMUM ou BASIC WLsans les lignes de détail. Si votre client ou l'administration attend ces lignes, la facture est fonctionnellement rejetée malgré sa validité formelle.

Comment diagnostiquer (sans deviner)

Inutile d'ouvrir le XML à la main ou de comparer ligne à ligne. Un validateur fait le travail en un instant :

🔎 Test rapide — le Testeur Factur-X de SynapxLab : présence du XML, conformité PDF/A-3, profil déclaré, cohérence des montants et mentions. Gratuit, aucune donnée conservée.

🏛️ Validation faisant autorité — le validateur du FNFE-MPE, l'organisme qui maintient le standard Factur-X en France. À utiliser avant une mise en production.

Un bon validateur vous dira lequel des dix points ci-dessus est en cause — c'est la différence entre « ça ne marche pas » et « la ligne 3 a une TVA hors liste ».

🧩 Besoin du détail technique, cause par cause ? Voir Les 20 erreurs Factur-X les plus fréquentes — la checklist complète, du PDF/A-3 aux codes de TVA.

Comment éviter le problème à la source

Régénérer une facture à chaque rejet est un pansement. La vraie solution est d'émettre du Factur-X conforme dès le départ :

  1. Une bibliothèque (PHP, Python…) qui assemble PDF/A-3 + XML en respectant le profil — pour les intégrations sur-mesure.
  2. Un ERP/CRM qui génère nativement une Factur-X conforme, gère les profils, les listes de codes et les contrôles de cohérence — et la transmet via une plateforme agréée (PA). La voie la plus sûre, détaillée dans notre guide complet de la réforme.

💡 La plupart des rejets viennent d'outils qui produisent un PDF puis « collent » un XML approximatif. Un outil qui construit les deux couches ensemble, à partir des mêmes données, élimine d'emblée les causes 1 à 8.


❓ FAQ

Pourquoi ma Factur-X est-elle refusée alors que le PDF s'ouvre normalement ? Parce que la validité se joue dans le XML embarqué, pas dans le PDF lisible. Un visuel parfait peut cacher un XML absent, mal structuré ou incohérent.

Comment savoir précisément ce qui cloche ? Passez le fichier dans un validateur : il pointe la cause exacte (XML manquant, PDF/A-3 non conforme, profil incohérent, montants ou mentions en défaut). Test rapide : le testeur Factur-X ; référence : le FNFE-MPE.

Le nom du fichier XML a-t-il une importance ? Oui : la spécification attend factur-x.xml. Un nom non conforme ou une mauvaise relation PDF/A-3 empêche la détection automatique du XML.

Un profil MINIMUM peut-il être refusé ? Il peut être insuffisant : sans lignes de détail, il ne répond pas toujours au besoin du destinataire. Techniquement valide, fonctionnellement incomplet.

Pour aller plus loin