ZUGFeRD XRechnung ZIP

Extract Attachments from a ZUGFeRD or XRechnung Invoice

Drop in a ZUGFeRD PDF, an XRechnung XML, or any CII invoice and download every file embedded inside it, packed into a single ZIP: supporting PDFs, images, CSV, and spreadsheets.

Drag and drop your invoice file here, or click to browse.

Meets the standards EN 16931 ZUGFeRD / Factur-X XRechnung KoSIT GoBD Archive PDF/A-3

How It Works

Three steps from an invoice to a ZIP of its attachments.

Step 1

Drop In the Invoice

Add your ZUGFeRD PDF or standalone XRechnung XML, by drag and drop or a quick browse.

Step 2

We Find the Attachments

The tool reads the Additional Supporting Documents (BG-24) out of the invoice and decodes each embedded binary object (BT-125) back to its original bytes.

Step 3

Download the ZIP

Every attachment lands in one ZIP, each under its own filename, ready to open or keep for GoBD-compliant archiving. If the invoice carries none, you get a clear message instead.

When you would reach for this

A ZUGFeRD or XRechnung invoice can carry its supporting documents (Anlagen) inside the invoice itself. This pulls them all back out in one step, ready for your GoBD archive.

Every Embedded File, One ZIP

Each Additional Supporting Document (EN 16931 BG-24, carried as a BT-125 embedded object) is decoded from base64 and written into one ZIP under its original filename. XRechnung permits a fixed set of attachment types (PDF, PNG, JPEG, CSV, XLSX, ODS); every one is unpacked.

ZUGFeRD PDF, XRechnung, and CII

Reads the ZUGFeRD PDF/A-3 that embeds the CII, a standalone XRechnung XML, and plain UN/CEFACT CII. The attachments live in the same EN 16931 place whichever you upload.

Attachments Are Never Opened

The embedded bytes are streamed into the ZIP verbatim: nothing is parsed, rendered, or executed on our side. External links (BT-124) are deliberately never fetched.

Nothing Leaves Our Memory

Your invoice is processed in-memory over TLS and dropped the instant the ZIP is returned. No copies, no logs of your data.

A ZUGFeRD invoice is more than the numbers on the page. The structured heart of a ZUGFeRD file is CII XML, embedded inside a PDF/A-3, and that XML can carry whole documents of its own: a delivery note, a signed timesheet, a CSV that backs the charges, or a supplementary PDF. An XRechnung has no PDF page, yet it carries the same kind of embedded Anlagen inside its XML. Those files travel base64-encoded inside the invoice so they survive transmission intact. This tool pulls them all back out, so you can open, review, or archive exactly what your supplier embedded, not just the fields your accounting or DATEV import chose to show.


Where attachments live in a ZUGFeRD or XRechnung invoice

The EN 16931 European standard, the basis for both ZUGFeRD and XRechnung, defines a business group called Additional Supporting Documents (BG-24). Each entry describes one supporting file: a reference, an optional description, and then either a link to the document or the document itself. When the document is embedded, its bytes are carried as a base64-encoded binary object (BT-125), tagged with a filename and a MIME type.

In UN/CEFACT CII, the syntax inside every ZUGFeRD file and the most common XRechnung syntax, that shows up as an AdditionalReferencedDocument with an AttachmentBinaryObject. Extracting an attachment means reading that base64 payload and decoding it back into the original file, byte for byte. Because a ZUGFeRD PDF is just a PDF/A-3 wrapper around this CII, the attachments are found in the same place whether you upload the hybrid PDF or the standalone XML. XRechnung narrows the allowed attachment types to PDF, PNG, JPEG, CSV, XLSX, and ODS, so what you extract is always one of those.


Embedded files (BT-125) versus external links (BT-124)

Not every supporting document is embedded. A BG-24 entry can instead point to an external URL (BT-124), a plain link to a document hosted somewhere else. The two cases are very different in practice. An embedded payload is self-contained: the file is right there in the ZUGFeRD PDF or XRechnung XML, and extracting it is a safe, offline decode. An external link is a URL that could point anywhere.

