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 articlesBR-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 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.
Facture rejetée par une Plateforme Agréée : workflow développeur pour diagnostiquer, réparer et revalider
Un workflow en 5 étapes pour traiter une facture Factur-X rejetée : récupérer le fichier exact, scanner, isoler PDF/A-3 vs XML CII, corriger, revalider et automatiser.
Convertir un PDF ERP en Factur-X sans réécrire l'export : le rôle de invoice_data JSON
Comment FacturX API combine le PDF existant d'un ERP avec des données métier invoice_data JSON pour produire un Factur-X conforme EN16931 sans réécrire tout le moteur d'export.
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.
Scanner une facture Factur-X avant envoi via une Plateforme Agréée : les 7 contrôles utiles
Les contrôles à lancer avant de remettre une facture Factur-X à une Plateforme Agréée : PDF/A-3, XML CII, profil EN16931, règles BR-*, XMP, AFRelationship et corrections possibles.
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-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-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 la raison d'exonération VATEX-EU-AE.
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-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. PrepaidAmount et PayableRoundingAmount sont optionnels (cardinalité 0..1).
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.
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.
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.
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.
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.
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 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.
« 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 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.
Erreur schemeID (organisations) : SIREN, SIRET, GLN, DUNS avec code ISO 6523 incorrect
L'attribut schemeID des identifiants d'organisation (BT-29, BT-30, BT-31) doit suivre la liste ISO 6523 ICD : 0002 SIREN, 0009 SIRET, 0088 GLN, 0060 DUNS, VA pour le n° TVA.
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 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 : construire sa conformité Factur-X ou utiliser une API
Analyse chiffrée Build vs Buy pour la conformité Factur-X EN16931. Trois périmètres de coûts (validation seule à full compliance engine) vs API SaaS. Critères de décision pour CTO et architectes.
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 : retour d'expérience
Comment un éditeur ERP BTP a intégré 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.
Checklist développeur : préparer la réception obligatoire du 1er septembre 2026
Liste de vérification technique pour les développeurs et intégrateurs qui préparent la réception obligatoire de factures électroniques au 1er septembre 2026. Format, validation, pipeline, tests.
Convertir une facture PDF en Factur-X 1.08 conforme (PDF/A-3 + XML CII D22B)
Comment transformer un PDF de facture classique en document Factur-X PDF/A-3 avec XML CII embarqué. Deux approches : extraction automatique du PDF ou données structurées depuis l'ERP.
Corriger automatiquement un XML CII Factur-X invalide : erreurs réparables et API de correction
Comment corriger automatiquement les erreurs de format dans un XML CII (Factur-X / EN16931) : dates, décimaux, namespaces, schemeID, devises. API de réparation avec 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.
PDF/A-3 vs PDF/A-1 : pourquoi Factur-X 1.08 exige PDF/A-3 et pas PDF/A-1
Différences techniques entre PDF/A-1, PDF/A-2 et PDF/A-3 pour la facturation électronique. Pourquoi Factur-X nécessite PDF/A-3 (ISO 19005-3) pour embarquer le XML CII, et ce que ça change pour les développeurs.
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 spécifiques 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.
Invoice Ninja et la réforme française : architecture e-invoicing et validation
Architecture technique d'Invoice Ninja pour la facturation électronique Factur-X : pipeline Laravel → horstoeko/zugferd → CII D22B, configuration SIRET/TVA, validation avant remise à une PA et préparation à la réforme 2026.
Dolibarr et Factur-X 2026 : module, validation et intégration API
Comment configurer le module Factur-X de Dolibarr, corriger les erreurs de validation EN16931 les plus courantes, et intégrer un pipeline de conformité automatisé avant l'envoi aux PA.
Déployer un validateur Factur-X : KoSIT, Mustangproject ou API SaaS ?
Comparatif technique des options de validation Factur-X : KoSIT Validator, Mustangproject/ZUV, pipeline custom verapdf+Schematron, et API SaaS. Checklist d'installation, exemples de code, matrice de décision et patterns CI/CD.
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 v16+. Modules EDI, configuration des identifiants, EAS codes, et workflow de validation.
Catalogue des erreurs BR-* EN16931 : causes, correctifs, exemples XML
Référence complète des erreurs BR-* Schematron EN16931 rencontrées lors de la validation Factur-X et CII. Pour chaque règle : cause racine, XML invalide, XML corrigé, pièges à éviter.
InvoiceNinja et Factur-X : valider ses factures avant la réforme 2026
Comment vérifier que vos factures générées par 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 avant 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.