eInvoice Validation Explorer for VAMPIRE – Manual
1 · Overview
eInvoice Validation Explorer for VAMPIRE reads a validation report that VAMPIRE PHP or VAMPIRE JS has already written and explains this report in plain sentences. Every finding is mapped to its EN 16931 business term, shown with the actual value from the invoice and highlighted in a view of the document.
It comes in two forms that are one product: as a WordPress plugin, which shows the drop fields on a page of your website, and as an app, that is, a folder with an HTML file that runs in the browser without a server. Both show the same report in the same way and carry the same version number. Chapters 1 to 11 describe both together; where plugin and app differ, a sentence points to chapter 12 "As an app" or chapter 13 "As a WordPress plugin".
The explorer is meant for everyone who has a validation report of VAMPIRE in front of them and wants to know which field of the invoice is meant: accounting staff who want to send a rejected invoice back to the supplier, service providers who explain a result to their customers, and developers who correct an invoice output.
What it can do
- It reads both forms of report of VAMPIRE: the JSON report together with the invoice in CII or UBL that this report judged, and the XML report in the format of the KoSIT validator, which already contains the invoice.
- It assigns every finding to its EN 16931 business term and shows the value the invoice actually holds at that place.
- Below the findings it shows a document view with the elements of the invoice, their values and their BT numbers.
- A click on a finding leads to its place in the document view; the row lights up briefly.
- The switch "BT numbers" shows and hides the numbers, the switch "findings only" shows only the rows with errors and warnings, and a search box searches the document view.
- It explains the findings with a bundled catalogue of 14 rule sets with 8,604 rules and 311 fields of EN 16931 in total, among them EN 16931 in CII and UBL, XRechnung, Peppol BIS Billing 3, Factur-X EN16931, the French Flux 2 rules and the country adaptations for Portugal, Romania, Croatia, Belgium and Italy. Three further rule sets with 3,190 rules, Factur-X EXTENDED and EXTENDED-CTC-FR in CII and UBL, it explains only with the "Extended Profiles" add-on.
- For a finding that concerns an attachment of the invoice, it names that attachment, for example "Attachment: Aufmass.pdf".
- It works in German, English and French.
What it cannot do
- It does not validate an invoice. The verdict comes from the validator; the explorer reports and explains it.
- It contains no validator. You must already have the validation report.
- It does not manage with the JSON report alone. The JSON report does not contain the document; it only names paths. Without the invoice the document view stays empty.
- It is built for reports of VAMPIRE. The KoSIT validator and Mustang have explorers of their own.
- It accepts JSON and XML files only. A PDF, not even a ZUGFeRD PDF, can be dropped.
- It corrects nothing, writes no invoice and stores neither reports nor invoices.
In which form it comes
| Form | Source | Requirement | How to use it |
|---|---|---|---|
| WordPress plugin | paid product, ZIP file from the shop on invoicePress.de | WordPress 6.0 or later, PHP 7.4 or later | put the shortcode [spxv_validation_report] on a page |
| App | paid product, ZIP file from the shop on invoicePress.de | a current browser with JavaScript switched on | place the folder and open einvoice-validation-explorer-for-vampire.html |
In both forms you need the report VAMPIRE wrote. The JSON report needs the CII or UBL invoice as an XML file that this report judged; the XML report brings it along.
screenshots/xv-bericht.en.pngThe explained validation report: at the top the findings in plain language with BT number and value, below them the document view of the invoice2 · Installation
As a WordPress plugin
There is nothing to configure to start; the catalogues of rules and fields are inside the plugin. This package is not available through wordpress.org. Settings, updating and removing are described in chapter 13.
As an app
The app is not installed, only placed. It needs no server and, as delivered, loads nothing from the internet. The content of the folder, the settings and updating are described in chapter 12.
3 · First steps
screenshots/xv-ablage.en.pngThe page with the shortcode: two labelled drop fields, one for the validation report and one for the invoice4 · Working with the Validation Explorer
Handing over the report and the invoice
The JSON report of VAMPIRE does not contain the invoice. It names the locations only as paths. That is why the explorer needs both files with a JSON report. The XML report contains the invoice; it is enough on its own, and an invoice handed over in addition is ignored, so that the view always shows the document the validator saw. You can drag a file in, click the drop area, or move to it with the Tab key and open it with Enter or Space.
In the plugin the page has two drop fields, and each is labelled. A filled field shows the file name. As long as one of the two files is missing, nothing is sent, and the page says which file is still missing: "Report received. The invoice is still missing." An incomplete attempt therefore costs no upload from the daily allowance. The order is free.
screenshots/xv-ablage-halb.en.pngThe first drop field is filled and shows the file name; below it the note that the invoice is still missingIn the app there is one drop zone for both files. The app tells the files apart not by their names but by their content: what it recognises as a report of VAMPIRE is the report, the other file is the invoice. You can hand over both files at once or one after the other, also from the clipboard; a new file replaces the previous one of the same kind. A line below the drop zone names the report and the invoice; a missing part is marked with a dash. If you hand over only a JSON report, the box "The validated invoice is missing." appears with the button Add invoice. That is not an error message; only the second file is missing.
screenshots/xva-rechnung-fehlt.en.pngThe note box "The validated invoice is missing." with the button "Add invoice" above a report view without a documentReading the explained report
As soon as both files are there, the explorer reads the report and attaches the invoice to it. In the plugin this happens on your website, in the app in the browser; what that means for privacy is described in chapter 9. Then the validator's findings appear. Every finding is assigned to its EN 16931 business term and shows the value the invoice actually holds at that place. If a finding concerns an attachment, the name of that attachment stands below its fields.
screenshots/xv-befund.en.pngA single finding close up: plain-language explanation, BT number of the field concerned and the value from the invoiceJumping to the place in the document
Below the findings is the document view. It lists the elements of the invoice with name, value and BT number. A click on a finding's link scrolls the view smoothly to the row concerned and puts it in the middle. The row stays highlighted for a moment so that you find it at once.
screenshots/xv-sprung.en.pngThe document view after a click on a finding: the row concerned is in the middle and highlightedShowing and hiding BT numbers
Above the document view is the switch "BT numbers". When it is on, every element carries its number from EN 16931. When it is off, the numbers disappear and the view becomes calmer. In the app the switch is on when a report opens. In the plugin the setting "Show BT numbers by default" and the shortcode attribute bt decide how it stands when the report opens (chapter 13).
Showing findings only and searching the document
The switch "findings only" limits the document view to the rows that carry an error or a warning. The search box with the placeholder "Search BT field, element name or value …" searches the document view while you type. It searches the element name, its value and its BT number; upper and lower case do not matter. Matches are marked, all other rows are hidden. The search and "findings only" work together: if both are active, you see only rows with a finding that also match the search term.
screenshots/xv-filter.en.pngThe document view with the switch "findings only" on and a search term in the search box; the matches are markedThe box "Not placed"
Some messages point to no place in the document, for example because they concern the schema and not a single element. These messages stand in a box of their own at the end, with their number in the heading. Every row names the rule ID or "without a rule ID", the reason why it could not be placed and, if present, the path from the report.
screenshots/xva-nicht-zugeordnet.en.pngThe box "Not placed (1)" with rule ID, reason and pathThe language
In the plugin the interface follows the language of the page. The app has a language choice at the top right with German, English and French; it starts in the language chosen last, otherwise in the language of the browser, and a change also switches the open report. Numbers and dates follow the language. If a translation is missing, the English original appears.
Note: The language of the interface and the language of the rule texts are two different things. German rule texts exist only for XRechnung. A German interface above an English rule text is therefore correct, and the view says so.
Resetting
As soon as a report is open, the button Reset appears. It clears the drop area and removes the report view and all notes. Report and invoice are then gone, because the explorer does not store them.
5 · Settings
In the report itself the explorer has only the search and the two switches from chapter 4. Everything else is set by the operator, and the two forms keep these settings in different places:
- In the app the settings are in the file
config.jsin the folder of the app. There you decide whether the page may load anything from the internet (chapter 12). - In the plugin they are in WordPress under eInvoice Validation Explorer → VAMPIRE. There you set the daily limit per role, the largest file, the default of the BT numbers and the design kit (chapter 13).
6 · Special cases
You handed over an invoice that does not belong to the report. The explorer does not reject the attempt. It shows all findings and above them a note that the invoice could not be matched to the report, or it lists the messages under "Not placed". Check whether it really is the file the validator judged, and hand over both files again.
screenshots/xv-kein-beleg.en.pngA report with an invoice that does not belong to it: the findings are all there, but their fields say "not present in the document"You only have the report. The explorer still reads it completely and shows the messages. The document view stays empty.
You checked an invoice in the EXTENDED profile. Without the "Extended Profiles" add-on, a finding on a rule of the extension shows the ID and the validator's message, and a note says what the add-on would add. With the add-on, the fields and rules of the extension appear. How the add-on reaches the app or the plugin is described in chapter 12 and chapter 13.
You want to show the report once for experts and once for accounting. In the plugin, put [spxv_validation_report bt="0"] on the page for accounting and [spxv_validation_report bt="1"] on the page for experts. In the app the reader hides the BT numbers with the switch.
You want to rule out every request to the outside. Use the app with its default settings; it then makes no request at all (chapter 12). The plugin makes no request to third parties anyway (chapter 9).
You want to pass the tool on. Pass on the whole folder of the app, for example as a ZIP. The recipient unpacks it and opens the start file; nothing needs to be installed.
7 · Working with other packages
The explorer works on its own. The following packages are optional.
| Package | What working together means |
|---|---|
| VAMPIRE PHP or VAMPIRE JS | It delivers the validation report, as JSON or as XML in the format of the KoSIT validator. |
| eInvoice Validator for VAMPIRE (plugin) | The validator shows its report in the same plain-language view by itself, whether the explorer is installed or not. The explorer is meant for reports that were made elsewhere and exist as a file. There is no automatic hand-over from the validator to the explorer. |
| eInvoice Validation Explorer for KoSIT and for Mustang | The sister tools for the reports of these two validators. As plugins all three may run side by side, each with its own shortcode, settings page and count of uploads. |
| Add-on "Extended Profiles" | The fields and rules of ZUGFeRD / Factur-X EXTENDED, XRechnung Extension and EXTENDED-CTC-FR. |
| all eInvoice tools by invoicePress (plugin) | The choice of design kit is a shared setting. What you choose here applies to all eInvoice tools on the website, and the other way round. |
8 · Troubleshooting
The messages appear in the chosen language. The table gives the English wording. Messages that occur in only one of the two forms are marked "(plugin)" or "(app)".
| Sign | Cause | Remedy |
|---|---|---|
| "A JSON report of VAMPIRE does not carry the invoice. Please add the invoice it judged in the second field." (plugin) | Only a JSON report arrived. | Put the report into the first field and the invoice into the second. |
| "Report received. The invoice is still missing." or "Invoice received. The validation report is still missing." (plugin) | Only one field is filled so far. This is not an error. | Drop the second file. |
| Box "The validated invoice is missing.", the document view is empty (app) | You handed over only a JSON report. | Drag in the checked invoice as well or click Add invoice. |
| A note asking you to drag in the VAMPIRE report as well (app) | The app recognised no report among the files handed over. | Hand over the report VAMPIRE produced, as a JSON or XML file. |
| "This file was not recognised as a validation report. Please upload the report the validator produced in the first field, and the invoice in the second." (plugin) | The first field holds no validation report, for example because the two files were swapped. | Report into the first field, invoice into the second. |
| "Please choose an XML file." (plugin) | The file does not end in .xml, or its content is neither XML nor text. | Drop the XML file, not a PDF or a ZIP file. |
| "The file is too large." (plugin) | The file exceeds the configured size or the server's limit. | Raise "Maximum file size ( MB )" or your server's upload limit. |
| "You have reached the daily upload limit. Please try again tomorrow." (plugin) | The allowance per visitor and day is used up. | Try again the next day, or as the operator raise the role's number (chapter 13). |
| "This tool is not available for your account." (plugin) | The visitor's role has a 0 in "Daily uploads per role". | As the operator, enter a number for this role or empty the field. |
| "Security check failed. Please reload the page." (plugin) | The security token was invalid. | Reload the page and drop the files again. |
| "The upload failed. Please try again." or "The file could not be read." | The transfer broke off, the file is empty, or it could not be opened. | Check the file and hand it over again. |
| Messages stand under "Not placed" | The message points to no place in the document, or the invoice handed over is not the checked one. | Read the reason in the row. Check whether report and invoice belong together. |
| Findings appear in the validator's wording instead of plain language | The rule data are missing. In the plugin a yellow note then appears in the settings; in the app the folder data/ is missing or incomplete. | Reinstall the plugin from the unchanged ZIP file, or restore the folder data/ of the app from the ZIP. |
| The drop fields do not appear on the page, or a click does nothing (plugin) | The plugin's script was not loaded on this page. | Check that the shortcode is in the content; otherwise use the filter spxv_force_enqueue (chapter 10). |
| The view appears without colours and in the default font (plugin) | The style files were not loaded, for example because of an optimisation that rewrites or blocks style sheets. | Exclude the plugin's files from the optimisation. |
| The page uses a different typeface than expected (app) | assets/fonts/ is missing, or fontsLocal is false and Google Fonts cannot be reached. | Restore the folder or set fontsLocal: true. |
| The settings are gone after an update (app) | The new config.js overwrote yours. | Enter your values again from the backup. |
9 · Privacy and security
A validation report and an invoice regularly contain names, addresses, bank details and amounts. Where they go depends on the form.
In the app both files stay in the browser. They are read there and not sent; there is no server that receives them. As delivered, the page makes no request at all. Only when you change something in config.js does it fetch data packages from invoicepress.de or fonts from Google Fonts; the server concerned then learns your IP address for technical reasons, but invoice and report are not sent even then (chapter 12). In the browser the app only remembers the language chosen last.
In the plugin both files go to your own website as soon as both fields are filled. The explanation is created there. The files are read from the temporary upload and processed in memory; they are not moved to the upload directory, and their content is written to no log. They go neither to invoicePress nor to any third-party service; the plugin makes no request to another server and loads no fonts from outside. For the daily limit it keeps a counter per visitor and calendar day: per user for logged-in users, and by a hash of the IP address for anonymous visitors. The counter expires after one day. Only the settings are stored permanently.
Caution: If you offer the plugin publicly, you process the data from report and invoice on your server for the duration of the request. Mention this in your privacy policy.
Security in the plugin. Every upload needs a fresh security token from the server; it is fetched before every send, so a page from a page cache works as well. The server itself checks the extension, content type and size of every file. The settings page is reserved for users who may manage options.
Checking it yourself. Open your browser's network panel and hand over report and invoice. In the app with its default settings no request appears there. In the plugin only the request to your own website appears.
10 · For developers
In the plugin
| Kind | Name | Meaning |
|---|---|---|
| Shortcode | spxv_validation_report | Tag of the shortcode; stored in the constant SPXV_SHORTCODE. |
| Constants | SPXV_VERSION, SPXV_FILE, SPXV_DIR, SPXV_URL, SPXV_TEXTDOMAIN | Version, main file, folder, URL and text domain of the plugin. |
| Filter | spxv_force_enqueue | Receives true or false and decides whether script and styles are loaded early on the current page. Return true if the shortcode stands outside the page content, for example in a template or a widget. |
| REST address | POST /wp-json/einvoice/v1/explain-vampire | Takes the file fields report and invoice and returns html (the finished view) and remaining (uploads left). The address requires a valid security token in the header X-WP-Nonce, which a program fetches beforehand with a POST to admin-ajax.php and action=einvoice_nonce, and it respects the daily limit. |
| AJAX action | spxv_nonce | Returns a fresh security token; also for visitors who are not logged in. |
| AJAX action | spxv_render | Takes nonce, report and invoice and returns the same data as the REST address. |
| Options | spxv_max_filesize_mb, spxv_show_bt, spxv_role_limits, spxv_trust_proxy | Maximum file size in MB (default 8), display of the BT numbers (default on), the table of daily uploads per role (default 10 per role) and proxy header (default off). Until the table is saved for the first time, the earlier single value from spxv_daily_limit applies. The design kit is an option shared by all eInvoice tools. |
| JavaScript | window.EInvoice.register( 'explainer-vampire', … ) | The script registers under the name explainer-vampire in the shared registry and offers the function wireReport there, which wires the switches, search and jump links of a view. |
| Markup | .spxv-host with the attribute data-bt | The element in which the view is created as an open shadow root. Outside code can reach into it through shadowRoot, for example to scroll. |
The server answers errors with a fitting status code: 400 for a missing or unreadable file, 403 for an invalid security token (AJAX), 413 for a file that is too large, 415 for a wrong file type, 422 for an unreadable report and 429 when the daily limit is reached.
add_filter( 'spxv_force_enqueue', '__return_true' );In the app
The app has no hooks, filters or events of its own. It can be configured from outside at these places:
| Place | Kind | Meaning |
|---|---|---|
window.einvoiceConfig | object in config.js | The settings from chapter 12. If the object is missing, fetching data packages from the network is allowed. |
<meta name="einvoice-data" content="…"> | entry in the head of the page | The address of the second data path. If it is missing or empty, https://invoicepress.de/data/v1/ applies. A missing slash at the end is added. The folder data/ next to the page is always asked first. |
globalThis.einvoiceData | directory of data packages | The data packages lie in the package as script files and register themselves here. That is why the page needs no fetching when opened from the hard disk. |
data/protected/ | folder | Place for the script files of the "Extended Profiles" add-on. |
The app's file dialogue accepts .xml, application/xml and text/xml.
11 · Versions
The complete list of changes is in the file CHANGELOG.md in the folder of the plugin and in the folder of the app. Plugin and app carry the same version number.
| Version | Changes |
|---|---|
| 1.0.0 | First version, as a plugin and as an app. |
12 · As an app
12.1 Folder and start file
The app is the folder einvoice-validation-explorer-for-vampire. It must stay complete. It contains:
| Content | Purpose |
|---|---|
einvoice-validation-explorer-for-vampire.html | the start page |
einvoice-validation-explorer-for-vampire.js | the tool itself |
config.js | the settings (section 12.2) |
data/ | the catalogue of rules and fields; without it, field names and plain-language explanations are missing |
i18n/ | the language tables for German, English and French |
assets/ | styles, print style sheet and fonts |
manual/ | this manual as a page, in German and English |
CHANGELOG.md, LICENSE | the changes and the licence text |
The start page runs with a double click from the hard disk, from a USB stick, from a network drive or from a web server. On a network drive you share the path to the start file; nothing needs to be set up on the workstations.
12.2 The file config.js
The app has no settings page. Its settings are in config.js. You open the file with a text editor, change a value, save and reload the page.
| Setting | Default | Effect |
|---|---|---|
dataSource | 'local' | 'local' means: only the folder data/ next to the page, without any request to the outside. 'online' means: invoicepress.de as well, when something newer is there. |
fontsLocal | true | true means: the fonts from assets/fonts/, without a request to the outside. false means: the fonts from Google Fonts, falling back to system fonts. |
lang | '' | Without effect in this version. The page starts in the language chosen last or in that of the browser; you set a fixed language with the language choice, and the browser remembers it. |
onlineUpdates | false | Without effect in this version; only dataSource decides whether anything is asked online. |
serviceUrl | '' | Without effect in this version; the page checks nothing outside the house. |
allowedProfiles | [] | Without effect in this version; the page shows every report. |
Of the six keys, two therefore take effect in this version: dataSource and fontsLocal. If you run the app behind a firewall, leave both at their defaults. 'local' means not online at all, not "later": the page makes not a single request, not even a failing one, because a blocked request would still appear in the proxy's log.
For use on a public page, with fonts from Google Fonts and with a look for newer data on invoicepress.de, change two lines:
dataSource: 'online',
fontsLocal: false,12.3 The add-on "Extended Profiles"
There is neither a switch nor a key for the add-on in config.js. It is a package of its own from the shop. Unpack it into the folder data/protected/ of the app; the page finds it by itself.
12.4 Data status and printing
Above the report view, a small line says what the report was explained with: the recognised profile, the syntax and the names of the data packages used, with their version. If the invoice is there, the app determines the profile from the invoice itself, otherwise from the report.
screenshots/xva-datenstand.en.pngThe data status line with profile, syntax and package names above the report viewWhen printing, the page hides the drop zone, the status line and the footnotes. If you want a view set up specifically for paper, register the included style sheet assets/css/kit-print.css. It sets a white background, hides the toolbar and draws signal edges as lines instead of shadows. To do so, add this line in the <head> of the start file after the existing style sheet:
<link rel="stylesheet" href="assets/css/kit-print.css" media="print">The order matters: the line must come after the existing style sheet, otherwise the screen rules win.
12.5 Fonts
You may delete the folder assets/fonts/ if the folder is to become smaller. The view stays fully styled and then uses system fonts.
12.6 Updating and removing
Caution: A new package brings a fresh config.js. Overwriting it blindly loses your settings.
To remove the app, delete the folder. The app creates no database and writes nothing outside its folder to the disk. In the browser only the language chosen last stays remembered, under the key einvoice.lang.
12.7 Showing it in the viewer
The app brings an add-on for the app "eInvoice Viewer for Peppol EN 16931". With it, the viewer shows a validation report not only as a list. It also puts every message as a card under the field of the invoice it concerns, as the viewer in WordPress does.
If the report belongs to another invoice, the viewer says so and puts no cards. If the viewer has the buttons "Validate with KoSIT", "Validate with Mustang" or "Validate with VAMPIRE", they too show their messages at the fields as long as the folder lies next to the viewer.
Note: For the cards at the fields the viewer reads the rule data from the folder einvoice-validation-explorer-for-vampire/data/. If only the file einvoice-validation-explorer-for-vampire-viewer.js lies next to the viewer, the report appears, but the cards appear only when the viewer can load the rule data from its data address.
13 · As a WordPress plugin
13.1 The shortcode
The two drop fields appear on every page that carries the shortcode [spxv_validation_report], in the language of the page.
| Attribute | Values | Default | Effect |
|---|---|---|---|
bt | 1, true, yes or on switch the BT numbers on; any other value switches them off | the value of the setting "Show BT numbers by default" | Decides for this one page whether the BT numbers are visible when the report opens. |
The shortcode has no further attributes.
[spxv_validation_report]
[spxv_validation_report bt="0"]
[spxv_validation_report bt="yes"]13.2 The settings page
The settings are under eInvoice Validation Explorer → VAMPIRE. The table gives the English labels as they appear on an English site. Above the table the page names the shortcode. If the plugin does not find its rule data, a yellow warning appears there as well.
screenshots/xv-einstellungen.en.pngThe settings page under "eInvoice Validation Explorer → VAMPIRE" with the five fields and the note on the shortcode| Setting | Default | Effect |
|---|---|---|
| Daily uploads per role | 10 for every role | A table with one row for guests ( not logged in ) and one row for every role of the website. Per row: empty means unlimited, 0 means no access, a number means that many reports per calendar day. Logged-in users are counted per user, guests per IP address. A user with several roles gets the most generous value. Administrators are never limited. Until the table is saved for the first time, the earlier single value applies to every role. |
| Maximum file size ( MB ) | 8 | Applies per file, that is to the report and to the invoice separately. Your server's upload limit applies as well; the smaller value counts. |
| Trust proxy header | off | Takes the visitor's IP address from the header X-Forwarded-For. Only switch this on if your website sits behind a reverse proxy you trust. Without this setting, WordPress behind a proxy sees the same address for all visitors, and all anonymous visitors share one daily allowance. |
| Show BT numbers by default | on | Decides whether the BT numbers are visible when the report opens. Visitors can switch this in the report at any time. |
| Design kit | Kit H | Chooses the design of the view. The choice applies to all eInvoice tools on this website, not only to this plugin. |
13.3 The remaining uploads
Below the drop fields stands how many uploads the visitor has left today. The number is updated after every explained report. Only a report that was actually explained counts; a rejected or incomplete attempt does not. If a role's row is empty, there is no limit for it, and the line with the remaining uploads does not appear.
13.4 The add-on "Extended Profiles"
The add-on "eInvoice Viewer – Extended Profiles" is a plugin of its own. It requires the plugin "eInvoice Viewer for PEPPOL & EN16931". When both are active, the explorer also explains the rules of the extensions.
13.5 Updating and removing
Upload the new ZIP file from the shop under Plugins → Add New Plugin → Upload Plugin and confirm that WordPress should replace the existing version. Your settings are in the database and are kept. WordPress does not report a new version by itself, because the plugin brings no update check of its own.
To remove it, deactivate and delete the plugin under "Plugins" and take the shortcode [spxv_validation_report] off your pages, otherwise it stands there as text. The plugin creates no database table of its own. It does not clean up its settings when deleted; they stay in the database. The counters of the daily limit expire by themselves after one day.
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 xv-bericht.en.png. The images show sample data only.
| Status | File | What it shows |
|---|---|---|
| – | xv-bericht.en.png | The explained validation report: at the top the findings in plain language with BT number and value, below them the document view of the invoice |
| – | xv-ablage.en.png | The page with the shortcode: two labelled drop fields, one for the validation report and one for the invoice |
| – | xv-ablage-halb.en.png | The first drop field is filled and shows the file name; below it the note that the invoice is still missing |
| – | xva-rechnung-fehlt.en.png | The note box "The validated invoice is missing." with the button "Add invoice" above a report view without a document |
| – | xv-befund.en.png | A single finding close up: plain-language explanation, BT number of the field concerned and the value from the invoice |
| – | xv-sprung.en.png | The document view after a click on a finding: the row concerned is in the middle and highlighted |
| – | xv-filter.en.png | The document view with the switch "findings only" on and a search term in the search box; the matches are marked |
| – | xva-nicht-zugeordnet.en.png | The box "Not placed (1)" with rule ID, reason and path |
| – | xv-kein-beleg.en.png | A report with an invoice that does not belong to it: the findings are all there, but their fields say "not present in the document" |
| – | xva-datenstand.en.png | The data status line with profile, syntax and package names above the report view |
| – | xv-einstellungen.en.png | The settings page under "eInvoice Validation Explorer → VAMPIRE" with the five fields and the note on the shortcode |