Valider un Factur-X et corriger les erreurs fréquentes
Une facture mixte peut échouer sur le PDF, sur les métadonnées qui relient le PDF au XML, ou sur le XML lui-même. Le validateur gratuit contrôle tout en une fois et indique quel niveau a échoué. Voici ce que vérifie chaque niveau et comment corriger les erreurs.
Mis à jour le 19 octobre 2026
Les quatre niveaux de contrôle
| Niveau | Ce qui est vérifié | Outil |
|---|---|---|
| 1. PDF/A-3 | Le PDF est conforme à l’ISO 19005-3 | veraPDF |
| 2. Métadonnées | Le XMP déclare les données Factur-X ; le fichier joint est présent, avec le bon nom et la bonne relation | Mustang |
| 3. Schéma XML | Le XML respecte le XSD de son profil | Mustang |
| 4. Règles métier | Schematron du profil, règles EN 16931 comprises | Mustang |
curl https://validate.invoir.dev/api/v1/validate \
-H "Authorization: Bearer inv_VOTRE_CLE" \
-F [email protected]
Le rapport JSON contient une entrée par niveau, dans cet ordre, chacune avec ses constats (documentation de l’API, en anglais). Les fichiers sont traités en mémoire et jamais conservés.
Erreurs PDF/A-3
- Le fichier n’est pas un PDF/A-3
- Un PDF ordinaire, ou un PDF/A-1 ou PDF/A-2 (qui n’autorisent pas les pièces jointes quelconques). Le XMP doit déclarer
pdfaid:part3, et le fichier doit réellement être conforme. La plupart des bibliothèques PDF demandent d’activer explicitement un mode PDF/A-3. - Polices non incorporées
- L’erreur PDF/A la plus fréquente. Toutes les polices doivent être incorporées, y compris Helvetica ou Arial utilisées par défaut. Utilisez dans votre modèle une police TrueType ou OpenType incorporée.
- Pas d’« output intent »
- Le PDF/A exige un output intent avec un profil de couleur ICC (en général sRGB) dès que des couleurs de périphérique sont utilisées.
- Fonctions interdites
- Chiffrement, JavaScript, contenus externes et certains réglages de transparence sont interdits en PDF/A.
Erreurs de métadonnées et de pièce jointe
- Pas de schéma d’extension Factur-X dans le XMP
- Le PDF/A exige que les propriétés XMP personnalisées soient décrites. Les propriétés Factur-X (type de document
INVOICE, nom du fichier, version, profil) ont besoin de leur bloc de schéma d’extension. - Le profil ne correspond pas au XML
- Le XMP indique
EN 16931alors que l’identifiant du XML dit BASIC, ou l’inverse. Écrivez les deux à partir du même paramètre. - Mauvais nom de pièce jointe
- Les versions actuelles attendent
factur-x.xml. Le nom indiqué dans le XMP doit être celui de la pièce jointe. - Pièce jointe non associée
- Le PDF/A-3 veut que le XML intégré soit déclaré comme fichier associé du document, avec un
AFRelationshipet un type MIME (text/xml).
Erreurs XML
- Erreurs de schéma du profil
- Chaque profil a son propre XSD. Un élément admis en EN 16931 peut être interdit en BASIC ou BASIC WL. Déclarez le profil qui correspond aux données que vous écrivez.
- Détails du CII
- Dates au format
<udt:DateTimeString format="102">20261019</udt:DateTimeString>; éléments dans l’ordre du schéma ; espaces de nomsrsm,ram,udtetqdtde la version CII en vigueur ; point comme séparateur décimal. - Règles métier de l’EN 16931
- Surtout les totaux et la TVA :
BR-CO-15(total TTC = total HT + TVA),BR-CO-13,BR-CO-17(TVA par taux arrondie à deux décimales),BR-S-08(ventilation de TVA par taux) ; et l’identification :BR-S-02(numéro de TVA du vendeur),BR-CO-26. Calculez les totaux à partir des montants arrondis que vous écrivez, et la TVA par taux plutôt que ligne par ligne. Le détail est sur la page EN 16931 (en anglais).
Ce qu’aucun validateur ne vérifie
- Que le PDF et le XML disent la même chose. Générez les deux à partir des mêmes données ; ce sont les données structurées que les plateformes traitent.
- Que le profil suffit. Un fichier MINIMUM ou BASIC WL peut être parfaitement valide sans porter de lignes de facture. Pour la réforme, utilisez le profil EN 16931.
- Que la plateforme l’accepte. Les plateformes agréées peuvent appliquer des contrôles propres aux règles françaises.
Pour voir le XML contenu dans un PDF, utilisez la visionneuse de XML intégré ou POST /api/v1/extract. Sur le format : Factur-X expliqué.
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 ; FeRD : ZUGFeRD 2.5.2 / Factur-X 1.09.2.
- veraPDF, le validateur PDF/A libre ; Mustang.
- CEN/TC 434 : artefacts de validation de l’EN 16931.