eInvoice Viewer for PEPPOL & EN16931 – Manual
1 · Overview
The eInvoice Viewer shows an XRechnung, ZUGFeRD, Factur-X or Peppol invoice as a structured, readable document. The file never leaves the browser. It comes in two delivery forms that are one product: as a WordPress plugin and as an app, that is, as a folder with an HTML file. Both show the same view, have the same toolbar and carry the same version number. The plugin is the app plus control: roles, daily limits, "available from role", the storage of the settings on the website and the connection to a validation engine. Chapters 1 to 11 of this manual describe both together. Where plugin and app differ, a short reference points to chapter 12 "As an app" or chapter 13 "As a WordPress plugin". The publisher is invoicePress.
An e-invoice is an XML file. It is written for programs and barely readable for people. The eInvoice Viewer turns it into a structured document: you drag the file into the Viewer and see seller, buyer, line items, taxes and totals the way you are used to seeing an invoice.
screenshots/viewer-beleg.en.pngAn opened invoice: dark blue document header with the amount due, blue disclaimer, below it the blocks "Invoice data", "Buyer" and "Seller". BT numbers hidden.Who it is for
Accounting departments, small businesses, law and tax firms and anyone who receives an e-invoice and wants to know what it contains; also operators of websites, intranets and portals who want to offer their visitors an invoice reader.
What it can do
- It reads ZUGFeRD/Factur-X PDF, CII XML and UBL XML (XRechnung, Peppol BIS Billing 3.0, including credit notes).
- It shows every field of EN 16931, including the empty ones; a switch hides the empty ones.
- It shows the BT and BG numbers with name and description in the tooltip.
- It shows code values with code and name, for example "380 - Invoice".
- It recalculates line amounts, VAT breakdown and totals and marks deviations.
- It marks fields that violate a rule derived from the invoice itself.
- It shows the invoice's attachments for viewing and saving.
- It adapts to the space it is placed in and looks the same in every theme and on every page.
What it cannot do
- It does not check an invoice for validity. That is the job of a validator.
- From a PDF it reads only the embedded XML, never the printed page. It cannot read a scan.
- It does not store any invoice and keeps no list of opened invoices.
- It shows the fields of the extending profiles only with the "Extended Profiles" add-on.
In which forms it is available
| Delivery form | Price and source | Requirement | How to use it |
|---|---|---|---|
| WordPress plugin | free, wordpress.org | WordPress 5.8 or later, PHP 8.2 or later | place the shortcode [spev_einvoice_viewer] on a page |
| App as a folder | free, download from apps.invoicepress.de | a current browser | place the folder and open einvoice-viewer-for-peppol-en16931.html |
| Demo | free, in the browser on invoicepress.de | a current browser | try it out without downloading anything |
2 · Installing
Neither delivery form needs a third-party service, an account or a key.
As a WordPress plugin
You need WordPress 5.8 or later and PHP 8.2 or later.
The attributes of the shortcode and the settings page are described in chapter 13.
As an app
You only need a current browser: Chrome, Edge, Firefox or Safari.
Note: The app runs the same everywhere. All paths in the folder are relative. It therefore makes no difference whether you open the file by double-clicking it on the hard disk, from a network drive or from a web server.
The structure of the folder, the file config.js and the embedding in an existing page are described in chapter 12.
3 · First steps
This is how you get to your first invoice in one minute.
screenshots/viewer-ablage.en.pngThe empty drop area with the text "Drag an e-invoice here or click to choose a file".Caution: An ordinary PDF is not enough. From a PDF the Viewer reads only the embedded XML. A scan or an ordinary invoice PDF contains none; the Viewer then says so instead of showing an empty view.
4 · Working with the Viewer
4.1 Reading the view
The colours named here apply to the standard design Kit H. With Kit A they look different (chapter 13).
| Part | What you see |
|---|---|
| Document header | A dark blue area shows invoice type, number, date and currency on the left and the amount due on the right. |
| Disclaimer | A blue notice says: "We accept no liability for the correctness of the data." |
| Check notice | A yellow box says what the Viewer checks and that this is not a complete validation (section 4.4). |
| Block | Each group of the standard is in a block. Its name sits as a flag at the top left: dark blue if the group carries values, light blue if it is empty. |
| Field row | The label on the left, the value on the right. An empty field appears as "—". |
| Line items | Each invoice line is on a light grey area with its own blocks. |
| Totals | Each total has its own row; the grand total and the amount due are highlighted. |
4.2 The toolbar
Below the drop area, the switches stand on the left. Below them come the buttons, right-aligned across the width of the invoice: first the buttons of the add-ons and the validation buttons, then the field browser and the rule browser. The first button stands on the far right, each further one to its left; when the row is full, a new one begins above it. At the very bottom, Reset stands alone. Above the drop area is the Settings button, as soon as an add-on brings its own settings; it opens the settings dialog (chapter 5). In version 2.36.0 no add-on brings its own settings yet, so the button does not appear yet.
screenshots/viewer-werkzeugleiste.en.pngThe toolbar above the invoice with the switches "Show BT codes" and "Only filled fields" the "Reset" button and below it the tabs "INVOICE" and "XML".The tabs. Below the toolbar stand the tabs. INVOICE shows the invoice and is open after loading. XML shows the invoice the way the validators do: one row per element with its position, its name, its BT number and its value. The search field above it keeps only the rows whose name, value or BT number contains the term, and the switch BT numbers hides the numbers. PDF appears for a PDF invoice and for an XML invoice with an embedded PDF. It shows the pages as pictures, with a button to save the file. If there are several PDFs, a list above the pages chooses which one you see; the PDF the invoice came in stands first. Every add-on that shows a result gets a tab of its own, for example a validation report or the Inbound Check. The tab opens when you click the add-on's button; a second click opens it again without running the add-on a second time. A new invoice and Reset close the tabs of the add-ons.
screenshots/viewer-reiter-xml.en.pngThe tab "XML": the search, the switch "BT numbers" and the first rows of the invoice, each with its position, element name, BT number and value.4.3 Showing and hiding BT numbers
Each field of the standard has a number, for example BT-1 for the invoice number. The switch Show BT codes shows and hides the numbers immediately. Whether the numbers are already visible when an invoice is opened is set in the plugin by the settings page or the shortcode (chapter 13).
screenshots/viewer-bt-nummern.en.pngThe same invoice with BT and BG numbers shown.When you move the mouse over a number, you see the name and a short description of the field in the wording of the specification, in German, English or French. An add-on can place a second small badge next to the number, for example the name of the code list a code comes from.
screenshots/viewer-tooltip.en.pngThe mouse pointer rests on a BT number; the tooltip shows name and description.4.4 Showing only filled fields
By default the Viewer shows every field the standard provides. This way you see what this invoice has left out. The switch Only filled fields hides the empty ones; an empty subgroup disappears together with its heading. A marked field always remains visible. If the Extended Profiles add-on is installed, the switch Only filled BT-X fields is added; it is switched on in advance and hides empty fields of the extension.
4.5 Understanding notices
The Viewer gives two kinds of notices. Both are marked red and carry a line with the explanation. The value from the invoice always remains unchanged.
| Notice | What is checked | Example |
|---|---|---|
| Amount does not add up | the net amount of each line, the taxable amount and tax amount of each VAT category and the totals up to the amount due | "Stated 39.62 EUR, calculated 37.62 EUR." |
| Rule from the invoice violated | missing mandatory fields, the rules of the VAT categories, the order of dates | a due date before the invoice date or a period that ends before its start |
screenshots/viewer-rechenhinweis.en.pngThe VAT breakdown with a red-marked amount and the line "Stated …, calculated …".screenshots/viewer-hinweis-pflichtfeld.en.pngA red-marked field with the line "Missing, although EN 16931 requires this field here".Caution: This is not a complete validation. The yellow box above the invoice says what the Viewer checks: the mandatory fields, the rules of the VAT categories, the order of dates and whether the totals add up. Only a validator checks all rules of the specification. An invoice without a red mark is therefore not automatically valid. The check digit of an IBAN is not checked by the Viewer but by the Identifier Check add-on.
4.6 Viewing and saving attachments
Below the invoice is the section Attachments with identifier, description, file name, type and size of each attachment. You can view a PDF or an image in place. PDF, PNG, JPEG, CSV, XLSX and ODS can be saved; the Viewer first checks whether the content matches the stated type. An attachment that the invoice only refers to appears as a link.
screenshots/viewer-anlagen.en.pngThe totals and below them the section "Attachments" with an opened PDF attachment.4.7 Language
The Viewer speaks German, English and French. In the plugin the view follows the language of the page: the language of the logged-in user, otherwise the language of the website; any other language falls back to English. There is deliberately no language switch on a WordPress page. In the app the language of the browser applies; at the top right there are three boxes DE · EN · FR for switching (chapter 12).
Numbers and dates follow the language: German writes 5.900,00 EUR and 01.12.2017, English 5,900.00 EUR and 2017-12-01, French 5 900,00 EUR. If a translation is missing, the English text appears throughout.
5 · Settings
There are three levels of settings.
The switches of the toolbar apply to the opened invoice and are the same in plugin and app: Show BT codes, Only filled fields and, with Extended Profiles, Only filled BT-X fields (chapter 4).
The settings dialog opens via the Settings button above the drop area. It appears as soon as an add-on with its own settings is present, and each add-on can have its own section in it; in version 2.36.0 none does yet. At the bottom of the dialog are the buttons Save, Close, Save as file and Load from file. What is in there is described in the manual of the respective add-on. Where the settings are stored differs: in the app the browser stores them, and a backup file takes them along (chapter 12). In the plugin they are stored on the website, with permissions per section (chapter 13).
screenshots/viewer-einstellungen.en.pngThe settings dialog of the Viewer with a section of an add-on and the buttons for saving and loading.The operator's settings determine how the Viewer runs on a website or in a folder: in the app the file config.js (chapter 12), in the plugin the settings page and the attributes of the shortcode (chapter 13).
6 · Special cases
6.1 The Viewer in a narrow column
The Viewer follows the space it is placed in, not the window. Below 720 pixels of width the two columns become one; below 420 the label moves above its value. In a sidebar it therefore behaves as on a phone.
6.2 An invoice with an extended profile
The Viewer opens an invoice according to ZUGFeRD/Factur-X EXTENDED, XRechnung Extension or EXTENDED-CTC-FR like any other and shows its core fields completely. Below the invoice is a notice that it uses an extension. The additional fields are shown by the "Extended Profiles" add-on.
6.3 Operation without internet or behind a firewall
You do not have to configure anything for this. Fonts, field catalogue, language texts and PDF library are part of the package. The plugin loads them from your own website; the app loads them from its folder and, with the default fontsLocal: true, makes not a single request to the outside, not even a failing one.
6.4 The shortcode appears as text
The shortcode is called [spev_einvoice_viewer]. A page that still contains the former name [einvoice_viewer] shows the square brackets as text. Edit the page once and insert the new name.
7 · Working with other packages
Each add-on works through its presence: if it is installed, its function appears in the same view and in the same toolbar. If it is removed, it is gone again. The file is not read a second time for this. If an add-on has its own settings, it gets a section in the settings dialog (chapter 5).
| Add-on | What is added in the Viewer | Price | Delivery form |
|---|---|---|---|
| Extended Profiles | the fields of ZUGFeRD/Factur-X EXTENDED, XRechnung Extension and EXTENDED-CTC-FR | paid product | plugin and app |
| Technical Details | cardinality, data type and path in the tooltip; field, rule and reference browser | paid product | plugin |
| Visualizer | the invoice as a document in five layouts, in the plugin as PDF on request, in the app through the print dialog | paid product | plugin and app |
| Identifier Check | checks identifiers such as VAT ID, IBAN, BIC and GLN | paid product | plugin and app |
| Inbound Check | plausibility questions of accounts payable | paid product | plugin and app |
| EPC QR Code | the payment code to scan with a banking app | paid product | plugin and app |
| Hybrid Check | compares the visible document of a ZUGFeRD invoice with the invoice data | paid product | plugin and app |
| Editor | edit the displayed invoice and save it as XML | paid product | plugin and app |
| Exporter | transfers the invoice into an Excel file | paid product | plugin |
| eInvoice Validator for KoSIT | a button validates the displayed invoice with your own KoSIT Validator | free | plugin |
| eInvoice Validator for Mustang | its own validation button next to the KoSIT button | free | plugin |
| eInvoice Validator for VAMPIRE | its own validation button next to the KoSIT button | free | plugin |
In the app an add-on is a separate package from the shop. You place its content in the folder of the app; there is no key. The app has the add-ons marked "plugin and app" in the table. Technical Details, the Exporter and the validation buttons of the validators exist only for the WordPress plugin (chapters 12 and 13).
8 · If something does not work
| What you see | Why it happens | What to do |
|---|---|---|
| The Viewer reports: "This PDF contains no invoice XML. A scanned or ordinary invoice PDF carries no data that can be evaluated." | The PDF is a scan or an ordinary PDF without embedded XML. | Ask the sender for a ZUGFeRD PDF or the XML file. |
| The Viewer reports: "The file is too large." (plugin) | It is larger than the configured limit (default 8 MB). | Increase the setting "Maximum file size (MB)" (chapter 13). |
| The Viewer reports: "You have reached the daily limit of invoices. Please try again tomorrow." (plugin) | The limit "Invoices per day" for your role or for guests is reached. | Continue the next day, or the operator raises the limit (section 13.3). |
The page shows [einvoice_viewer] as text. (plugin) | The former name of the shortcode. | Replace it with [spev_einvoice_viewer] (chapter 6.4). |
| The Viewer reports: "This invoice uses the extension %s. All core fields are shown; the additional fields of the extension come with the Extended Profiles add-on." | The fields of the extensions are shown only by the "Extended Profiles" add-on. | Install the add-on or work with the core fields. |
| The embedded view has no colours or no field texts. (app) | The attribute data-base on the element does not point to the package folder, or the folder is incomplete. | Point data-base to the folder of the app (chapter 12). |
| The view appears in a different font. (app) | The file assets/css/fonts.css is missing from the head of the page, or the folder with the fonts is missing. | This is not an error; if you want the fonts of the kit, include fonts.css. |
| After an update the app looks as before. (app) | The browser shows the version from its cache. | Reload with Ctrl + F5. |
9 · Privacy and security
- The invoice does not leave the device. It is read in the browser. There is no temporary file, no entry in the media library and no row in the database.
- Fonts, field catalogue and PDF library are part of the package and are loaded from your own website or from the app's own folder.
- A link from the invoice only leads to another server when someone clicks it, and appears only if it begins with
http:orhttps:. - Every value from the invoice is escaped before it appears on the page.
- In the plugin, before each invoice the Viewer briefly asks the website whether access is still granted; it sends no invoice data in doing so (chapter 13).
- The one-file app (
einvoice-viewer-for-peppol-en16931-one-file.html) is one single file without a folder. It carries English and design kit H. German and French, the code lists, kits A and S, the fonts, the PDF reader and this manual are loaded from invoicePress.de when needed. No invoice goes to the server, only the request for the file with your IP address. Without internet the app shows English, uses a similar system font, shows only the number for some codes and shows no PDF pages; it still reads the invoice itself. You choose the kit withdesignKitin the settings, which in the one-file app stand as a block at the top of the HTML file; a text editor is enough for that. - The add-ons as a single file carry English only as well. When their folder from the ZIP does not lie next to them, they fetch the texts of the chosen language from invoicePress.de. VAMPIRE JS and Extended Profiles also fetch their rule and data packages from there. No invoice goes to the server, only the request for the file with your IP address. Whoever wants to work without internet takes the folder app and unpacks the add-ons completely.
Caution: Some add-ons change this. The eInvoice Validators for KoSIT, Mustang and VAMPIRE send the invoice to the validator you configure. Exporter, Visualizer, Identifier Check and Inbound Check send the invoice or data read from it to your own WordPress website. Each add-on says so in its own manual.
10 · For developers
The invoice is read in the browser. Code that needs the invoice data talks to the element <einvoice-viewer> on the page.
const viewer = document.querySelector( 'einvoice-viewer' );
viewer.model; // the structured invoice model, or null
viewer.rawXml; // the XML that was read
viewer.syntax; // 'cii' | 'ubl' | null
viewer.file; // the dropped file
viewer.identifiers; // the identifiers found in the document| Event | When it occurs |
|---|---|
einvoice-model-ready | A document has been read and the model has been built. |
einvoice-language-changed | The language has changed and the view has been redrawn. |
einvoice-reset | The visitor has reset. |
All three events bubble up to the document. An add-on extends the invoice model and the tooltips via the hooks extendModel and extendTooltip.
The interface of the element carries number 4 in this version (API = 4). New are addBadge() for a second small badge next to the field number, addSettingsSection() for an own section in the settings dialog, getSettings() for reading the stored values and openSettings() for opening the dialog. With requireViewerApi() from require-api.mjs an add-on checks whether the required interface is present.
| Filter, action or route in PHP | Purpose |
|---|---|
spev_force_enqueue | loads the Viewer's scripts and styles also on a page without the shortcode |
spev_register_settings | lets an add-on create its own section on the settings page |
einvoice_design_kit | sets the design kit of all eInvoice tools in code |
GET/PUT …/settings/<id>, export, import | the REST routes through which the settings dialog in the plugin reads, writes, saves and loads; a write attempt based on an outdated state is rejected with 409 |
The complete description of the interface is in the developer documentation.
11 · Versions
| Delivery form | Version | Licence |
|---|---|---|
| WordPress plugin | 2.38.0 | GPL-2.0-or-later |
| App | 2.38.0 | GPL-2.0-or-later |
Since 2.36.0 plugin and app carry the same version number; the app therefore jumps from 1.11.0 to 2.36.0. The plugin is tested up to WordPress 7.1.
In 2.38.1 the tab XML shows the invoice the way the validators do, and the tab PDF also shows a PDF embedded in the XML. New in 2.38.0 are the tabs Invoice, XML and PDF with one tab per add-on, and switches in the shortcode for single buttons. New in 2.36.0 were the Settings button with the settings dialog, the version of the format in the line above the invoice, the embedding of the app in three lines, the loading of the app's add-ons from a list, the common folder name and the manual in the package.
Included is the library Mozilla pdf.js under the Apache License 2.0. The fonts Inter, JetBrains Mono and Space Grotesk are under the SIL Open Font License. The changes per version are listed in the file readme.txt of the plugin and in the file CHANGELOG.md of the app. The manual is in the package in the folder manual.
12 · As an app
12.1 Folder and start file
The app is the folder einvoice-viewer-for-peppol-en16931. It contains the start page einvoice-viewer-for-peppol-en16931.html, the script einvoice-viewer.js, the file config.js, the folders assets/ (fonts, stylesheets, pdf.js), data/ (field catalogues), i18n/ (language texts), addons/ (add-ons), examples/ (examples for embedding) and manual/ (this manual).
Note: The start page einvoice-viewer-for-peppol-en16931.html carries the catalogue files embedded so that it works when double-clicked from the hard disk, where a browser may not load neighbouring files. Embedding in a page on a web server does not need these embedded files; it loads everything from the folder.
The language follows the browser. At the top right there are three boxes DE · EN · FR for switching. The browser remembers the choice under the key einvoice-viewer-lang; it applies again the next time the app is opened.
12.2 The file config.js
The operator's settings are in a single file in the folder: config.js. Open it with a text editor. Data always comes from the folder data/ and never from the network.
Note: Of the six keys, two have an effect in this version: fontsLocal for the start page einvoice-viewer-for-peppol-en16931.html and lang for the embedding in a page of your own (section 12.3). The others are in the file and are described there, but are not evaluated.
| Key | Default | Effect |
|---|---|---|
fontsLocal | true | Applies to the start page. true loads the fonts from the folder assets/fonts/. false loads them from Google Fonts; the IP address of the computer then goes to Google, but no invoice does. When embedding, your page includes the fonts itself. |
lang | empty | Applies when embedding with data-base: de, en or fr sets the language, empty means the language of the browser. A choice the visitor made and an attribute data-lang on the element take precedence. The start page follows the remembered choice, otherwise the browser. |
dataSource | local | No effect in this version; the app only ever reads the folder data/. |
onlineUpdates | false | No effect in this version. |
serviceUrl | empty | No effect in this version. |
allowedProfiles | empty | No effect in this version. |
12.3 Embedding the Viewer in an existing page
If the folder of the app is on a web server, you embed the Viewer in an existing page with three lines. The file examples/embed.html in the folder shows this completely.
<!-- 1 of 3: the fonts, in the head of the page -->
<link rel="stylesheet" href="/path/to/package-folder/assets/css/fonts.css">
<!-- 2 of 3: the element, where the Viewer is to appear -->
<einvoice-viewer data-base="/path/to/package-folder/"></einvoice-viewer>
<!-- 3 of 3: the script -->
<script src="/path/to/package-folder/einvoice-viewer.js"></script>The attribute data-base is the address of the package folder on your server. From it the element reads the file config.js, the data packages, the language texts, the stylesheets and pdf.js. An attribute on the element takes precedence over the value from config.js. The stylesheet of the fonts belongs in the head of the page, because a font rule only works in the document, never inside the element; without it the view appears in system fonts. The view grows with its content. The design of your page does not affect the Viewer, and its design does not affect your page.
screenshots/viewer-einbettung.en.pngThe Viewer as an element in a third-party page with its own design.If your page does not allow its own script, show the start page in a frame. The file examples/embed-iframe.html shows this; the frame has a fixed height.
<iframe src="/path/to/package-folder/einvoice-viewer-for-peppol-en16931.html"
style="width:100%;height:900px;border:0"
title="eInvoice Viewer for PEPPOL & EN16931"></iframe>12.4 Add-ons
An add-on is a separate package from the shop. Unpack its content into the folder of the app; there is no key. The app loads its add-ons from a list in the folder addons. For the app, this version offers the Extended Profiles add-on.
The buttons Validate with KoSIT and Validate with Mustang do not come from the shop from version 2.39.1, but with the free apps "eInvoice Validator for KoSIT" and "eInvoice Validator for Mustang". Put their file einvoice-validator-for-kosit-viewer.js or einvoice-validator-for-mustang-viewer.js next to the app, or unpack the ZIP of the validator app into the folder of the app. The invoice then goes to the Validator Bridge whose address stands in config.js under bridgeUrl, and the report appears in a tab of its own. How the bridge is set up is described in the manual of the validator app.
12.5 Settings in the browser and backup file
As soon as an add-on with its own settings is in the folder, the Settings button appears above the drop area; in version 2.36.0 no add-on brings its own settings yet. The values you set in the dialog and confirm with Save are stored by the browser on this computer; they apply again the next time the app is opened. With Save as file the Viewer writes them to a JSON file, with Load from file it reads such a file back in. This is how you take your settings to another computer or into another browser.
Tip: Save the settings to a file before you change browsers or delete the browser's site data; otherwise the browser storage is lost.
12.6 Printing
The folder contains assets/css/kit-print.css; it is not included by default. It sets up the page for paper: white background, no toolbar. To use it, add the following in the head of einvoice-viewer-for-peppol-en16931.html after the kit:
<link rel="stylesheet" href="assets/css/kit-print.css" media="print">12.7 Updating
Note: Up to version 1.11.0 the folder was called einvoice-viewer and the start file einvoice-viewer.html. Since 2.36.0 both carry the name of the product: the folder einvoice-viewer-for-peppol-en16931 and the start file einvoice-viewer-for-peppol-en16931.html. If you update from there, place the new folder and adjust links, frames and data-base attributes.
12.8 SharePoint
SharePoint Online does not execute HTML files from document libraries but offers them for download. This is how it works anyway:
13 · As a WordPress plugin
13.1 The shortcode and its attributes
[spev_einvoice_viewer]
[spev_einvoice_viewer bt="1"]
[spev_einvoice_viewer bt="0" lite="1"]| Attribute | Values | Effect |
|---|---|---|
bt | 1 or 0 | Whether the BT numbers are visible from the start. For this page the attribute takes precedence over the setting. |
lite | 1 or 0 | Whether the view starts with only the filled fields. |
Instead of 1, true, yes and on are also accepted.
Switching single buttons off. Every button and the tabs XML and PDF can be switched off for one page with the value no:
[spev_einvoice_viewer button_spev_rulebrowser="no" tab_spev_pdf="no"]Without the attribute every button stays. Instead of no, 0, false and off are also accepted. The name of a switch is the name of the button in the page code with underscores and button_ in front, so a later add-on brings its switch by the same rule.
A second rule applies to the tabs. Every tab of an add-on can be switched off with tab_ and its id, with hyphens turned into underscores. This also holds for a tab that a later add-on brings.
| Switch | Button or tab |
|---|---|
button_spev_kosit | Validate with KoSIT |
button_spev_mustang | Validate with Mustang |
button_spev_vampire | Validate with VAMPIRE |
button_spev_export | Export to Excel |
button_spev_identifier_check | Check identifiers online |
button_spev_fieldbrowser | Field Browser |
button_spev_rulebrowser | Rule Browser |
button_spev_visualizer | Visualizer |
button_spev_visualizer_pdf | Download as PDF |
button_spiv_inbound | Inbound Check |
button_speq | the tab "Transfer code" ( it has no button since the add-on 1.2.0 ) |
button_sped | Edit invoice |
tab_sphc | Hybrid Check ( it has no button and checks by itself ) |
tab_spev_xml | the tab "XML" |
tab_spev_pdf | the tab "PDF" |
tab_kosit, tab_mustang, tab_vampire | the tabs of the validation reports; the report then stands above the invoice |
tab_identifier_check | the tab "Identifier Check" |
button_spic_annotate | the red mark of the Identifier Check at the field; the tab stays |
tab_transfer_code | the tab "Transfer code", like button_speq |
tab_inbound_check | the tab "Inbound Check"; the marks at the fields stay |
tab_hybrid_check | the tab "Hybrid Check", like tab_sphc |
tab_editor | the tab "Edit invoice"; the editor then opens in a window over the page |
button_svtd_tooltips | the extended tooltips of Technical Details |
button_svze_fields | the fields of the Extended Profiles; the invoice looks as in the free viewer |
With button_spiv_inbound="no" the button "Supplier list" next to "Settings" goes as well.
Note: A switch only takes a button off this page. Who may use an add-on at all is set with "Available from role" (section 13.3).
13.2 The settings page
The settings are under eInvoice Viewer → Viewer. The menu entry has this name in every language. It gathers the viewer and the add-ons with a page of their own, such as the Inbound Check.
| Setting | Default | Effect |
|---|---|---|
| Maximum file size (MB) | 8 | The Viewer rejects a larger file before reading it. The check happens in the browser, because the file never reaches the server. |
| Show BT numbers by default | off | Whether the numbers are visible when an invoice is opened. The visitor can switch them at any time. |
| Design kit | Kit H | The design. Kit H is the standard design; Kit A is plainer and uses the system fonts. The choice applies to all eInvoice tools of the website. |
An add-on can create its own section on this page; what is in there is described in its manual.
13.3 Access and limits
The second section of the settings page determines who may use the Viewer how often and from which role each add-on is available. Administrators are never limited.
| Setting | Default | Effect |
|---|---|---|
| Invoices per day, one row for guests and one for each role of the website | empty | Per calendar day. Empty means unlimited, 0 means no access. Logged-in users are counted per user, guests per IP address; whoever has several roles gets the most generous value. The invoice is still read in the browser; before each invoice the Viewer only briefly asks the server whether access is still granted and sends no invoice data in doing so. |
| Count guests via X-Forwarded-For | off | Switch on only behind a reverse proxy or CDN; otherwise a visitor could choose their own counter. |
| Available from role, per installed add-on | Everyone, including guests | The options are: Everyone, including guests; from Subscriber; from Contributor; from Author; from Editor; Administrators only. Below the chosen role the Viewer behaves as if the add-on were not installed: no button, no fields, no requests. |
13.4 Settings on the website
In the plugin the values of the settings dialog are not stored in the visitor's browser but in the database of the website; all visitors see the same settings. Each section belongs to an add-on, and the add-on determines who may read it and who may change it. Guests can read but not write. Each save creates a new revision; if a save is based on an outdated state because someone else has saved in the meantime, the website rejects it. In the plugin, too, the settings can be written to a backup file and loaded from it.
13.5 Validation buttons
If the eInvoice Validator for KoSIT, the eInvoice Validator for Mustang or the eInvoice Validator for VAMPIRE is installed on the website, the toolbar shows a separate validation button for each of them, for example Validate with KoSIT. The button sends the displayed invoice to the validation engine you have configured there; the validation report appears on the same page under a blue title bar "Validation report".
- The report appears in a tab of its own, which opens by itself: KoSIT Validator, Mustang Validator or VAMPIRE Validator. The buttons Download report.xml and, for KoSIT and VAMPIRE, Download report.html stand at the top right of that tab.
- A second click on the validation button opens the tab again without sending the invoice a second time.
- Reset removes invoice and reports.
Whether and from which role a button appears is governed by "Available from role" (section 13.3).
13.6 Storage
The Viewer itself stores no invoice: it never reaches the server. Only the values of the settings page and the sections of the settings dialog are stored on the website. Add-ons that send an invoice to the website say so in their own manual.
13.7 Manual
The manual is in the package in the folder manual, in German as manual/manual.de.html and in English as manual/manual.en.html.
14 · 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 viewer-beleg.en.png. The images show sample data only.
| Status | File | What it shows |
|---|---|---|
| – | viewer-beleg.en.png | An opened invoice: dark blue document header with the amount due, blue disclaimer, below it the blocks "Invoice data", "Buyer" and "Seller". BT numbers hidden. |
| – | viewer-ablage.en.png | The empty drop area with the text "Drag an e-invoice here or click to choose a file". |
| – | viewer-werkzeugleiste.en.png | The toolbar above the invoice with the switches "Show BT codes" and "Only filled fields" the "Reset" button and below it the tabs "INVOICE" and "XML". |
| – | viewer-reiter-xml.en.png | The tab "XML": the search, the switch "BT numbers" and the first rows of the invoice, each with its position, element name, BT number and value. |
| – | viewer-bt-nummern.en.png | The same invoice with BT and BG numbers shown. |
| – | viewer-tooltip.en.png | The mouse pointer rests on a BT number; the tooltip shows name and description. |
| – | viewer-rechenhinweis.en.png | The VAT breakdown with a red-marked amount and the line "Stated …, calculated …". |
| – | viewer-hinweis-pflichtfeld.en.png | A red-marked field with the line "Missing, although EN 16931 requires this field here". |
| – | viewer-anlagen.en.png | The totals and below them the section "Attachments" with an opened PDF attachment. |
| – | viewer-einstellungen.en.png | The settings dialog of the Viewer with a section of an add-on and the buttons for saving and loading. |
| – | viewer-einbettung.en.png | The Viewer as an element in a third-party page with its own design. |