Invoir
  1. Accueil
  2. Guides
  3. Valider un Factur-X

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

NiveauCe qui est vérifiéOutil
1. PDF/A-3Le PDF est conforme à l’ISO 19005-3veraPDF
2. MétadonnéesLe XMP déclare les données Factur-X ; le fichier joint est présent, avec le bon nom et la bonne relationMustang
3. Schéma XMLLe XML respecte le XSD de son profilMustang
4. Règles métierSchematron du profil, règles EN 16931 comprisesMustang
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:part 3, 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 16931 alors 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 AFRelationship et 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 noms rsm, ram, udt et qdt de 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

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

Autres guides