This tool only extracts what is embedded in the invoice itself. It never follows external links: fetching a URL that arrived inside a document is a security risk, and whether to open a third-party link is a decision only you should make. So what you download is exactly the content the invoice carried, and nothing it merely referenced.


One drop, one ZIP, ready for your GoBD archive

Drop in a ZUGFeRD PDF or a standalone XRechnung XML and the extractor returns one ZIP, each attachment under its own filename, ready to use or to file away. German record-keeping rules (GoBD) expect an invoice to be retained together with the documents that belong to it, so keeping the embedded Anlagen next to the invoice matters. Nothing is opened along the way: the embedded bytes are decoded and streamed straight into the archive without being parsed, rendered, or executed, and your invoice is handled in memory and discarded the moment the ZIP is ready. Nothing is stored, logged, or passed on.


Where to next

Want to read the invoice itself rather than its attachments? Open it in the XRechnung viewer. Need to check a file before you send it? Validate your ZUGFeRD or XRechnung against EN 16931 and the German CIUS rules in one drop.


Related reading

Frequently Asked Questions

Everything you need to know about extracting attachments from a ZUGFeRD or XRechnung invoice.

The EN 16931 model, the basis of both ZUGFeRD and XRechnung, lets an invoice carry Additional Supporting Documents (business group BG-24). When a document is embedded rather than merely linked, its bytes ride inside the CII XML as a base64 binary object (BT-125), with a filename and MIME type. In a ZUGFeRD PDF those are files carried alongside the visible invoice; in an XRechnung they are the Anlagen embedded in the XML. Typical examples are a delivery note, a timesheet, or a CSV backing the line items.
ZUGFeRD PDFs (the hybrid PDF/A-3 that embeds CII XML), standalone XRechnung XML (CII or UBL syntax), and plain UN/CEFACT CII. XRechnung restricts embedded attachments to a defined set of formats (PDF, PNG, JPEG, CSV, XLSX, and ODS); whichever are present are unpacked.
You get a clear message rather than an empty download. Many XRechnung files carry no attachments at all, and an invoice that only references a document by external link has nothing embedded to extract.
No. A supporting document can point to an external URL (BT-124) instead of embedding its content. We never follow those links, both to keep the request safe and because only you should decide whether to fetch a third-party URL. Only content embedded in the invoice itself is extracted.
Never. The file is processed in memory over TLS and discarded the moment the ZIP is handed back, and the attachment bytes are copied into the archive without ever being opened. Whatever you keep for your GoBD archive stays entirely on your side.
Yes. The same extraction is available as an API for high-volume workflows. See the API and automation options at invoicexml.com
GoBD Archive

Receiving e-invoices? You must archive them properly.

Since 2015, the GoBD, the tax office's rules for digital records, have applied to every business, freelancers included: digital invoices must be kept as the original file, unchanged, exportable and readable for the whole 8-year retention period. With the e-invoicing mandate a print no longer counts. Our archive takes care of it for you.

  • Every invoice stored exactly as it arrived: XML, PDF or photo
  • Locked against changes, so nothing can be altered afterwards
  • A second copy in another German data centre
  • Find any invoice by date and export it with an index for your tax advisor
  • Team access: several team members can work in the same archive
  • No ERP, no installation: right next to your e-invoicing tools
Built for the German mandate

One toolkit for ZUGFeRD and XRechnung

Every German business has had to accept e-invoices since January 2025. Both formats are covered here.

ZUGFeRD or XRechnung? Let the assistant pick the tool Tell the chat what you need: it converts, checks, builds, and reads out German e-invoices. Open assistant

Create

Fill one form, get a ZUGFeRD PDF or an XRechnung with Leitweg-ID

Check & repair

Test against EN 16931 and the XRechnung CIUS, then fix what a buyer rejected

Convert

Move an invoice between PDF, CII, UBL and XRechnung

Open & extract

Open a file, see what is inside it, and take the data with you

Look up & automate

Check who you are invoicing, or move the whole flow to an API
Ready for mandatory e-invoicing?

Make every invoice compliant, in a single message

Subscribe to get unlimited tools, choosable compliance profiles and the full set of premium features.

EN 16931 & PDF/A-3b compliant Results in seconds No installation GoBD-compliant archive
1 free tool use per hour · No card required