ediverse Explorer la plateforme

À la une PEPPOL BIS Billing 3.0 L’obligation européenne d’e-invoicing arrive : France sept 2026, Belgique janv 2026, Allemagne 2025.

Extracteur Factur-X / ZUGFeRD

Extrayez le fichier XML CII embarqué d'une facture hybride PDF/A-3 (Factur-X 1.0.7 / ZUGFeRD 2.3), 100 % côté client. Aucun upload, aucun log.

Glissez-déposez un PDF ici, ou cliquez pour choisir un fichier

Aucun fichier sélectionné

100 % dans votre navigateur — aucun upload, aucune donnée envoyée à ediverse.io.

Comment ça marche

Une facture hybride Factur-X (Franco-Allemande, FNFE-MPE) ou ZUGFeRD (Allemande, FeRD) est un fichier PDF/A-3 (ISO 19005-3) contenant une pièce jointe XML conforme au schéma UN/CEFACT Cross-Industry Invoice (CII). L'extracteur procède en cinq étapes :

  1. Lecture du header PDF : la signature %PDF-1.x est contrôlée et la version PDF mémorisée.
  2. Localisation du xref : le pointeur startxref est suivi vers la table de références croisées classique (ISO 32000-1 §7.5.4). Chaque entrée donne l'offset d'un objet indirect.
  3. Navigation Catalog → Names → EmbeddedFiles : le trailer pointe vers le /Root (le catalogue) ; celui-ci expose un name tree /Names/EmbeddedFiles qui énumère les pièces jointes (ISO 19005-3 §6.8). Un fallback lit le tableau /AF (Associated Files) du catalogue.
  4. Extraction du flux XML : la spécification de fichier (/Type /Filespec) référence un stream /Type /EmbeddedFile. Si le filtre est /FlateDecode (cas habituel), le navigateur décompresse via DecompressionStream('deflate').
  5. Détection du profil : le XML CII expose son URN via ExchangedDocumentContext/GuidelineSpecifiedDocumentContextParameter/ID. Cet identifiant détermine le profil : MINIMUM, BASIC WL, BASIC, EN 16931, EXTENDED ou XRECHNUNG.

Profils de conformité supportés

Les six profils définis par Factur-X 1.0.7 (FNFE-MPE) et ZUGFeRD 2.3 (FeRD) sont reconnus, ainsi que la CIUS allemande XRechnung (KoSIT). L'URN du profil est extrait du XML embarqué et affiché tel quel dans le rapport.

  • MINIMUMurn:factur-x.eu:1p0:minimum. Données d'en-tête uniquement, Factur-X seulement.
  • BASIC WLurn:factur-x.eu:1p0:basicwl. Without Lines, pas de détail ligne.
  • BASICurn:cen.eu:en16931:2017#compliant#urn:factur-x.eu:1p0:basic. Sous-ensemble EN 16931, minimum requis pour qualifier de facture fiscale.
  • EN 16931urn:cen.eu:en16931:2017. Norme européenne cœur (anciennement « COMFORT » dans ZUGFeRD 1.0).
  • EXTENDEDurn:cen.eu:en16931:2017#conformant#urn:factur-x.eu:1p0:extended. EN 16931 + extensions sectorielles.
  • XRECHNUNG…urn:xeinkauf.de:kosit:xrechnung_3.0. CIUS imposée au secteur public allemand.

Limites

L'extracteur est volontairement minimaliste — il s'agit d'extraire le XML, pas de remplacer un parser PDF complet :

  • Les PDF chiffrés (/Encrypt) ne sont pas pris en charge.
  • Les cross-reference streams (PDF 1.5+) ne sont pas lus : nous traitons la table xref classique. La grande majorité des chaînes d'émission de factures électroniques produisent un xref classique pour compatibilité PDF/A.
  • Les object streams (/ObjStm) ne sont pas pris en charge.
  • Seul le filtre /FlateDecode (zlib) est décodé. Les filtres rarissimes pour des pièces jointes XML (/ASCII85Decode, /LZWDecode…) renverront E_PDF_PARSE_FAILED.
  • L'extracteur ne valide pas le contenu du XML extrait — il détecte uniquement le profil. Utilisez le validateur EN 16931 ou le validateur PEPPOL pour valider le XML extrait.

Confidentialité

Documentation associée

Dernière mise à jour: 16 mai 2026