Guides

Structure errors

Updated 21 August 2026

Beside the business rules, which check that the totals add up and the VAT holds together, Factur-X applies a much wider family of structure checks. They do not judge the value of a piece of information: they verify that it is written once, in the place foreseen for it, with the attributes the standard expects. It is the largest family, and the one that produces the most puzzling reports, because the error is about the shape of the file rather than about what the invoice says.

The duplicate. Many of these checks are phrased the same way: a given field must appear exactly once. The invoice number in the header, the currency code in the settlement block, the total excluding VAT, the total including VAT, the amount due in the totals block. If it is missing, a business rule reports it too. If it appears twice, the duplicate is what has to go, even when both carry the same value. Two identical amounts are not two pieces of information.

The empty block. A block exists only to carry something. The order block, for instance, exists only to carry the purchase order identifier: it expects one, and only one. A block left empty by the issuing tool, for want of an order number, is to be removed rather than kept.

The second party. The invoice names one seller, and only one: a second seller party fails just as an absent one does. The seller's tax representative is declared in its own block. The same holds for the registration blocks: one block of type VA, carrying the VAT number, and one of type FC, carrying the tax identifier.

The missing attribute. The quietest case. The issue date can be perfectly written and refused all the same, because the attribute saying how to read it is absent. In Factur-X that attribute has only one possible value, 102, meaning YYYYMMDD. Likewise, the specification identifier naming the profile can be missing inside a context parameter that is itself present.

What links these four shapes: nearly all of them are invisible on the PDF. The invoice is correct for a human reader and malformed for a machine, which is exactly the situation a hybrid format creates. They also come almost always from the issuing tool rather than from whoever typed the invoice.

Drop the file into Pruvue: the report names the rule, quotes its official text and says which of the two occurrences is the surplus one. The check runs in your browser and the file is sent nowhere. For the rules that judge values rather than shape, see the totals and VAT errors.

Open the applicationPruvue runs in your browser: no upload, no account.

Sources: Factur-X specification 1.09.2 and its Schematron, FX-SCH structure checks (FNFE-MPE, fnfe-mpe.org) ยท EN 16931 (CEN).