eInvoice Viewer for PEPPOL & EN16931

eInvoice Viewer for PEPPOL & EN16931

Details
View on WordPress

eInvoice Viewer for PEPPOL & EN16931 turns an uploaded electronic invoice into a clear, structured HTML view directly on your page – without any external service and without storing the file.

Add the [einvoice_viewer] shortcode to a page and your visitors can drag and drop an electronic invoice into the viewer. The document is read and rendered entirely in the visitor’s own browser – it is never uploaded to your server. The result (invoice header, parties, order and delivery data, payment details, line items, VAT breakdown and totals) appears instantly, without a page reload and without a single byte of the invoice ever crossing the network. The layout is inspired by the official ZUGFeRD Quba viewer and is rendered inside a Shadow DOM, so it looks identical in every theme.

Supported formats

  • ZUGFeRD / Factur-X (PDF) – the embedded XML is extracted and read automatically.
  • CII (UN/CEFACT) XML – read directly.
  • UBL / XRechnung (XML) – converted to CII internally and then read.

Highlights

  • Drag & drop uploader – vanilla JavaScript, no framework, no page reload.
  • Complete field coverage – all 164 EN 16931 business terms and all 32 business groups, verified against 125 official sample invoices. Empty fields are shown as placeholders on purpose, so you can see which terms the standard defines and which ones this invoice omitted.
  • Business-term labels with explanations – each field can carry its BT / BG code, and hovering it shows the official term name plus its full definition in German, English or French, taken verbatim from the Factur-X specification. Toggled live, per setting or via the shortcode attribute bt="1" / bt="0".
  • Trilingual – the interface is available in English, German and French.
  • Theme-independent – rendered inside a Shadow DOM with a full style reset, so no theme styles leak through.
  • The document never leaves your browser – reading and rendering both happen client-side; your server never receives the file, so there is nothing to store, log or leak in the first place.
  • Secure by design – the invoice is parsed by the browser’s own DOMParser (no server-side XML parser, so no XXE surface for the upload itself); every invoice value is escaped on output. Sibling paid extensions that genuinely need server-side processing (validation, export, …) keep their own independent upload, nonce and rate-limit handling.
  • Extensible – additional layouts can be added as a template subclass, and a structured-data API returns the whole invoice as a nested array. Two filters (spev_code_tooltip, spev_invoice_model) let an add-on extend the BT/BG tooltips and the invoice model itself.

Third-party libraries

Reading and format handling is powered by horstoeko/invoicesuite and horstoeko/zugferdublbridge (MIT license), bundled in the plugin’s vendor/ directory. Extracting the embedded XML from a ZUGFeRD / Factur-X PDF additionally uses prinsfrank/pdfparser and setasign/fpdi (also MIT). The complete dependency list with its licenses is in composer.lock.

Details

Plugin code:
einvoice-viewer-for-peppol-en16931
Plugin version:
2.14.9
Author:
Outdated:
No
WP version:
5.8 or higher
PHP version:
8.2 or higher
Test up to WP version:
7.1.1
Total installations:
0
Last updated:
2026-09-19
Rating:
Times rated:
0
e-invoice
factur-x
peppol
xrechnung
zugferd