Manual
eInvoice Validation Explorer for MustangInstall, work, configure
invoicePress / Manuals / eInvoice Validation Explorer for Mustang

eInvoice Validation Explorer for Mustang – Manual

Applies to version 1.7.1 (WordPress plugin and app). As of 25.10.2026.

1 · Overview

eInvoice Validation Explorer for Mustang reads a validation report that the Mustangproject validator has already written, together with the checked invoice, and explains this report in plain sentences. Every finding is assigned 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 Mustang validation report 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 validation result to their customers, and developers who correct an invoice output.

What it can do

  • It takes two XML files: the Mustang validator's report and the invoice in CII or UBL that this report judged.
  • 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 report alone. A Mustang report does not contain the document; it only names paths. Without the invoice the document view stays empty.
  • It does not read reports of the KoSIT validator. eInvoice Validation Explorer for KoSIT is there for those.
  • It accepts 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

FormSourceRequirementHow to use it
WordPress pluginpaid product, ZIP file from the shop on invoicePress.deWordPress 6.0 or later, PHP 7.4 or laterput the shortcode [spxm_validation_report] on a page
Apppaid product, ZIP file from the shop on invoicePress.dea current browser with JavaScript switched onplace the folder and open einvoice-validation-explorer-for-mustang.html

In both forms you need the XML report the Mustangproject validator wrote and the CII or UBL invoice as an XML file that this report judged.

Screenshot missingscreenshots/xm-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 invoice
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

Note: The explorer is an independent tool by invoicePress. It is not a product of the Mustangproject. The Mustangproject publishes the validator, not this reader.

2 · 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

Screenshot missingscreenshots/xm-ablage.en.pngThe page with the shortcode: two labelled drop fields, one for the validation report and one for the invoice
The page with the shortcode: two labelled drop fields, one for the validation report and one for the invoice

4 · Working with the Validation Explorer

Handing over the report and the invoice

A Mustang validation report does not contain the invoice. It names the locations only as paths. That is why the explorer always needs both files. You can drag a file in, click the drop area, or move to it with the Tab key and open it with Enter or the space bar.

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.

Screenshot missingscreenshots/xm-ablage-halb.en.pngThe first drop field is filled and shows the file name; below it the note that the invoice is still missing
The first drop field is filled and shows the file name; below it the note that the invoice is still missing

In 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 Mustang report 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 the 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.

Screenshot missingscreenshots/xma-rechnung-fehlt.en.pngThe note box "The validated invoice is missing." with the button "Add invoice" above a report view without a document
The note box "The validated invoice is missing." with the button "Add invoice" above a report view without a document

Reading 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.

Screenshot missingscreenshots/xm-befund.en.pngA single finding close up: plain-language explanation, BT number of the field concerned and the value from the invoice
A single finding close up: plain-language explanation, BT number of the field concerned and the value from the invoice

Jumping 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.

Screenshot missingscreenshots/xm-sprung.en.pngThe document view after a click on a finding: the row concerned is in the middle and highlighted
The document view after a click on a finding: the row concerned is in the middle and highlighted

Showing 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.

Screenshot missingscreenshots/xm-filter.en.pngThe document view with the switch "findings only" on and a search term in the search box; the matches are marked
The document view with the switch "findings only" on and a search term in the search box; the matches are marked

The 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.

Screenshot missingscreenshots/xma-nicht-zugeordnet.en.pngThe box "Not placed (1)" with rule ID, reason and path
The box "Not placed (1)" with rule ID, reason and path

Repaired character encoding

Mustang declares the encoding UTF-8 in its report but partly writes German message texts in Windows-1252. The explorer recognises this from the file itself, reads the umlauts correctly and puts a note about the repair at the top of the report.

The 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.js in 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 → Mustang. 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.

