Guide

How to attach a PDF to a Peppol invoice (BG-24)

How to attach a PDF, timesheet or spreadsheet to a Peppol e-invoice: allowed file types, the exact UBL, and the rules that reject attachments.

Published 5 min readBy

To attach a PDF to a Peppol invoice, add a cac:AdditionalDocumentReference with an ID, and inside it a cac:Attachment/cbc:EmbeddedDocumentBinaryObject holding the Base64-encoded file, with mimeCode="application/pdf" and a filename. Peppol allows only six file types: PDF, PNG, JPEG, CSV, XLSX and ODS. The attachment travels with the invoice. It does not replace the structured data.

The business terms

Attachments sit in BG-24 Additional supporting documents, which can repeat:

Business term UBL Required?
BT-122 Supporting document reference cac:AdditionalDocumentReference/cbc:ID Yes, for each BG-24
BT-123 Supporting document description cbc:DocumentDescription Optional (max once)
BT-124 External document location cac:Attachment/cac:ExternalReference/cbc:URI Optional
BT-125 Attached document cac:Attachment/cbc:EmbeddedDocumentBinaryObject Optional
BT-125-1 Attached document MIME code @mimeCode Yes, if BT-125 is used
BT-125-2 Attached document filename @filename Yes, if BT-125 is used

Peppol says: "Attachments shall be transmitted together with the Invoice. The binary object has two supplementary components: a Mime Code … and a Filename." And on the receiving side: "A receiver of an invoice or credit note, shall accept and process attachments that are according to the code list Media type code of attached document."

Allowed file types

The Peppol MIME code list (a subset of IANA) contains exactly:

File mimeCode
PDF application/pdf
PNG image image/png
JPEG image image/jpeg
CSV text/csv
Excel application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
OpenDocument spreadsheet application/vnd.oasis.opendocument.spreadsheet

Word documents, ZIP files, emails and XML files are not on the list.

Embedding a PDF: correct UBL

<cac:AdditionalDocumentReference>
  <cbc:ID>TS-2026-09</cbc:ID>
  <cbc:DocumentDescription>Timesheet September 2026</cbc:DocumentDescription>
  <cac:Attachment>
    <cbc:EmbeddedDocumentBinaryObject mimeCode="application/pdf"
        filename="timesheet-2026-09.pdf">JVBERi0xLjQKJcfsj6IK...</cbc:EmbeddedDocumentBinaryObject>
  </cac:Attachment>
</cac:AdditionalDocumentReference>

The element content is the file's bytes as plain Base64, without a data: prefix. In a UBL invoice, cac:AdditionalDocumentReference sits after cac:ContractDocumentReference (if present) and before cac:ProjectReference and cac:AccountingSupplierParty. Repeat the whole block for each file.

We validated an invoice containing this block (with a small Base64-encoded PDF) against the UBL 2.1 schema, the EN 16931 rules and the Peppol rules, with no errors.

Linking instead of embedding

You can point to a file instead of embedding it:

<cac:AdditionalDocumentReference>
  <cbc:ID>DN-5531</cbc:ID>
  <cbc:DocumentDescription>Signed delivery note</cbc:DocumentDescription>
  <cac:Attachment>
    <cac:ExternalReference>
      <cbc:URI>https://files.example.co.uk/dn/5531.pdf</cbc:URI>
    </cac:ExternalReference>
  </cac:Attachment>
</cac:AdditionalDocumentReference>

This validates, but think about the receiver. Links expire, need log-ins, or get blocked by security tools, and the buyer has to keep the document for their own records. Embedding is more reliable for anything the buyer needs to approve the invoice.

The errors

We triggered each of these by changing one thing in the valid example above:

Wrong file type. mimeCode="application/msword" fails two rules:

PEPPOL-EN16931-CL001  Mime code must be according to subset of IANA code list.
[BR-CL-24]-For Mime code in attribute use MIMEMediaType.

Fix: convert to PDF.

No filename. Leaving out filename fails:

[UBL-DT-07]-Binary object elements shall contain the file name attribute

No ID. Dropping cbc:ID fails the UBL schema (the element is mandatory) and EN 16931:

[BR-52]-Each Additional supporting document (BG-24) shall contain a Supporting document reference (BT-122).

Mixing an invoiced object and an attachment. cac:AdditionalDocumentReference with cbc:DocumentTypeCode 130 is used for an "invoiced object identifier", such as a meter or subscription number. UBL-CR-666 says: "A UBL invoice shall not include an AdditionalDocumentReference simultaneously referring an Invoice Object Identifier and an Attachment". Use separate blocks.

Two descriptions. UBL-SR-33: "Supporting document description shall occur maximum once".

Size

Peppol BIS Billing 3.0 does not set a size limit for attachments, and we found no limit in the Peppol AS4 specification. Base64 encoding makes files about a third bigger. Access Points and receiving systems can impose their own limits, so compress scans and check with your provider before sending large drawings or photo sets.

Is the PDF the invoice?

No. In Peppol the structured XML is the invoice. Totals, VAT and references are read from the XML, and an attached PDF is supporting material. Attaching a PDF rendering of the invoice itself is common, so that people can see a familiar layout. Keep in mind:

  • If the PDF and the XML disagree, the buyer's system will process the XML. Generate both from the same data.
  • HMRC's VAT Notice 700/63 warns against "running a dual system" of electronic and paper invoices for the same supplies outside a controlled trial, and says that once a trial ends "the electronic invoice then becomes the legal document for VAT purposes". How HMRC will treat a PDF copy attached to a mandated e-invoice from 2029 is not yet confirmed. Labelling the PDF as a copy or visual rendering is a sensible precaution.

For more on why a PDF on its own does not count, see does a PDF invoice count as an e-invoice?.

What may change for the UK

These rules are Peppol BIS Billing 3.0 (May 2026 release). The government's consultation response records calls for "provision for attaching accompanying documents" and says its technical work will consider "extensions to the standardised invoice to accommodate sector specific needs". Whether the UK specification changes the allowed file types or adds limits is not yet confirmed.

What to do now

  • Agree with key customers which documents they need (timesheets, proof of delivery, statements) and send them as attachments, not separate emails.
  • Convert Word and email documents to PDF before attaching.
  • Make sure your AP system shows attachments to approvers. Peppol says receivers "shall accept and process" allowed attachments.
  • See the full UK Peppol invoice XML example.

Frequently asked questions

Can I attach a PDF to a Peppol invoice?

Yes. Embed it, Base64-encoded, in cac:AdditionalDocumentReference/cac:Attachment/cbc:EmbeddedDocumentBinaryObject with mimeCode="application/pdf" and a filename. The reference needs an ID.

Which file types can be attached to a Peppol invoice?

PDF, PNG, JPEG, CSV, Excel (XLSX) and OpenDocument spreadsheet (ODS). Anything else, such as Word or ZIP, fails rule PEPPOL-EN16931-CL001.

Is the attached PDF the legal invoice?

The structured XML is the e-invoice. An attached PDF is supporting material. How HMRC will treat PDF copies under the 2029 mandate is not yet confirmed.

Is there a size limit for Peppol attachments?

Peppol BIS Billing 3.0 does not set one. Your Access Point or the receiver may impose limits, so check with your provider before sending large files.

Spotted a mistake? Report an error. einvoices.uk is an independent publication and is not affiliated with HMRC. Details of the mandate may change; check the sources and official GOV.UK guidance before acting.