Factur-X et ZUGFeRD : facture PDF hybride EN 16931
Factur-X (France/Allemagne) et ZUGFeRD intègrent une facture XML structurée dans un fichier PDF/A-3. Voici comment fonctionne le standard et comment lire ces factures hybrides.
Qu'est-ce qu'une facture hybride ?
Une facture Factur-X ou ZUGFeRD est un fichier PDF qui contient deux choses à la fois : un PDF lisible par l'humain (la facture visible) et un fichier XML lisible par machine intégré en pièce jointe (les données structurées). Les deux coexistent dans un seul fichier PDF/A-3.
Ce format dual est le meilleur des deux mondes : les humains lisent le PDF, le logiciel de comptabilité lit le XML automatiquement. C'est le format de facturation électronique obligatoire en France (depuis 2026) et largement adopté en Allemagne et en Belgique.
Le format a été normalisé par le FNFE-MPE (France) et le FeRD (Allemagne) et constitue désormais le format officiel de facturation électronique pour les transactions B2G et B2B dans les deux pays.
La norme EN 16931
Le XML intégré suit la norme européenne EN 16931 (le modèle sémantique de données pour les factures électroniques). Factur-X et ZUGFeRD sont tous deux des implémentations de cette norme — ils utilisent la même structure de données, avec de légères différences de nommage.
Il existe plusieurs profils de conformité, du plus simple (MINIMUM, seulement 6 champs) au plus complet (EXTENDED, tous les champs optionnels). La plupart des entreprises utilisent le profil EN 16931 ou COMFORT.
L'alignement entre Factur-X 1.0 et ZUGFeRD 2.0+ signifie qu'une seule implémentation peut desservir les deux marchés — réduisant les coûts de développement et permettant une facturation transfrontalière transparente.
Champs clés du XML intégré
- ExchangedDocument / ID — Numéro de facture — identifiant unique du document.
- SellerTradeParty / Name — Nom et numéro de TVA du vendeur (obligatoire pour la conformité fiscale).
- SpecifiedTradeSettlement / GrandTotalAmount — Montant total TTC — doit correspondre au PDF.
- ApplicableTradeTax — Ventilation de la TVA : taux, base imposable et montant de taxe pour chaque taux de TVA.
- BuyerTradeParty / Name — Nom légal et numéro de TVA de l'acheteur — requis pour la déduction de TVA côté acheteur.
- InvoiceReferencedDocument — Référence à la facture d'origine (pour les avoirs) ou numéro de bon de commande.
- SpecifiedTradePaymentTerms — Date d'échéance de paiement, conditions d'escompte et pénalités de retard.
- SpecifiedTradeAllowanceCharge — Remises et majorations appliquées à la facture — détaillées par type et montant.
Factur-X vs ZUGFeRD : quelle différence ?
Factur-X est le standard franco-allemand, commercialisé sous le nom Factur-X en France et ZUGFeRD en Allemagne. Depuis ZUGFeRD 2.0 (2019), les deux sont techniquement identiques et entièrement interopérables.
La seule véritable différence est l'appellation et l'adoption locale : les entités publiques et plateformes françaises (comme Chorus Pro) utilisent le nom Factur-X, tandis que les systèmes de facturation allemands se réfèrent à ZUGFeRD. Le schéma XML intégré (CII — Cross Industry Invoice) est le même.
Pour les développeurs, cela signifie qu'un seul parseur XML suffit pour traiter les deux. ValidateFin prend en charge les deux appellations de manière transparente.
Comparaison des profils Factur-X / ZUGFeRD
Le standard définit plusieurs profils de conformité, du plus minimal au plus détaillé :
| Profil | Champs | Lignes de facture | Cas d'usage |
|---|---|---|---|
| MINIMUM | ~6 champs | Non | Archivage — le PDF fait foi |
| BASIC WL | ~20 champs | Non | Factures simples sans détail de lignes |
| BASIC | ~30 champs | Oui | Factures standard avec lignes de détail |
| EN 16931 (COMFORT) | ~60 champs | Oui | Conformité UE complète — recommandé |
| EXTENDED | ~100+ champs | Oui | Extensions spécifiques à un secteur |
| XRECHNUNG | ~60 champs | Oui | Secteur public allemand (B2G) |
La plupart des entreprises devraient viser le profil EN 16931 (COMFORT), car il offre une conformité complète avec la norme européenne tout en restant gérable.
Comment créer une facture Factur-X
La création d'une facture Factur-X implique trois étapes : générer le XML CII, l'intégrer dans un conteneur PDF/A-3 et valider le résultat. Voici le workflow :
- Générer le XML CII — Créez le fichier XML en suivant le schéma EN 16931 avec tous les champs requis pour votre profil cible.
- Créer le conteneur PDF/A-3 — Le PDF doit être conforme à PDF/A-3 (ISO 19005-3), qui autorise l'intégration de fichiers arbitraires en pièces jointes.
- Intégrer le XML en pièce jointe — Attachez le fichier XML (nommé factur-x.xml ou zugferd-invoice.xml) avec l'AFRelationship défini sur 'Alternative'.
- Ajouter les métadonnées XMP — Incluez les métadonnées XMP Factur-X dans le catalogue du PDF pour déclarer le profil et le niveau de conformité.
- Valider le résultat — Utilisez un validateur Factur-X pour vérifier la conformité PDF/A-3, la validité du schéma XML et la conformité au profil.
L'outil Factur-X de ValidateFin peut extraire et vérifier le XML de tout PDF Factur-X ou ZUGFeRD existant.
Erreurs courantes de validation Factur-X
Voici les problèmes les plus fréquemment rencontrés lors de la validation de factures Factur-X/ZUGFeRD :
Pièce jointe XML manquante
Le PDF ne contient pas de fichier XML intégré, ou le fichier est nommé incorrectement (doit être factur-x.xml ou zugferd-invoice.xml).
Non-conformité PDF/A-3
Le PDF n'est pas un fichier PDF/A-3 valide — fréquent lors de la génération de PDF avec des bibliothèques standard qui ne prennent pas en charge le format d'archivage.
Incohérence de profil
Le XML déclare un profil (ex. EN 16931) mais il manque des champs obligatoires pour ce niveau de profil.
Incohérence du total TVA
La somme des montants TVA individuels ne correspond pas au total TVA déclaré. Des écarts d'arrondi supérieurs à 1 centime déclenchent cette erreur.
Métadonnées XMP manquantes
Le catalogue du PDF ne contient pas les métadonnées XMP Factur-X requises déclarant le profil et la version.
Extrayez et vérifiez vos factures Factur-X
Notre viewer Factur-X / ZUGFeRD extrait le XML intégré de votre facture PDF et affiche toutes les données de facturation — vendeur, acheteur, montants, lignes de TVA et lignes de facture. 100% local, aucune donnée transmise.
Ouvrir le viewer Factur-XQuestions fréquemment posées
Quelle est la différence entre Factur-X et ZUGFeRD ?
Factur-X et ZUGFeRD sont essentiellement le même format — une facture hybride qui intègre du XML structuré dans un fichier PDF/A-3. Factur-X est l'appellation française/européenne tandis que ZUGFeRD est l'appellation allemande. Depuis ZUGFeRD 2.0, les deux sont parfaitement alignés et conformes à la norme EN 16931.
Quels sont les profils Factur-X/ZUGFeRD ?
Il existe 6 profils : MINIMUM (identification de base), BASIC WL (sans lignes de facture), BASIC (avec lignes de facture), EN 16931/COMFORT (conformité complète), EXTENDED (champs supplémentaires) et XRECHNUNG (secteur public allemand). Les profils supérieurs permettent un traitement plus automatisé.
Comment extraire les données XML d'un PDF Factur-X ?
Le viewer Factur-X de ValidateFin extrait automatiquement le XML intégré de tout fichier PDF Factur-X ou ZUGFeRD. Déposez le PDF — l'outil lit la pièce jointe intégrée, analyse le XML et affiche toutes les données de facturation structurées. Tout s'exécute localement dans votre navigateur.
Factur-X est-il obligatoire en France ?
Oui. À partir de 2026, toutes les factures B2B en France doivent être émises au format électronique, Factur-X étant l'un des trois formats acceptés avec UBL et CII. La facturation B2G via Chorus Pro exige déjà des formats structurés.
Peut-on utiliser Factur-X pour la facturation internationale ?
Oui. Factur-X/ZUGFeRD est basé sur la norme européenne EN 16931 et est accepté dans toute l'UE. Le profil EN 16931 COMFORT assure la compatibilité avec la plupart des exigences européennes de facturation électronique.
Quels outils permettent de générer des factures Factur-X ?
La plupart des ERP et logiciels de comptabilité modernes (SAP, Sage, DATEV, Cegid) prennent en charge l'export Factur-X/ZUGFeRD. Des bibliothèques open source comme Mustang (Java) et Factur-X (Python) sont également disponibles pour les implémentations personnalisées.
Comment savoir quel profil utiliser ?
Pour la plupart des transactions B2B, le profil EN 16931 (COMFORT) est recommandé. Pour le B2G français via Chorus Pro, MINIMUM ou BASIC peut suffire. Pour le secteur public allemand (B2G), XRECHNUNG est requis. Vérifiez les exigences de votre partenaire commercial.
Quelle est la différence entre Factur-X et UBL ?
Factur-X intègre du XML CII (Cross Industry Invoice) dans un PDF. UBL est un format XML autonome sans enveloppe PDF. Factur-X est préféré lorsque la lisibilité humaine compte (le PDF), tandis qu'UBL est utilisé pour l'échange pur machine-à-machine (ex. Peppol).
Peut-on convertir une facture UBL en Factur-X ?
Oui, mais cela nécessite de mapper les champs UBL vers les champs CII et de générer un conteneur PDF/A-3. Le contenu sémantique est similaire puisque les deux implémentent EN 16931, mais les schémas XML diffèrent. Des outils spécialisés gèrent cette conversion.
Comment Chorus Pro gère-t-il les factures Factur-X ?
Chorus Pro, la plateforme de facturation de l'État français, accepte Factur-X parmi ses formats pris en charge. Il extrait les données XML pour un traitement automatisé tout en archivant le PDF à des fins légales. Le profil MINIMUM est le niveau minimal requis.