eInvoice Viewer — Hybrid Check – Manual
1 · Overview
A ZUGFeRD or Factur-X invoice carries two invoices in one file: the PDF a person reads, and the invoice data in the XML that accounting processes. Nothing in the format forces both to say the same. That is where invoice fraud starts: the XML names another IBAN, and the visible document still shows the familiar bank account.
The add-on "Hybrid Check" adds this comparison to the WordPress plugin "eInvoice Viewer for PEPPOL & EN16931". As soon as the viewer has read an invoice with a visible document, it compares the invoice number, the total amount and the bank account of the visible document with the invoice data by itself.
What the add-on does:
- It compares the PDF of a ZUGFeRD or Factur-X invoice with its invoice data.
- It also compares a PDF attached to an XRechnung, when that PDF shows the invoice number.
- It shows the result in a tab "Hybrid Check" and marks a contradiction at the affected field of the invoice.
What the add-on does not do:
- It does not read a scanned PDF. A visible document without readable text is not compared; the add-on says so.
- It does not report that something is missing from the visible document. Many templates do not print the bank account, or only as a graphic; only a contradiction is reported.
- It does not compare attachments that do not show the invoice itself, such as a measurement or a rental contract.
Requirements:
| Requirement | Value |
|---|---|
| WordPress | 5.8 or later |
| PHP | 8.2 or later |
| Plugin | eInvoice Viewer for PEPPOL & EN16931 |
| In the viewer app | instead of WordPress and the plugin: the viewer app from version 2.37.1 and the add-on "Hybrid Check" for the app |
2 · Installation
In the viewer app
For the viewer app the add-on is a ZIP file of its own in the shop. There it works entirely in the browser, without WordPress and without a server.
From version 2.38.0 of the viewer the result stands in its own tab, in the plugin and in the app alike; with an older viewer it stands in an area next to the invoice. The tab does not open by itself, so that the invoice stays in view; a contradiction is announced above the invoice. With tab_sphc="no" in the shortcode of the viewer the check does not run on that page.
screenshots/hc-hinweis.en.pngThe yellow sentence above the invoice that announces a contradiction between the visible document and the invoice dataSettings
The add-on has no settings page of its own. On the viewer's settings page, "Available from role" decides who sees the add-ons.
3 · What the comparison reports
| What the page says | Meaning |
|---|---|
| The visible document shows the invoice number and the total amount of the invoice data. | Both sides agree. If the visible document also shows the bank account, the sentence names it. |
| The invoice number, the total amount or the bank account of the invoice data does not appear in the visible document. | A contradiction. It also stands as a card at the field of the invoice. Compare both sides before you pay. |
| The visible document contains no readable text. | The PDF is probably a scan. It was not compared. |
An invoice without a PDF, that is a plain XML file without an attachment, gets no section, because there is nothing to compare.
screenshots/hc-uebereinstimmung.en.pngThe "Hybrid Check" tab with a green finding: invoice number and total amount appear in the visible documentscreenshots/hc-widerspruch.en.pngThe "Hybrid Check" tab with a warning: the total amount of the invoice data does not appear in the visible documentscreenshots/hc-feld.en.pngThe totals of the invoice with the Hybrid Check finding on a line of its own below "Total with VAT" (BT-112)Switching it off on one page
In the shortcode of the viewer you switch off on a single page what this add-on shows, for example [spev_einvoice_viewer tab_hybrid_check="no"]. Without the attribute everything stays on.
| Switch | What the page leaves out |
|---|---|
tab_hybrid_check | the tab "Hybrid Check" |
tab_sphc | the check itself; it does not run on this page |
A switch only takes something off this page. Who may use the add-on at all is set with "Available from role" in the settings of the viewer. The viewer app uses the same names in config.js, for example features: { tab_hybrid_check: false }. Only the value false without quotes switches off.
4 · Privacy
The comparison runs in the browser. The PDF is the file the viewer has already read. The add-on sends nothing to your site or to any other service, and it stores nothing.
5 · Licence
The add-on is licensed under GPL-2.0-or-later.
6 · Versions
| Version | What changed |
|---|---|
| 1.2.0 | The messages in the tab "Hybrid Check" are cards as in the Inbound Check: the field and "Error", "Warning" or "OK" at the top, the sentence below. |
| 1.0.0 | First version. |
7 · List of images
This list shows which screenshots this manual expects and which were found in the folder screenshots/ of the package. An image is always named key.language.png, for example hc-hinweis.en.png. The images show sample data only.
| Status | File | What it shows |
|---|---|---|
| – | hc-hinweis.en.png | The yellow sentence above the invoice that announces a contradiction between the visible document and the invoice data |
| – | hc-uebereinstimmung.en.png | The "Hybrid Check" tab with a green finding: invoice number and total amount appear in the visible document |
| – | hc-widerspruch.en.png | The "Hybrid Check" tab with a warning: the total amount of the invoice data does not appear in the visible document |
| – | hc-feld.en.png | The totals of the invoice with the Hybrid Check finding on a line of its own below "Total with VAT" (BT-112) |