Skip to Content

Peppol PDF Embed (Global)

55.65 55.65

Instant digital delivery after payment confirmation.
License: OPL-1, every download is watermarked.
Terms and Conditions

Peppol Hybrid PDF — Embed UBL in Your Invoice PDF

Embed the Peppol BIS Billing 3.0 / EN 16931 UBL XML inside the standard Odoo invoice PDF for hybrid, human-and-machine readable delivery.

One PDF, two readers

A hybrid invoice is a single PDF that a person can open and read, and a machine can parse. This module attaches a structured Peppol BIS Billing 3.0 UBL document inside the standard Odoo invoice PDF — the same Associated-Files / PDF/A-3 embedding mechanism that Factur-X and ZUGFeRD use, applied to UBL. Your customer receives one file; their accounting system extracts the structured data, while everyone else simply reads the page.

EN 16931 UBL builder

A genuine OASIS UBL 2.1 serialiser producing a Peppol BIS Billing 3.0 Invoice or CreditNote: document header (ibt-001..024), supplier/customer parties with their Peppol electronic address endpoints and EAS scheme, payment means, VAT breakdown (TaxTotal / TaxSubtotal) and legal monetary totals.

PDF/A-3 embedding

The UBL is embedded as a named attachment wired into the document catalog’s /AF (Associated Files) array and the /Names /EmbeddedFiles name tree, with the correct /AFRelationship and an XMP metadata packet declaring the embedded file. Existing attachments are preserved.

Round-trip verified

After embedding, the module re-extracts the UBL from the produced PDF and compares it byte-for-byte. Every embed is recorded in an audit log with sizes, document type and a verified flag, so you can prove the machine-readable payload is really inside the file you sent.

Pre-embed validation

Before serialising, a business-rule check runs the EN 16931 / Peppol rules that would otherwise make the attachment worthless to a receiving access point: invoice number, dates, ISO currency, party country, VAT category codes, standard-rate vs zero-rate consistency and the BR-CO total derivation chain.

Features

CapabilityWhat it does
Generate UBL only Produce and attach the Peppol BIS Billing 3.0 UBL XML to the invoice without touching the PDF.
Embed UBL in PDF Render the standard invoice PDF and embed the UBL into it, storing a downloadable hybrid PDF on the invoice.
Download hybrid PDF One click to download the hybrid PDF (generates it on demand if not yet produced).
Batch wizard Validate or embed many selected customer invoices at once, with a per-invoice result log and skip-invalid option.
Scheduled embedding An optional, disabled-by-default cron that drains posted invoices flagged for hybrid delivery.
Credit notes Full support for customer credit notes (UNTDID 1001 type 381) with a reference to the original invoice.
Peppol endpoints Per-partner electronic address ID + EAS scheme, with a sensible country-based default when not set.
Audit log A searchable log model recording every embed, its result and round-trip verification.

Standards & scope

  • Peppol BIS Billing 3.0 — CustomizationID urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0, ProfileID urn:fdc:peppol.eu:2017:poacc:billing:01:1.0.
  • EN 16931 semantic model in OASIS UBL 2.1 syntax.
  • Code lists: UNTDID 1001 document types, UNCL5305 VAT category codes, UNTDID 4461 payment means, UN/ECE Rec 20 units, Peppol EAS (ICD) schemes.
  • PDF/A-3 Associated Files embedding (ISO 32000-2 relationship /Data).

This is a pure format-and-embed utility. It produces the structured payload and bakes it into your PDF; it does not connect to any Peppol access point and does not require any vendor accreditation. You keep full control of how the hybrid PDF is delivered.

How it works

  1. Enable Embed Peppol UBL in PDF on your company and set the default EAS scheme.
  2. Set the Peppol endpoint ID / scheme on your customers (optional; falls back to the VAT number and a country default).
  3. On a posted customer invoice, click Validate Peppol UBL, then Embed UBL in PDF.
  4. Download the hybrid PDF and deliver it — the structured UBL travels inside the file.

Screenshots

Embed Logs

Embed Logs

Update date: 2026-07-02