FacturBridge

Valider un Factur-X avec veraPDF : guide pas à pas

Dernière mise à jour : 2026-07-14

Valider un Factur-X, c'est enchaîner quatre contrôles : présence et parsing du XML embarqué, validation XSD du schéma, règles métier Schematron (EN 16931), puis conformité PDF/A-3 du conteneur avec veraPDF. FacturBridge exécute exactement cette chaîne dans apps/engine/app/services/validate.py — cette page documente chaque étape avec les commandes réelles.

1. Extraire et parser le XML embarqué

Le fichier factur-x.xml est attaché au PDF (pièce jointe PDF/A-3). Extraction Python via facturx get_facturx_xml_from_pdf, puis détection du profil via l'URN du GuidelineSpecifiedDocumentContextParameter.

from facturx import get_facturx_xml_from_pdf
with open('facture.pdf', 'rb') as f:
    name, xml = get_facturx_xml_from_pdf(f.read(), check_xsd=False)

2. Validation XSD

Chaque profil (MINIMUM à EXTENDED) a ses schémas XSD officiels (FNFE-MPE). Une facture EN16931 validée avec le XSD BASIC peut passer à tort — utilisez le XSD du profil déclaré.

3. Règles Schematron EN 16931

Les règles BR-* vérifient la cohérence métier : totaux (BR-CO-*), TVA par catégorie (BR-S-*, BR-E-*), présence des champs obligatoires. Notre moteur retourne chaque échec avec code, sévérité et message français (catalogue).

4. Conformité PDF/A-3 avec veraPDF

veraPDF est le validateur de référence. Les erreurs les plus fréquentes : polices non intégrées (§6.2.11.4.1) et espaces colorimétriques sans OutputIntent (§6.2.4.3).

verapdf --format json facture-facturx.pdf | jq '.report.jobs[0].validationResult'

Automatiser via l'API FacturBridge

L'endpoint interne /internal/validate exécute la chaîne complète et retourne un ValidationReport structuré — voir référence API.

API validation pour éditeursVous êtes une PA ? Parlons partenariat