Also called European Norm 16931, the European e-invoicing standard
EN 16931 is the European standard that defines the semantic data model for an electronic invoice: a fixed set of named business terms, and the rules that govern how they relate. It is deliberately syntax neutral, so the same invoice can be expressed as CII or UBL and still be the same EN 16931 invoice.
The standard says an invoice has a buyer VAT identifier, that it is called BT-48, and what it means. It does not say where that sits in a file. Two syntaxes carry it: CII and UBL. Both are legitimate and both are EN 16931.
That separation is why Factur-X, ZUGFeRD, XRechnung and PEPPOL BIS can all be "EN 16931 based" while looking nothing alike as files. They share the meaning and differ in the packaging.
EN 16931 publishes its business rules as Schematron, so "does this invoice comply" is a question with a definite answer rather than an opinion. 223 rules cover required fields, arithmetic, decimals, code lists and VAT category conditions.
The catch is that the rule text is written in the vocabulary of the specification. BR-CO-15 tells you that BT-112 must equal BT-109 plus BT-110, which is precise and close to useless to the person who has to fix the invoice. We wrote a plain language explanation for every one of the 223.
Grouped by what actually went wrong, with the cause and the fix for each.
The CEN artefacts, compiled and run in your browser, so the invoice is never uploaded.