Screenshot missingscreenshots/xm-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"
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"

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 [spxm_validation_report bt="0"] on the page for accounting and [spxm_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.

PackageWhat working together means
Validator of the MustangprojectIt delivers the validation report. It is not part of the package and comes from another publisher.
eInvoice Validator for Mustang (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 created elsewhere and exist as files. There is no automatic handover from the validator to the explorer.
eInvoice Validation Explorer for KoSITThe sister tool for reports of the KoSIT validator. A KoSIT report carries the document; one file is enough there. As plugins both 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)".

SignCauseRemedy
"Both files are needed: the validation report and the invoice it judged." (plugin)Only one of the two files 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 the report.Drag in the checked invoice as well or click Add invoice.
A note asking you to drag in the Mustang report as well (app)The app recognised no Mustang report among the files handed over.Hand over the report Mustang produced. A KoSIT report belongs in the Validation Explorer for KoSIT.
"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 languageThe 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 spxm_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

KindNameMeaning
Shortcodespxm_validation_reportTag of the shortcode; stored in the constant SPXM_SHORTCODE.
ConstantsSPXM_VERSION, SPXM_FILE, SPXM_DIR, SPXM_URL, SPXM_TEXTDOMAINVersion, main file, folder, URL and text domain of the plugin.
Filterspxm_force_enqueueReceives 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 addressPOST /wp-json/einvoice/v1/explain-mustangTakes 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 actionspxm_nonceReturns a fresh security token; also for visitors who are not logged in.
AJAX actionspxm_renderTakes nonce, report and invoice and returns the same data as the REST address.
Optionsspxm_max_filesize_mb, spxm_show_bt, spxm_role_limits, spxm_trust_proxyMaximum 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 spxm_daily_limit applies. The design kit is an option shared by all eInvoice tools.
JavaScriptwindow.EInvoice.register( 'explainer-mustang', … )The script registers under the name explainer-mustang in the shared registry and offers the function wireReport there, which wires the switches, search and jump links of a view.
Markup.spxm-host with the attribute data-btThe 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( 'spxm_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:

PlaceKindMeaning
window.einvoiceConfigobject in config.jsThe 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 pageThe 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.einvoiceDatadirectory of data packagesThe 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/folderPlace 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. Up to version 1.4.2 of the plugin, the app counted a series of its own from 1.0.0 to 1.4.4; since 1.5.0 both carry the same number.

VersionChanges
1.5.0Plugin: the daily limit can be set per role, with a row of its own for guests; 0 means no access. App: the same version number as the plugin, this manual in the folder manual, and the search and the two switches in the document view work.
1.4.2Plugin: the report view is revised and matches that of the Validation Explorer for KoSIT. A note stands below a machine-translated rule text that has not been reviewed yet. The bundled translations also appear with network-wide activation and under older WordPress versions.
1.4.1Plugin: fonts and corners follow the chosen design kit. The settings page has an address of its own and no longer shares it with the Validation Explorer for KoSIT.
1.4.0Plugin: the rules of ZUGFeRD / Factur-X EXTENDED and EXTENDED-CTC-FR are explained only with the "Extended Profiles" add-on; without it such a finding shows the ID and the validator's message. Behind a reverse proxy the daily limit counts the address the proxy appended.
1.3.0Plugin: with the "Extended Profiles" add-on, findings on fields of an extension show their value from the invoice; without it, the report says so above the verdict.
1.2.0Plugin: the design kit can be chosen in the settings.
1.1.6Plugin: maintenance release without visible change.
1.1.5Plugin: notes on a report that could only be read in part appear in the language of the website. The rule explanations follow the current rule sets for France, Croatia and the revised XRechnung 3.0.2.
1.1.4Plugin: the menu item is called "E-Invoice Validation Explorer Mustang".

12 · As an app

12.1 Folder and start file

The app is the folder einvoice-validation-explorer-for-mustang. It must stay complete. It contains:

ContentPurpose
einvoice-validation-explorer-for-mustang.htmlthe start page
einvoice-validation-explorer-for-mustang.jsthe tool itself
config.jsthe 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, LICENSEthe 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.

SettingDefaultEffect
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.
fontsLocaltruetrue 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.
onlineUpdatesfalseWithout 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.

Screenshot missingscreenshots/xma-datenstand.en.pngThe data status line with profile, syntax and package names above the report view
The data status line with profile, syntax and package names above the report view

When 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-mustang/data/. If only the file einvoice-validation-explorer-for-mustang-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 [spxm_validation_report], in the language of the page.

AttributeValuesDefaultEffect
bt1, true, yes or on switch the BT numbers on; any other value switches them offthe 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.

[spxm_validation_report]
[spxm_validation_report bt="0"]
[spxm_validation_report bt="yes"]

13.2 The settings page

The settings are under eInvoice Validation Explorer → Mustang. 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.

Screenshot missingscreenshots/xm-einstellungen.en.pngThe settings page under "eInvoice Validation Explorer → Mustang" with the five fields and the note on the shortcode
The settings page under "eInvoice Validation Explorer → Mustang" with the five fields and the note on the shortcode
SettingDefaultEffect
Daily uploads per role10 for every roleA 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 )8Applies 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 headeroffTakes 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 defaultonDecides whether the BT numbers are visible when the report opens. Visitors can switch this in the report at any time.
Design kitKit HChooses 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 [spxm_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 xm-bericht.en.png. The images show sample data only.

StatusFileWhat it shows
–xm-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 invoice
–xm-ablage.en.pngThe page with the shortcode: two labelled drop fields, one for the validation report and one for the invoice
–xm-ablage-halb.en.pngThe first drop field is filled and shows the file name; below it the note that the invoice is still missing
–xma-rechnung-fehlt.en.pngThe note box "The validated invoice is missing." with the button "Add invoice" above a report view without a document
–xm-befund.en.pngA single finding close up: plain-language explanation, BT number of the field concerned and the value from the invoice
–xm-sprung.en.pngThe document view after a click on a finding: the row concerned is in the middle and highlighted
–xm-filter.en.pngThe document view with the switch "findings only" on and a search term in the search box; the matches are marked
–xma-nicht-zugeordnet.en.pngThe box "Not placed (1)" with rule ID, reason and path
–xm-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"
–xma-datenstand.en.pngThe data status line with profile, syntax and package names above the report view
–xm-einstellungen.en.pngThe settings page under "eInvoice Validation Explorer → Mustang" with the five fields and the note on the shortcode