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.

51 articles
Technique

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.

#en16931 #schematron
Lire l'article →
Technique

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.

#en16931 #schematron
Lire l'article →
Technique

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).

#en16931 #schematron
Lire l'article →
Technique

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.

#en16931 #schematron
Lire l'article →
Technique

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.

#en16931 #schematron
Lire l'article →
Technique

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.

#en16931 #schematron
Lire l'article →
Technique

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).

#en16931 #schematron
Lire l'article →
Technique

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).

#en16931 #schematron
Lire l'article →
Technique

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.

#en16931 #schematron
Lire l'article →
Technique

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.

#en16931 #schematron
Lire l'article →
Technique

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.

#en16931 #schematron
Lire l'article →
Technique

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.

#en16931 #schematron
Lire l'article →
Technique

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.

#en16931 #schematron
Lire l'article →
Technique

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.

#en16931 #schematron
Lire l'article →
Technique

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.

#en16931 #schematron
Lire l'article →
Technique

« 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.

#en16931 #schematron
Lire l'article →
Technique

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.

#en16931 #schematron
Lire l'article →
Technique

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.

#en16931 #schematron
Lire l'article →
Technique

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.

#en16931 #schematron
Lire l'article →
Technique

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.

#en16931 #schematron
Lire l'article →
Technique

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.

#en16931 #schematron
Lire l'article →
Technique

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.

#en16931 #schematron
Lire l'article →
Technique

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.

#build-vs-buy #factur-x
Lire l'article →
Technique

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.

#schematron #EN16931
Lire l'article →
Technique

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.

#BTP #factur-x
Lire l'article →
Technique

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.

#ERP #intégration
Lire l'article →
Technique

Réception de factures électroniques 2026 : valider ce que vous recevez (cabinets comptables, éditeurs SaaS)

Comment valider les factures Factur-X, UBL et CII reçues avant intégration comptable. Guide pour cabinets comptables et éditeurs de logiciels de gestion : extraction XML, validation EN16931, détection d'anomalies.

#réception #facturation électronique
Lire l'article →
Technique

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.

#CI/CD #factur-x
Lire l'article →
Technique

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.

#factur-x #convert
Lire l'article →
Technique

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.

#factur-x #repair
Lire l'article →
Technique

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.

#ERP #JSON
Lire l'article →
Technique

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.

#factur-x #ZUGFeRD
Lire l'article →
Technique

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.

#PDF/A-3 #PDF/A-1
Lire l'article →
Technique

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.

#chorus-pro #factur-x
Lire l'article →
Technique

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.

#siret #siren
Lire l'article →
Technique

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.

#factur-x #xml
Lire l'article →
Technique

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.

#php #mpdf
Lire l'article →
Technique

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.

#python #factur-x
Lire l'article →
Technique

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 pré-PDP et préparation à la réforme 2026.

#invoice-ninja #factur-x
Lire l'article →
Technique

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 PDP.

#dolibarr #factur-x
Lire l'article →
Technique

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.

#validation #kosit
Lire l'article →
Technique

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.

#odoo #factur-x
Lire l'article →
Technique

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.

#en16931 #schematron
Lire l'article →
Intégration

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.

#invoiceninja #factur-x
Lire l'article →
Technique

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 PDP et vos obligations réglementaires.

#factur-x #profils
Lire l'article →
Technique

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.

#en16931 #factur-x
Lire l'article →
Technique

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.

#factur-x #ubl
Lire l'article →
Technique

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.

#pdf/a-3 #factur-x
Lire l'article →
Technique

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.

#en16931 #schematron
Lire l'article →
Guide

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 PDP, pipeline de validation, profils Factur-X, et les cinq zones de friction identifiées dans les communautés open source.

#facturation électronique #en16931
Lire l'article →