Comment extraire le XML d’un Factur-X
- Déposez le PDF dans la zone ci-dessus, ou choisissez-le sur votre ordinateur.
- L’outil cherche le XML caché dans le PDF. Il affiche son début, le format reconnu et un résumé de la facture, avec son numéro, son vendeur et son total.
- Cliquez sur « Télécharger le XML ». Vous obtenez un fichier .xml qui porte le nom du PDF, et le PDF reste tel quel.
Pour lire la facture en clair plutôt que son code, passez par le lecteur de factures, qui fait la même extraction avant d’afficher les champs.
Où se cache le XML dans un PDF Factur-X
Un Factur-X est un PDF/A-3, une variante du PDF conçue pour l’archivage qui accepte des fichiers joints. Le XML de la facture y est joint, le plus souvent sous le nom factur-x.xml, comme une pièce jointe glissée à l’intérieur du document. Votre lecteur PDF affiche la page et ne montre pas ce fichier, d’où l’impression qu’il n’existe pas.
Le XML est aussi compressé, si bien qu’ouvrir le PDF dans un éditeur de texte ne donne rien de lisible. L’outil parcourt le contenu du PDF, décompresse chaque bloc et garde le premier qui ressemble à une facture XML, au format CII ou UBL. Tout se passe dans votre navigateur. Notre guide du format Factur-X explique pourquoi la facture est construite ainsi.
Ce que contient le XML embarqué
Le XML d’un Factur-X suit la syntaxe CII. Il reprend tout ce que montre le PDF, rangé dans des balises qu’un logiciel comptable lit sans erreur de saisie.
<?xml version="1.0" encoding="UTF-8"?><rsm:CrossIndustryInvoice xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100"> <rsm:ExchangedDocumentContext> <ram:GuidelineSpecifiedDocumentContextParameter> <ram:ID>urn:cen.eu:en16931:2017</ram:ID> </ram:GuidelineSpecifiedDocumentContextParameter> </rsm:ExchangedDocumentContext> <rsm:ExchangedDocument> <ram:ID>FA-88231</ram:ID> <ram:TypeCode>380</ram:TypeCode> <ram:IssueDateTime> <udt:DateTimeString format="102">20261001</udt:DateTimeString> </ram:IssueDateTime> </rsm:ExchangedDocument> <rsm:SupplyChainTradeTransaction> <ram:IncludedSupplyChainTradeLineItem>…</ram:IncludedSupplyChainTradeLineItem> <ram:ApplicableHeaderTradeAgreement> <ram:SellerTradeParty> <ram:Name>Lumen Hébergement</ram:Name> <ram:SpecifiedLegalOrganization> <ram:ID schemeID="0002">[SIREN]</ram:ID> </ram:SpecifiedLegalOrganization> </ram:SellerTradeParty> <ram:BuyerTradeParty> <ram:Name>Camille Martin EI</ram:Name> </ram:BuyerTradeParty> </ram:ApplicableHeaderTradeAgreement> <ram:ApplicableHeaderTradeDelivery/> <ram:ApplicableHeaderTradeSettlement> <ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode> <ram:SpecifiedTradeSettlementPaymentMeans> <ram:TypeCode>58</ram:TypeCode> <ram:PayeePartyCreditorFinancialAccount> <ram:IBANID>FR76…8823</ram:IBANID> </ram:PayeePartyCreditorFinancialAccount> </ram:SpecifiedTradeSettlementPaymentMeans> … <ram:SpecifiedTradeSettlementHeaderMonetarySummation> <ram:LineTotalAmount>24.00</ram:LineTotalAmount> <ram:TaxBasisTotalAmount>24.00</ram:TaxBasisTotalAmount> <ram:TaxTotalAmount currencyID="EUR">4.80</ram:TaxTotalAmount> <ram:GrandTotalAmount>28.80</ram:GrandTotalAmount> <ram:DuePayableAmount>28.80</ram:DuePayableAmount> </ram:SpecifiedTradeSettlementHeaderMonetarySummation> </ram:ApplicableHeaderTradeSettlement> </rsm:SupplyChainTradeTransaction></rsm:CrossIndustryInvoice>
| Ce que vous cherchez | Où le trouver dans le XML |
|---|---|
| Le numéro de facture | rsm:ExchangedDocument puis ram:ID |
| Le type de document | ram:TypeCode, qui vaut 380 pour une facture et 381 pour un avoir |
| La date d’émission | ram:IssueDateTime, écrite AAAAMMJJ. L’outil affiche 20261001 sous la forme 2026-10-01. |
| Le profil Factur-X | ram:GuidelineSpecifiedDocumentContextParameter |
| Le vendeur et son SIREN | ram:SellerTradeParty, avec ram:Name et ram:SpecifiedLegalOrganization |
| L’acheteur | ram:BuyerTradeParty |
| La devise et l’IBAN | ram:InvoiceCurrencyCode et ram:IBANID |
| Les totaux HT, TVA et TTC | ram:TaxBasisTotalAmount, ram:TaxTotalAmount et ram:GrandTotalAmount |
| Les lignes de la facture | ram:IncludedSupplyChainTradeLineItem, une balise par ligne |
Les cinq profils Factur-X
Tous les Factur-X ne contiennent pas autant de données. Le profil, indiqué en haut du XML, dit jusqu’où va le fichier.
| Profil | Ce que contient le XML |
|---|---|
| MINIMUM | Les parties, les références et les totaux, sans les lignes |
| BASIC WL | L’en-tête, la TVA par taux et les totaux, sans les lignes |
| BASIC | La facture avec ses lignes, sous une forme simplifiée |
| EN 16931 | Tout ce que demande la norme européenne, lignes comprises |
| EXTENDED | La norme, plus des données utiles à certains secteurs |
Avec un profil MINIMUM ou BASIC WL, le lecteur affiche « Aucune ligne de facturation détectée dans ce fichier ». C’est normal, puisque ces profils n’en contiennent pas. Pour en voir d’autres, parcourez nos exemples de factures Factur-X.
Extraire le XML sans cet outil
Le XML est une pièce jointe du PDF, donc tout logiciel qui sait lister les pièces jointes d’un PDF peut l’enregistrer. La plupart des lecteurs intégrés aux navigateurs ne les montrent pas, Firefox mis à part.
| Avec | Comment faire |
|---|---|
| Adobe Acrobat Reader | Ouvrez le volet de gauche et cliquez sur l’icône en forme de trombone. Faites un clic droit sur factur-x.xml pour enregistrer la pièce jointe. |
| Firefox | Ouvrez le PDF dans Firefox, affichez la barre latérale, puis la liste des pièces jointes. Cliquez sur factur-x.xml pour l’enregistrer. |
| La ligne de commande | pdfdetach -list facture.pdf liste les pièces jointes, et pdfdetach -saveall facture.pdf les enregistre. L’outil fait partie de Poppler. |
| Python | La bibliothèque factur-x fournit la commande facturx-pdfextractxml facture.pdf factur-x.xml. |
Quand aucun XML n’est trouvé
L’outil affiche alors « Impossible d’extraire le XML embarqué de ce PDF ». Le plus souvent, l’une de ces situations l’explique.
- Le PDF n’est pas un Factur-X. C’est un PDF classique, ou le scan d’une facture papier.
- Le PDF a été enregistré à nouveau. Une facture passée par « Imprimer en PDF » perd son XML joint, et un outil de compression ou de retouche peut le perdre aussi.
- C’est une facture ZUGFeRD 1.0, l’ancienne version allemande du format, que l’outil ne reconnaît pas.
- Le XML est rangé dans le PDF d’une façon peu courante, que l’outil ne sait pas décoder.
Demandez alors au fournisseur le fichier d’origine, ou récupérez-le sur votre plateforme agréée. S’il vous envoie le XML seul, notre page ouvrir un fichier XML de facture explique quoi en faire.
Que faire du XML extrait
Il sert quand un logiciel le réclame, par exemple un outil comptable qui importe les factures au format XML. Il sert aussi à vérifier ce que la facture déclare vraiment, puisque le PDF et le XML d’un Factur-X doivent dire la même chose. Si un montant diffère entre les deux, signalez-le au fournisseur. Le contrôle de facture indique en plus si sept mentions de base sont présentes.
Pour vos archives, gardez le PDF d’origine. C’est lui la facture, XML compris, et le fichier extrait n’en est qu’une copie. Le guide de l’archivage détaille les règles de conservation.
Questions fréquentes
Le PDF d’origine est-il modifié ?
Non. L’outil lit le fichier dans votre navigateur sans rien y écrire. Le XML téléchargé est une copie, et votre PDF reste identique.
Pourquoi l’outil affiche-t-il CII et non Factur-X ?
Le XML d’un Factur-X est écrit dans la syntaxe CII. L’outil affiche « Factur-X » quand l’identifiant du profil contient ce mot, ce qui n’est pas le cas du profil EN 16931, le plus courant. Votre facture reste bien un Factur-X.
Puis-je modifier le XML et le remettre dans le PDF ?
Pas sur une facture reçue. Une facture émise ne se corrige pas après coup. Le fournisseur émet une facture rectificative ou un avoir, et un PDF retouché ne serait plus l’original à conserver.
Et les factures allemandes ZUGFeRD ?
À partir de la version 2, ZUGFeRD utilise le même XML que Factur-X, et l’outil le trouve de la même façon. L’ancienne version 1.0 n’est pas reconnue.
Puis-je traiter plusieurs PDF d’un coup ?
Non, un PDF à la fois. Le renommeur de factures accepte un dossier entier, mais il renomme les fichiers sans en extraire le XML.
Mes fichiers sont-ils envoyés quelque part ?
Non. Le PDF est lu dans votre navigateur, rien ne passe par un serveur et rien n’est conservé. Quand vous fermez l’onglet, il n’en reste rien.
Faut-il créer un compte ?
Non. Vous ouvrez la page et vous déposez votre PDF, sans compte ni adresse email.
Sources, consultées le 13 octobre 2026 : spécification Factur-X, FNFE-MPE · impots.gouv.fr, je découvre la facturation électronique · economie.gouv.fr · norme EN 16931-1, publiée par le CEN · norme ISO 19005-3 (PDF/A-3).