Free Tool Desk

ZUGFeRD / Factur-X XML Extractor

Pull the invoice XML out of a ZUGFeRD or Factur-X PDF, see which profile it declares, and download it. The PDF is read in your browser.

Free to use No sign-up required Nothing is uploaded

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

  1. Choose the PDF invoice or drag it onto the box. It opens at once; nothing is uploaded.
  2. Read the list of embedded files. The one recognised as a Factur-X / ZUGFeRD invoice is shown under Extracted with its declared profile.
  3. 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.
  4. 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.
  5. 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