Validate e-invoices and save validation reports

Validate e-invoices automatically, store validation reports, and sort out invalid invoices

An e-invoice must be formally correct to count as an invoice - the XML must conform to the schema and comply with the business rules of the EN 16931 standard and of the respective specification (XRechnung, ZUGFeRD/Factur-X). Automatic X-Invoice Processor checks this automatically for every invoice it reads, entirely locally and with the same rule sets that the KoSIT validator and the Mustang project use.

This guide shows how to read the result in the log, store a validation report for every invoice, route invalid invoices to a clarification folder automatically, and get notified by email.

At a Glance

  • Difficulty: Beginner
  • Time required: about 15 minutes
  • Prerequisites: Automatic X-Invoice Processor version 2.4 or later; a profile that processes e-invoices (see the how-to "Getting started")
  • Features used: Validation, "Save validation report" task, "Validation result" filter criterion, notification for invalid e-invoices

Video tutorial: Validate e-invoices and save validation reports (with narration and optional subtitles)


Step 1: Check the validation settings

Validation is enabled after installation. Open Menu → Options... → Validation to verify:

  • Validate e-invoices when reading is checked.
  • You can keep the time limit per file (default 60 seconds) and the maximum number of findings stored (default 300).
  • Below, you see the included rule sets with their date and license.
Program options, Validation page with switch, limits, and rule sets

Validation does not change processing: an invalid invoice still passes through the filter and the tasks as before. The result is added as extra information (see chapter 50.5).


Step 2: Read the result in the log

After the next processing run, every log entry shows the result in the Validation field group - for example "Valid" or "Invalid (2 errors, 1 warning)" - and below it the first violated rules. Hover over the entry and the tooltip lists the findings in full.

For the complete report, right-click the entry and choose Show validation report...:

Validation report of an XRechnung with result, key data, and findings

Each row names the severity (error, warning, information), the rule such as BR-DE-15, the rule text, and the location in the XML. Save report... stores the report as HTML or XML, Open in browser shows it for printing, and Copy puts it on the clipboard as text - for example for an email to the supplier.

Possible results:

Result Meaning
Valid No findings
Valid with warnings No errors, but recommendations of the standard not met
Invalid At least one business rule violated - a matter for the invoice issuer
Schema error XML structure faulty; the rule check is skipped
Not checked No result, e.g. plain PDF without an e-invoice, or validation switched off

Step 3: Save a validation report for every invoice

To document the check for every invoice, add the Save validation report task to the profile:

  1. Open the profile (Edit...) and click Add → Save validation report in the task list.
  2. Storage location tab: leave the directory empty, then the report is stored next to the invoice file at its current location - after a preceding Move file task, that is the archive folder. The default file name is <FileName>-ValidationReport.
  3. Report tab: choose the format HTML (readable, for printing), XML (for archive and downstream systems), or both. For Write report, Always remains the right choice for retention; Only with errors, on the other hand, collects only the reports of faulty invoices.
  4. Use ▼ to place the task after Move file if the profile moves the invoice.
Save validation report task with the Storage location and Report tabs

The report contains the program version, time of creation, file and SHA-256 hash of the checked XML data, the invoice header, the result, the rule sets with versions, and all findings (see chapter 22).


Step 4: Route invalid invoices to a clarification folder

If faulty invoices should not end up in the regular archive, create a dedicated profile in front of it:

  1. New profile..., name e.g. "Invoices for clarification", same mode and same monitored folder as the regular profile.
  2. Filter page: Add, property Validation result (Validation group), operator is, value Invalid. Add a second row with OR and the value Schema error.
  3. Tasks: Move file to a folder "Clarification" and, after it, Save validation report (directory empty).
  4. General page: check Do not apply any further profiles after successful processing with this profile, so that the regular profile does not process the file as well.
  5. Make sure the profile is listed before the regular profile - the profiles are applied in the order of the list. The list is sorted by name (clicking a column header changes the sorting), so give the clarification profile a name that sorts first, e.g. "1 Clarification" and "2 Incoming invoices".

Use the result preview of both profiles with an example invoice to check which profile applies - the Validation line shows the result there (see chapter 8.11). Further criteria such as Finding contains BR-DE-15 are described in chapter 30.11.


Step 5: Enable the notification

So that accounting does not overlook invalid invoices, enable Send message for invalid e-invoices (validation) under Menu → Options... → Processing and enter the recipients. One email per file is sent with the result, rule set, and the first findings; the HTML validation report is attached. Warnings do not trigger a message. A configured sending account under E-mail sending is required (see chapter 40.6.6).


Step 6: Check a single file manually

For a supplier's query or to test one of your own outgoing invoices, you do not need a profile: Menu → More → Validate invoice... opens a file dialog (XML or PDF), checks the file immediately, and shows the validation report - even when validation is switched off in the options.


Good to know

  • The check is a formal check: the invoice content, tax details, signatures, and the PDF/A conformance of ZUGFeRD files are not checked.
  • Invoices with an older XRechnung version are checked against the current rule set; the warning AXP-VERSION points this out.
  • The results are also available as placeholders - <ValidationStatus>, <ValidationErrorCount>, <ValidationWarningCount>, <ValidationRuleSet> - for example for file names, CSV extracts, or database fields (see chapter 70.1).
  • The Excel report contains the columns Validation and Findings as well as the Findings sheet with all findings of the period (see chapter 80.3).
  • The rule sets are updated with program updates; the publishers release new versions about once or twice a year.

Common issues

Problem Solution
All invoices show "Not checked" Enable validation under Options → Validation; entries from versions before 2.4 have no result - catch up with Process file again
An invoice is "Invalid" but is still processed By design: the result is extra information. Use the filter criterion from step 4 to separate invalid invoices
The "Save validation report" task is skipped There is no result for the file (validation switched off, plain PDF without an e-invoice) or the condition "Only with findings/errors" does not apply - the message in the log names the reason
A very large invoice ends with "Time limit exceeded" Increase the time limit per file under Options → Validation
The supplier disputes the findings Send the validation report as HTML: it names the rule, rule text, and location as well as the hash of the checked data; the rules correspond to the KoSIT validator

Further reading

Start your no-obligation, 30-day free trial of Automatic X-Invoice Processor now ...     Download