UBL Peppol ZIP

Extract Attachments from a Peppol Invoice

Drop in a UBL, Peppol, or CII invoice (or a hybrid PDF) and download every embedded file it carries, packed into a single ZIP: supporting PDFs, timesheets, spreadsheets, and images.

Drop a UBL or Peppol invoice here, or click to pick one.

When you would reach for this

A Peppol invoice can carry its supporting documents inside the XML itself. This pulls them all back out for you in one step.

Every Embedded File, One ZIP

Each Additional Supporting Document (EN 16931 BG-24, with a BT-125 embedded payload) is decoded from base64 and written into a single ZIP, under its original filename.

Built for UBL and Peppol

Reads Peppol BIS Billing 3.0 UBL, plain UBL 2.1, and UN/CEFACT CII, plus hybrid PDFs that carry the invoice XML inside them. One tool for every EN 16931 syntax.

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 handled in memory over an encrypted connection and dropped the instant the ZIP is returned. No copies, no logs of your data.

How It Works

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

Step 1

Drop In the Invoice

Add your UBL, Peppol, or CII invoice XML, or a hybrid PDF with the XML embedded, 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 archive. If the invoice has none, you get a clear message instead.

A Peppol invoice is more than its totals. A well-formed UBL or CII invoice can carry whole documents inside it: a human-readable PDF of the invoice, a delivery note, a signed timesheet, a spreadsheet that backs the charges. Those files travel embedded in the XML, encoded so they survive the trip across the Peppol network. This tool pulls them all back out, so you can open, review, or archive what your supplier actually sent, not just the numbers your accounting system chose to display.


Where attachments live in a UBL or Peppol invoice

The EN 16931 European standard 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 UBL 2.1 and Peppol BIS Billing 3.0 that shows up as an AdditionalDocumentReference with an EmbeddedDocumentBinaryObject. In UN/CEFACT CII (the syntax behind Factur-X and ZUGFeRD) it is an AdditionalReferencedDocument with an AttachmentBinaryObject. Different words, the same EN 16931 idea. Extracting an attachment means reading that base64 payload and decoding it back into the original file, byte for byte.


Embedded files versus external links

Not every supporting document is embedded. A BG-24 entry can instead point to an external URI (BT-124), a plain link to a document hosted somewhere else. Those two cases are very different in practice. An embedded payload is self-contained: the file is right there in the invoice, 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.


Every syntax, one result

Peppol runs on UBL, but attachments are not a UBL-only concern. Drop in plain UBL 2.1, a Peppol BIS Billing 3.0 document, a UN/CEFACT CII invoice, or a hybrid PDF such as Factur-X or ZUGFeRD that carries the invoice XML embedded inside it. In each case the extractor finds the supporting documents in the same EN 16931 place and returns them the same way: one ZIP, each attachment under its own filename, ready to use.

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 UBL viewer. Need to check a UBL file before you send it? Validate it against Peppol BIS 3.0 in one drop.

Frequently Asked Questions

What to know about extracting attachments from a Peppol or UBL invoice.

An EN 16931 invoice can carry Additional Supporting Documents (business group BG-24). When a document is embedded rather than merely linked, its bytes ride inside the XML as a base64 binary object (BT-125), with a filename and MIME type. Common examples are a human-readable PDF of the invoice, a delivery note, a timesheet, or a spreadsheet backing the charges. This tool decodes each of those and hands them back to you as files.
UBL 2.1 and Peppol BIS Billing 3.0 invoices, UN/CEFACT CII invoices, and hybrid PDFs (such as Factur-X or ZUGFeRD) that carry the invoice XML embedded. Whatever the syntax, the attachments are found in the same EN 16931 place.
You get a clear message rather than an empty download. An invoice with no BG-24 supporting documents, or one that only references documents by external link, simply has nothing 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 an encrypted connection and discarded the moment the ZIP is handed back. The attachment bytes are copied into the archive without ever being opened or inspected.
Yes. The same extraction is available as an API for high-volume workflows. See the API and automation options at invoicexml.com
Ready for the Peppol mandates?

Get your invoicing Peppol-ready today

Sign up to unlock unlimited tool use, Peppol network delivery and every premium feature.

EN 16931 & Peppol BIS 3.0 compliant Results in seconds No installation Data never stored
20 free uses per day · No card required