A ZUGFeRD or Factur-X invoice looks like an ordinary PDF, but the machine-readable invoice sits inside it as an attached XML file. When your accounting software cannot read the PDF, or you want to look at what the XML really says, you need that file on its own. This tool finds it, shows how it is attached, and lets you download it.
It reads the PDF in your browser and does not send it anywhere. It will not call every attachment an invoice: only an embedded file whose content is a Cross Industry Invoice is presented as the Factur-X / ZUGFeRD XML.
Loading the tool…
Overview
About ZUGFeRD / Factur-X XML Extractor
What it looks for. The extractor walks the PDF's embedded-file structures (the document-level attachment list, the associated-files array that PDF/A-3 uses, and file-attachment annotations on pages). Each file it finds is decoded and its content is examined: if it is XML with a Cross Industry Invoice root, it is treated as the invoice, and the guideline identifier inside it tells which Factur-X / ZUGFeRD profile it declares (MINIMUM, BASIC WL, BASIC, EN 16931 or EXTENDED) or whether it is an XRechnung.
Why the name of the file is not enough. By convention the invoice is called factur-x.xml (older ZUGFeRD files used other names, and the XRechnung profile uses xrechnung.xml), but a PDF can carry any attachment under any name. The tool therefore reports what the content is, and tells you when an attachment named like an invoice is something else.
What else you see. The attachment's relationship to the document (for example Data, Source or Alternative), its declared MIME type and decoded size, whether the PDF declares PDF/A-3 in its metadata, and the profile declared in the Factur-X block of that metadata. If those disagree with the XML, you get a plain-language note. For a full set of checks use the Factur-X / ZUGFeRD Validator.
Versions. ZUGFeRD 2.5 and Factur-X 1.09 are the same technical format published jointly by FeRD and FNFE-MPE (released 10 June 2026; ZUGFeRD 2.5.2 is the current release in October 2026). The XML inside carries only the specification family ("1p0") in its identifier, not the exact release, so this tool cannot tell you the release number from the file. It reads files built on the Cross Industry Invoice structure with Factur-X profile identifiers; it does not read the first-generation ZUGFeRD 1.0 layout.
Compatibility
Supported Formats
Accepts PDF files up to 50 MB. The embedded invoice has to be XML (up to 5 MB) built on the UN/CEFACT Cross Industry Invoice structure with a Factur-X / ZUGFeRD or XRechnung guideline identifier. Encrypted PDFs are not opened: remove the protection in the program that created them first. Invoices in UBL syntax or Polish FA(3) are different formats; use the E-Invoice Format Detector to see what a file is.
Guide
How to Use ZUGFeRD / Factur-X XML Extractor
- Choose the PDF invoice or drag it onto the box. It opens at once; nothing is uploaded.
- Read the list of embedded files. The one recognised as a Factur-X / ZUGFeRD invoice is shown under Extracted with its declared profile.
- Press Download XML to save the file, or Copy XML to paste it elsewhere. The download is the original bytes from the PDF, not a reformatted copy.
- Read the PDF/A-3 relationship notes. An empty list means the container checks found nothing to report; it does not mean the invoice is valid.
- To see the invoice as a table, open the XML in the XRechnung Viewer.
Highlights
Features
- Looks at content, not names Every embedded file is decoded and examined. Only XML with an invoice structure is presented as the invoice.
- Shows how the XML is attached Relationship, MIME type, size, and whether the PDF lists it as an associated file and declares PDF/A-3.
- Profile cross-check Compares the profile in the PDF metadata with the identifier inside the XML and says plainly when they differ.
- Stays in your browser The PDF is read locally. Hostile XML is rejected before it is parsed.
Applications
Use Cases
- Getting the XML out of a supplier invoice so your accounting or ERP system can import it
- Checking whether a PDF you received really contains structured data, or only looks like an e-invoice
- Comparing the profile written in the XML with the one the PDF metadata announces
- Handing the XML to a developer or auditor who asked for the structured part only
- Finding out why an import failed: wrong attachment name, missing relationship, or no XML at all
Good to Know
Limitations
This is an extractor, not a validator. A file that extracts cleanly can still be an invalid invoice. The tool does not run the official schema or Schematron checks, does not say which release number of Factur-X or ZUGFeRD produced the file, and does not support ZUGFeRD 1.0.
It also does not alter the PDF. Attachments are decoded from the PDF's own streams; a stream that uses an unusual compression filter may not be readable and is reported as such. XML containing a document type declaration (DTD) or entity definitions is refused before it is parsed, because invoice XML does not need them and they are a known attack route.
This tool runs entirely in your browser — your file is never uploaded to our servers. See our Privacy Policy for full details.
Support
Frequently Asked Questions
Is my invoice uploaded?
No. The PDF is opened with your browser's file access and read in the page. Nothing is sent to this site's server, and the extracted XML is only offered back to you as a download.
Are ZUGFeRD and Factur-X the same thing?
Since ZUGFeRD 2.1 they are the same technical format with two names: FeRD in Germany publishes it as ZUGFeRD, FNFE-MPE in France as Factur-X. ZUGFeRD 2.5 corresponds to Factur-X 1.09, released together on 10 June 2026. The XML only records the profile family, so the exact release cannot be read from the file.
The PDF has an attachment but the tool does not call it an invoice. Why?
Because the content did not look like Cross Industry Invoice XML. An attachment can have any name. The tool lists every embedded file with the kind of content it actually has, so you can see whether it is XML, a ZIP, an image or something else.
Which profiles does it recognise?
MINIMUM, BASIC WL, BASIC, EN 16931 and EXTENDED, recognised from the guideline identifier in the XML, and XRechnung (CII syntax) from its own identifier. The EN 16931 profile uses an identifier that other specifications also use, so the result then says so rather than claiming more.
Can I use the extracted XML as the legal invoice?
Whether an invoice is legally valid depends on the rules of the countries involved and on how it was issued and received, which a file tool cannot decide. The extractor gives you the bytes that are inside the PDF; it makes no statement about legal status.
Why was my XML refused?
Three reasons: it is larger than 5 MB, it is not well-formed XML, or it declares a DTD or entity. The last one is refused on purpose to rule out external-entity and entity-expansion attacks.
Keep Going
Related Tools
- XRechnung Viewer Open an XRechnung (or ZUGFeRD / Factur-X) invoice and read it as a clear table of parties, lines, VAT, totals and payment data. Runs in your browser.
- Factur-X / ZUGFeRD Validator (Technical Checks) Run technical checks on a hybrid Factur-X / ZUGFeRD PDF: PDF/A-3 declaration, attachment, profile in the metadata, a documented subset of EN 16931 rules and totals. Not the official validation.
- E-Invoice Format Detector Find out what an XML or PDF e-invoice file is: ZUGFeRD, Factur-X, XRechnung, KSeF FA(3), Peppol BIS or plain UBL, from fixed signals you can see.
- PDF Attachments Extractor List every file embedded in a PDF, see what each one really is, and download one or all of them. The PDF stays in your browser.