BLOG TECHNIQUE
Factur-X & EN16931
Guides techniques et intégrations pour maîtriser Factur-X, valider EN16931 et préparer la réforme de facturation électronique 2026-2027.
59 articlesAcompte, auto-facture et affacturage en Factur-X : types de documents et champs
Codes type, références, sens des parties : acompte, auto-facture, affacturage en Factur-X. Cas volume type intérim. Pas de cycle de vie PA.
Convertir les données SAP (ECC6 / S/4HANA) en UBL EN16931 avant la PA
Mapper SD/FI vers UBL EN16931 : nœuds utiles, écarts ECC6 vs S/4, PDF lisible vs XML, contrôles documentaires avant remise — sans connecteur PA ni add-on A2C.
Validateurs EN16931 : étude de divergences sur XML (août 2026)
Étude datée de divergences entre validateurs : comparer artefacts, règles et warnings sur un corpus XML public, avec recettes et limites du périmètre.
Valider des XML EN16931 dans GitHub Actions
Ajouter la validation EN16931 1.3.16 (CII et UBL) dans GitHub Actions : douze lignes de YAML, codes BR-* lisibles, fixtures qui doivent échouer. Sans Java local, sans compiler de Schematron.
Un candidat généré sans fichier, hash, diff ni omissions explicites n’est pas une preuve
Fichier, SHA-256, validation propre, mapping, diff et omissions : le dossier minimal pour vérifier un candidat Factur-X généré ou réparé, sans confondre identité binaire et acceptation externe.
EN16931 validé, France CTC à corriger : ce qu'un validateur générique ne voit pas
Pourquoi une facture Factur-X peut passer une validation EN16931 puis remonter des écarts France CTC, comment lire ce verdict documentaire et quelle action choisir avant transmission officielle.
Factur-X EXTENDED vs EXTENDED-CTC-FR : la confusion qui casse les validations France CTC
Comprendre pourquoi EXTENDED et EXTENDED-CTC-FR ne sont pas interchangeables, comment lire les profils réellement exécutés et quel risque éviter dans un ERP.
FacturX API n'est pas une Plateforme Agréée : le preflight documentaire avant votre PA
Comment FacturX API détecte, répare ou complète les erreurs documentaires Factur-X avant la Plateforme Agréée, sans assurer la transmission officielle.
BR-CL-23 : corriger les codes unités UN/ECE dans une facture Factur-X
Pourquoi l'erreur BR-CL-23 apparaît dans un XML CII Factur-X, comment mapper les unités ERP vers les codes UN/ECE Rec 20 avec extension Rec 21 et comment éviter les libellés libres.
BR-CO-17 : comprendre et corriger les erreurs d'arrondi TVA dans EN16931
Pourquoi BR-CO-17 échoue dans une facture Factur-X : base taxable, taux TVA, montant TVA par catégorie, arrondi à 2 décimales et stratégie de calcul ERP.
Lire un rapport de scan Factur-X : BR-*, PDF/A-3, XML CII et corrections possibles
Comment interpréter un rapport de scan Factur-X : erreurs BR-*, problèmes PDF/A-3, XML CII, XMP, verdicts FacturX corrige, ERP complète et cas rare.
Préflight Factur-X en amont d'une Plateforme Agréée : architecture pour éditeur ERP
Où placer un contrôle Factur-X dans l'architecture d'un éditeur ERP : génération PDF, données métier, scan, repair, convert, revalidation et remise à la PA choisie par le client.
BR-05 — Le code devise de la facture (BT-5) est obligatoire
BR-05 impose la présence d'InvoiceCurrencyCode (BT-5) à l'ApplicableHeaderTradeSettlement. Code ISO 4217 alpha-3 sur 3 lettres.
BR-33 — Une raison ou un code de raison est requis pour chaque remise documentaire
BR-33 (et non BR-31) exige qu'une remise documentaire BG-20 ait une raison BT-97 ou un code BT-98. BR-31 concerne la présence du montant (BT-92).
BR-15 — Le montant à payer (BT-115) est obligatoire
BR-15 impose la présence de BT-115 (Amount due for payment). Attention : BR-12 concerne autre chose ; la formule arithmétique relève de BR-CO-16.
BR-AE-05 — Autoliquidation : taux de ligne obligatoire à 0
BR-AE-05 impose qu'une ligne en autoliquidation (catégorie AE) ait un taux de TVA à 0. BR-AE-01 concerne la présence d'un breakdown AE. BR-AE-10 concerne le motif textuel ou codé d'autoliquidation.
BR-CO-10 — La somme des montants de ligne ne correspond pas au total déclaré
BR-CO-10 impose que BT-106 (sum of invoice line net amount) = Σ BT-131. Erreur fréquente après ajout/suppression de ligne ou arrondis ligne-par-ligne.
BR-CO-14 — Le total TVA ne correspond pas à la somme des catégories TVA
BR-CO-14 impose que BT-110 (TVA totale) = Σ BT-117 (montant TVA par catégorie). Différent de BR-CO-17 qui vérifie la formule base × taux par catégorie.
BR-CO-15 — Le total avec TVA ne correspond pas au calcul HT + TVA
BR-CO-15 impose que GrandTotalAmount (BT-112) = TaxBasisTotalAmount (BT-109) + TaxTotalAmount (BT-110). Ne pas confondre BT-112 (total avec TVA) et BT-115 (montant à payer).
BR-CO-16 — Le montant à payer ne correspond pas au calcul attendu
BR-CO-16 vérifie que BT-115 (montant à payer) = BT-112 − BT-113 + BT-114. TotalPrepaidAmount et RoundingAmount sont optionnels (cardinalité 0..1).
Montant net de ligne (BT-131) incohérent : quantité × prix net/base ± remises/frais
Le montant net de ligne BT-131 doit correspondre à ((BT-146/BT-149) × BT-129) + charges − remises. Règle Peppol PEPPOL-EN16931-R120, avec base quantity BT-149 souvent oubliée.
BT-84 — Compte bancaire de paiement : IBAN ou ProprietaryID, pas schemeID
BT-84 (Payment account identifier) utilise ram:IBANID pour un IBAN ou ram:ProprietaryID pour un compte non-IBAN. Règles BR-50 et BR-61 contrôlent sa présence conditionnelle.
Erreur IBAN format incorrect : règles ISO 13616 et longueur par pays
L'IBAN dans Factur-X (BT-84 via IBANID) doit respecter le format ISO 13616, utilisé notamment dans les paiements SEPA. Longueurs fixes par pays et clé MOD-97.
BR-S-05 — TVA Standard : taux de ligne strictement positif obligatoire
BR-S-05 impose qu'une ligne en TVA Standard (catégorie S) ait un taux > 0. BR-S-01 concerne la présence du VAT breakdown S au niveau facture.
Erreur format date : Factur-X attend yyyymmdd avec format 102
Les dates métier Factur-X CII utilisent l'attribut format=102 et la valeur yyyymmdd (sans tirets). Format 102 = CCYYMMDD selon UN/EDIFACT 2379.
BR-Z-05 — TVA Zero rated : taux de ligne à 0 obligatoire
BR-Z-05 impose qu'une ligne en catégorie Z (Zero rated) ait RateApplicablePercent=0. BR-Z-01 exige la présence d'un breakdown Z. Différent de E, AE, G, K.
Erreur namespace CII : URI incorrecte ou mélange UBL/CII
En XML, c'est l'URI du namespace qui compte, pas le préfixe. Les préfixes rsm/ram/udt/qdt sont recommandés pour lisibilité, mais cii: ou factx: fonctionnent aussi si correctement liés aux bonnes URI CII.
Erreur PDF/A-3 : niveau de conformance incorrect (A, B ou U requis)
Factur-X exige PDF/A-3 (pdfaid:part=3) avec conformance A, B ou U. PDF/A-2 autorise les pièces jointes PDF/A mais pas l'embarquement arbitraire d'un XML.
« No Factur-X XML found » : votre PDF n'embarque pas de XML CII détectable
Le PDF Factur-X doit être un PDF/A-3 avec un XML CII embarqué. Les noms factur-x.xml, zugferd-invoice.xml, xrechnung.xml sont tous reconnus.
Erreur profil Factur-X : GuidelineSpecifiedDocumentContextParameter incorrect
Les 5 profils standards Factur-X (MINIMUM, BASIC WL, BASIC, EN16931, EXTENDED) ont chacun un URN officiel précis. XRECHNUNG est un profil de référence, pas un profil standard Factur-X.
Erreur schemeID (organisations) : SIREN, SIRET, GLN, DUNS avec code ISO 6523 incorrect
L'attribut schemeID des identifiants d'organisation (BT-29, BT-30, BT-46) suit la liste ISO 6523 ICD (0002 SIREN, 0009 SIRET, 0088 GLN, 0060 DUNS). L'identification fiscale BT-31 utilise schemeID VA (distinct). Le routage BT-34/BT-49 relève de la liste EAS (BR-CL-25).
Erreur séparateur décimal : Factur-X exige le point XML, pas la virgule
Les valeurs décimales XML de Factur-X utilisent le point comme séparateur ("1234.56"), jamais la virgule. Contraintes de décimales variables selon les champs.
Erreur numéro de TVA intracommunautaire : format propre à chaque pays
Le numéro de TVA intracommunautaire (BT-31, BT-48) suit un format propre à chaque pays UE. Vérification VIES pour la référence opérationnelle.
Confusion catégorie TVA : S, Z, E, AE, G, K — quel code utiliser ?
Les catégories de TVA EN16931 (S, Z, E, AE, K, G, L, M, O) ont des sémantiques juridiques différentes. Règles BR-S-*/BR-Z-*/BR-AE-* varient selon la catégorie. Exemple autoliquidation complet avec VATEX-EU-AE.
Build vs Buy : validation Factur-X interne ou API
Validation Factur-X interne ou API : trois scénarios de coûts, hypothèses de maintenance et calcul sur trois ans pour comparer à périmètre égal.
Comprendre les messages Schematron EN16931 : lire un rapport de validation Factur-X
Guide pratique pour interpréter les messages d'erreur Schematron EN16931. Comment lire un rapport de validation, comprendre les codes BR-*, localiser l'erreur dans le XML, et décider quoi corriger.
Les erreurs Factur-X qui bloquent vos factures BTP : autoliquidation, situations, retenues
Les erreurs de conformité Factur-X spécifiques au secteur BTP : autoliquidation (art. 283, 2 nonies CGI), factures de situation, retenue de garantie, multi-taux TVA. Diagnostic et corrections avec exemples XML.
Intégrer la conformité Factur-X dans votre ERP en 3 jours : scénario type
Scénario type, illustratif : comment un éditeur ERP BTP peut intégrer la conformité Factur-X EN16931 en 3 jours via API. Étapes concrètes : mapping JSON, appel API, validation, gestion des erreurs, mise en production.
Réception de factures électroniques 2026 : valider ce que vous recevez (back-offices finance, éditeurs SaaS)
Comment valider les factures Factur-X, UBL et CII reçues avant intégration comptable. Guide pour back-offices finance multi-entités et éditeurs de logiciels de gestion : extraction XML, validation EN16931, détection d'anomalies.
Automatiser la validation et la correction Factur-X dans votre pipeline CI/CD
Intégrer la validation EN16931 et la correction XML CII dans un pipeline CI/CD. Exemples GitHub Actions, GitLab CI, scripts bash, gestion des erreurs et alerting.
Corriger un XML CII Factur-X invalide : erreurs réparables et API de correction
Les six règles publiques de réparation d'un XML CII (Factur-X / EN16931) : dates, namespaces, schemeID de TVA, devises, unités ; décimales sur option. Diff détaillé et validation avant/après.
Données ERP → Factur-X CII : mapper JSON vers XML EN16931 (guide développeur)
Comment transformer les données structurées de votre ERP (JSON, CSV) en XML CII conforme EN16931 pour générer un Factur-X. Mapping des champs, cas spéciaux (autoliquidation, avoir), exemples pratiques.
Factur-X 1.08 / ZUGFeRD 2.4 : ce qui change pour les développeurs
Nouveautés de Factur-X 1.08 et ZUGFeRD 2.4 pour les développeurs : passage à CII D22B, nouveaux champs, compatibilité avec les versions précédentes, et impact sur les pipelines de validation.
Rejets Chorus Pro décryptés : erreurs Factur-X, codes retour et corrections
Comprendre et corriger les rejets Chorus Pro lors de la soumission de factures Factur-X. Codes de rejet courants, erreurs EN16931 et contrôles propres au B2G, et diagnostic systématique.
API annuaire et routage SIRET : identifier et router les factures électroniques
Comment fonctionne le routage des factures dans l'écosystème de facturation électronique français : annuaire central, identification SIRET/SIREN, API SIRENE, et mapping vers les champs Factur-X.
Extraire l'XML d'un PDF Factur-X reçu : méthodes et automatisation
Comment extraire le fichier XML CII embarqué dans un PDF Factur-X ou ZUGFeRD, le parser pour en tirer les données métier, et valider son contenu. Exemples complets en Python, Java, PHP et CLI.
PHP et mPDF : résoudre le bug XML 0 bytes en PDF/A-3 Factur-X
Diagnostic et correction du bug mPDF où le fichier XML Factur-X embarqué dans un PDF/A-3 apparaît avec un flux de 0 bytes. Quatre approches de correction testées avec du code PHP fonctionnel.
Python et Factur-X : générer, attacher et valider un XML EN16931
Guide complet pour manipuler des factures Factur-X en Python : générer un XML CII conforme, l'embarquer dans un PDF/A-3 avec la bibliothèque factur-x, extraire et valider via XSD, Schematron et l'API FacturX.
Dolibarr et Factur-X 2026 : module, validation et intégration API
Préparer les données Dolibarr, vérifier les exports Factur-X et intégrer des contrôles documentaires avant le parcours Plateforme Agréée.
Odoo et Factur-X : diagnostiquer et corriger les erreurs de validation
Guide technique pour identifier et corriger les erreurs Factur-X, XRechnung et Peppol dans Odoo, avec repères vérifiés sur la version 18. Modules EDI, configuration des identifiants, EAS codes, et workflow de validation.
Catalogue des erreurs BR-* EN16931 : causes, correctifs, exemples XML
Catalogue des erreurs BR-* Schematron EN16931 rencontrées lors de la validation Factur-X et CII. Pour les entrées au format de cette page — BR-01, BR-02, BR-03, BR-04, BR-05, BR-06, BR-07, BR-08, BR-CO-10, BR-CO-13, BR-CO-15, BR-CO-16 et BR-S-08 — : cause racine, XML invalide, XML corrigé, pièges à éviter.
InvoiceNinja et Factur-X : valider ses factures avant la réforme 2026
Vérifier que vos factures InvoiceNinja sont conformes EN16931 avant la réforme de facturation électronique 2026-2027 : erreurs courantes et corrections.
Profils Factur-X : MINIMUM → EXTENDED (matrice de choix technique)
Comment choisir entre les profils Factur-X MINIMUM, BASIC WL, BASIC, EN 16931 et EXTENDED selon votre flux, votre PA et vos obligations réglementaires.
Champs obligatoires EN16931/Factur-X : cartographie et mapping ERP → XML
Quels champs sont obligatoires pour une facture EN16931 conforme ? Cartographie des Business Terms, mapping vers les champs ERP courants, et erreurs fréquentes de configuration.
Factur-X vs UBL vs CII : quel format choisir selon votre intégration
Comparatif technique des trois syntaxes EN16931 acceptées pour la facturation électronique française : structure XML, namespaces, cas d'usage, validation et conversion.
PDF/A-3 pour Factur-X : checklist de conformité et pièges courants
Pourquoi la plupart des bibliothèques PDF génèrent des fichiers non conformes PDF/A-3, comment diagnostiquer les erreurs ISO 19005-3, et comment produire un conteneur Factur-X valide avec VeraPDF.
Valider EN16931 / Factur-X en pratique : XSD vs Schematron, erreurs BR-*, workflow de debug
Comment fonctionne réellement la validation d'une facture électronique EN16931, pourquoi un XML valide en XSD peut échouer en Schematron, et comment déboguer les erreurs BR-* étape par étape.
Facturation électronique 2026 : le guide technique complet pour développeurs
Tout ce qu'un architecte logiciel ou lead dev doit maîtriser depuis le 1er septembre 2026 : formats EN16931, modèle PA, pipeline de validation, profils Factur-X, et les cinq zones de friction identifiées dans les communautés open source.