The shipped template proves the subset listed below. It does not establish full EN 16931 or full XRechnung conformance. A passing result covers only these checks and their declared input scopes.
| Source or syntax | Pinned version |
|---|
| EN 16931 validation models | 1.3.16 |
| XRechnung | 3.0 |
| KoSIT Schematron reference | 2.6.0 |
| UBL Invoice | 2.1 |
| UN/CEFACT CII | d16b |
The template reads UBL Invoice XML and CII XML, including the extracted CII attachment of a ZUGFeRD PDF. The PDF container does not determine the profile; the XML specification identifier does. UBL CreditNote and non-invoice XML are refused.
Only the following exact specification identifiers are accepted. Matching is case-sensitive and does not trim whitespace:
urn:cen.eu:en16931:2017
urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0
Minimum, BasicWL, Basic, Extended, XRechnung Extension and CVD profiles are refused. Missing, empty, whitespace-only, case-changed and near-match identifiers are also refused. The refusal table below lists the exact tested negative domains, not additional supported profiles.
By the scope decision recorded on 8 October 2026, Schematron enforcement is not offered: a Schematron declaration is refused at save time. Business rules run as ordinary check steps. The pinned Schematron versions identify reference sources, not an executed Schematron validator.
Executable claim
The manifest lists 184 executable codes: 182 business checks and 2 refusal diagnostics. Business checks have positive and negative fixtures within each declared syntax/profile scope. Refusal diagnostics have fixtures in their refused input domains and separate supported-input positive controls; those controls do not prove passing invoices within a refused domain. Complete-output check-removal tests establish sensitivity to all these checks; they do not establish independent external agreement.
Rule tables preserve normative identifiers and runtime codes separately, including case-sensitive suffixes. Severity is the shipped value; tenant changes to severity or check steps change the copied template. XRechnung checks apply only to its exact accepted profile. The tables report declared fixture scopes, not proof for every possible invoice.
Calculation rules
| Normative id | Runtime code | Severity | Declared syntax and profile scope |
|---|
BR-CO-03 | BR-CO-03 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-CO-04 | BR-CO-04 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-CO-09 | BR-CO-09 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-CO-10 | BR-CO-10 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-CO-11 | BR-CO-11 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-CO-12 | BR-CO-12 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-CO-13 | BR-CO-13 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-CO-14 | BR-CO-14 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-CO-15 | BR-CO-15 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-CO-16 | BR-CO-16 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-CO-17 | BR-CO-17 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-CO-18 | BR-CO-18 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-CO-19 | BR-CO-19 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-CO-20 | BR-CO-20 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-CO-21 | BR-CO-21 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-CO-22 | BR-CO-22 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-CO-23 | BR-CO-23 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-CO-24 | BR-CO-24 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-CO-26 | BR-CO-26 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
Core business rules
| Normative id | Runtime code | Severity | Declared syntax and profile scope |
|---|
BR-02 | BR-02 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-03 | BR-03 | error | CII: "urn:cen.eu:en16931:2017" |
BR-04 | BR-04 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-05 | BR-05 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-06 | BR-06 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-07 | BR-07 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-08 | BR-08 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-09 | BR-09 | error | CII: "urn:cen.eu:en16931:2017"; UBL: "urn:cen.eu:en16931:2017" |
BR-10 | BR-10 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-11 | BR-11 | error | CII: "urn:cen.eu:en16931:2017"; UBL: "urn:cen.eu:en16931:2017" |
BR-12 | BR-12 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-13 | BR-13 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-14 | BR-14 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-15 | BR-15 | error | CII: "urn:cen.eu:en16931:2017" |
BR-16 | BR-16 | error | CII: "urn:cen.eu:en16931:2017" |
BR-17 | BR-17 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-18 | BR-18 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-19 | BR-19 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-20 | BR-20 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-29 | BR-29 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-53 | BR-53 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-56 | BR-56 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-57 | BR-57 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-62 | BR-62 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-63 | BR-63 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-31 | BR-31 | error | CII: "urn:cen.eu:en16931:2017" |
BR-32 | BR-32 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-33 | BR-33 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-36 | BR-36 | error | CII: "urn:cen.eu:en16931:2017" |
BR-37 | BR-37 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-38 | BR-38 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-45 | BR-45 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-46 | BR-46 | error | CII: "urn:cen.eu:en16931:2017" |
BR-47 | BR-47 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-48 | BR-48 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-49 | BR-49 | error | CII: "urn:cen.eu:en16931:2017" |
BR-61 | BR-61 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-50 | BR-50 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-51 | BR-51 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-52 | BR-52 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-55 | BR-55 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-21 | BR-21 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-22 | BR-22 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-23 | BR-23 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-24 | BR-24 | error | CII: "urn:cen.eu:en16931:2017" |
BR-26 | BR-26 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-25 | BR-25 | error | CII: "urn:cen.eu:en16931:2017"; UBL: "urn:cen.eu:en16931:2017" |
BR-27 | BR-27 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-28 | BR-28 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-30 | BR-30 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-41 | BR-41 | error | CII: "urn:cen.eu:en16931:2017" |
BR-42 | BR-42 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-43 | BR-43 | error | CII: "urn:cen.eu:en16931:2017" |
BR-44 | BR-44 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-54 | BR-54 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-64 | BR-64 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-65 | BR-65 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
XRechnung rules
| Normative id | Runtime code | Severity | Declared syntax and profile scope |
|---|
BR-DE-1 | BR-DE-1 | error | UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0"; CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" |
BR-DE-2 | BR-DE-2 | error | UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0"; CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" |
BR-DE-3 | BR-DE-3 | error | UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0"; CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" |
BR-DE-4 | BR-DE-4 | error | UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0"; CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" |
BR-DE-5 | BR-DE-5 | error | UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0"; CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" |
BR-DE-6 | BR-DE-6 | error | UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0"; CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" |
BR-DE-7 | BR-DE-7 | error | UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0"; CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" |
BR-DE-8 | BR-DE-8 | error | UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0"; CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" |
BR-DE-9 | BR-DE-9 | error | UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0"; CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" |
BR-DE-10 | BR-DE-10 | error | UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0"; CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" |
BR-DE-11 | BR-DE-11 | error | UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0"; CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" |
BR-DE-14 | BR-DE-14 | error | UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0"; CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" |
BR-DE-15 | BR-DE-15 | error | UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0"; CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" |
BR-DE-16 | BR-DE-16 | error | UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0"; CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" |
BR-DE-17 | BR-DE-17 | warning | UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0"; CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" |
BR-DE-18 | BR-DE-18 | error | UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0"; CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" |
BR-DE-19 | BR-DE-19 | warning | UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0"; CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" |
BR-DE-20 | BR-DE-20 | warning | UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0"; CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" |
BR-DE-22 | BR-DE-22 | error | UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0"; CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" |
BR-DE-23-a | BR-DE-23-A | error | UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0"; CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" |
BR-DE-23-b | BR-DE-23-B | error | UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0"; CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" |
BR-DE-24-a | BR-DE-24-A | error | UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0"; CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" |
BR-DE-24-b | BR-DE-24-B | error | UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0"; CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" |
BR-DE-25-a | BR-DE-25-A | error | UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0"; CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" |
BR-DE-25-b | BR-DE-25-B | error | UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0"; CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" |
BR-DE-26 | BR-DE-26 | warning | UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0"; CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" |
BR-DE-27 | BR-DE-27 | warning | UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0"; CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" |
BR-DE-28 | BR-DE-28 | warning | UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0"; CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" |
BR-DE-30 | BR-DE-30 | error | UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0"; CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" |
BR-DE-31 | BR-DE-31 | error | UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0"; CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" |
Syntax and profile refusal diagnostics
The negative fixtures below exercise refusal. UBL CreditNote and non-invoice XML leave syntax unresolved before profile acceptance. The separately listed supported-input controls exercise accepted input, not the refused syntax/profile domains; a CII refusal may use a UBL positive control. Fixture identifiers are exact references to the coverage manifest.
| Normative id | Runtime code | Severity | Refused input domain and negative fixtures | Separate supported-input positive controls |
|---|
| Refusal diagnostic | RL-EN16931-SYNTAX-UNSUPPORTED | error | Unsupported XML / syntax unresolved before profile acceptance (manifest syntax UNRESOLVED, profile "") (negative fixtures: task3-ubl-credit-note, task3-non-invoice) | core-positive-ubl |
| Refusal diagnostic | RL-EN16931-PROFILE-UNSUPPORTED | error | CII: "" (negative fixtures: cii-br-01-missing-specification, cii-br-01-br-21-order, task3-cii-empty, task3-cii-missing); UBL: "urn:factur-x.eu:1p0:minimum" (negative fixtures: task3-ubl-excluded-1); UBL: "urn:factur-x.eu:1p0:basicwl" (negative fixtures: task3-ubl-excluded-2); UBL: "urn:cen.eu:en16931:2017#compliant#urn:factur-x.eu:1p0:basic" (negative fixtures: task3-ubl-excluded-3); UBL: "urn:cen.eu:en16931:2017#conformant#urn:factur-x.eu:1p0:extended" (negative fixtures: task3-ubl-excluded-4); UBL: "urn:cen.eu:en16931:2017#conformant#urn:xeinkauf.de:kosit:extension:xrechnung_3.0" (negative fixtures: task3-ubl-excluded-5); UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung:cvd_0.9" (negative fixtures: task3-ubl-excluded-6); UBL: "" (negative fixtures: task3-ubl-empty, task3-ubl-missing); UBL: " " (negative fixtures: task3-ubl-space); UBL: "\t" (negative fixtures: task3-ubl-tab); UBL: "\n" (negative fixtures: task3-ubl-newline); UBL: " urn:cen.eu:en16931:2017" (negative fixtures: task3-ubl-0-leading); UBL: "urn:cen.eu:en16931:2017 " (negative fixtures: task3-ubl-0-trailing); UBL: "URN:CEN.EU:EN16931:2017" (negative fixtures: task3-ubl-0-case); UBL: "urn:cen.eu:en 16931:2017" (negative fixtures: task3-ubl-0-internal); UBL: "urn:cen.eu:en16931:201" (negative fixtures: task3-ubl-0-prefix); UBL: "urn:cen.eu:en16931:2017x" (negative fixtures: task3-ubl-0-near); UBL: "xurn:cen.eu:en16931:2017" (negative fixtures: task3-ubl-0-prepended); UBL: "urn:cen.eu:en16931:2017#extra" (negative fixtures: task3-ubl-0-suffix); UBL: " urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" (negative fixtures: task3-ubl-1-leading); UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0 " (negative fixtures: task3-ubl-1-trailing); UBL: "URN:CEN.EU:EN16931:2017#COMPLIANT#URN:XEINKAUF.DE:KOSIT:XRECHNUNG_3.0" (negative fixtures: task3-ubl-1-case); UBL: "urn:cen.eu:en 16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" (negative fixtures: task3-ubl-1-internal); UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3." (negative fixtures: task3-ubl-1-prefix); UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0x" (negative fixtures: task3-ubl-1-near); UBL: "xurn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" (negative fixtures: task3-ubl-1-prepended); UBL: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0#extra" (negative fixtures: task3-ubl-1-suffix); CII: "urn:factur-x.eu:1p0:minimum" (negative fixtures: task3-cii-excluded-1); CII: "urn:factur-x.eu:1p0:basicwl" (negative fixtures: task3-cii-excluded-2); CII: "urn:cen.eu:en16931:2017#compliant#urn:factur-x.eu:1p0:basic" (negative fixtures: task3-cii-excluded-3); CII: "urn:cen.eu:en16931:2017#conformant#urn:factur-x.eu:1p0:extended" (negative fixtures: task3-cii-excluded-4); CII: "urn:cen.eu:en16931:2017#conformant#urn:xeinkauf.de:kosit:extension:xrechnung_3.0" (negative fixtures: task3-cii-excluded-5); CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung:cvd_0.9" (negative fixtures: task3-cii-excluded-6); CII: " " (negative fixtures: task3-cii-space); CII: "\t" (negative fixtures: task3-cii-tab); CII: "\n" (negative fixtures: task3-cii-newline); CII: " urn:cen.eu:en16931:2017" (negative fixtures: task3-cii-0-leading); CII: "urn:cen.eu:en16931:2017 " (negative fixtures: task3-cii-0-trailing); CII: "URN:CEN.EU:EN16931:2017" (negative fixtures: task3-cii-0-case); CII: "urn:cen.eu:en 16931:2017" (negative fixtures: task3-cii-0-internal); CII: "urn:cen.eu:en16931:201" (negative fixtures: task3-cii-0-prefix); CII: "urn:cen.eu:en16931:2017x" (negative fixtures: task3-cii-0-near); CII: "xurn:cen.eu:en16931:2017" (negative fixtures: task3-cii-0-prepended); CII: "urn:cen.eu:en16931:2017#extra" (negative fixtures: task3-cii-0-suffix); CII: " urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" (negative fixtures: task3-cii-1-leading); CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0 " (negative fixtures: task3-cii-1-trailing); CII: "URN:CEN.EU:EN16931:2017#COMPLIANT#URN:XEINKAUF.DE:KOSIT:XRECHNUNG_3.0" (negative fixtures: task3-cii-1-case); CII: "urn:cen.eu:en 16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" (negative fixtures: task3-cii-1-internal); CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3." (negative fixtures: task3-cii-1-prefix); CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0x" (negative fixtures: task3-cii-1-near); CII: "xurn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0" (negative fixtures: task3-cii-1-prepended); CII: "urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0#extra" (negative fixtures: task3-cii-1-suffix) | core-positive-ubl |
VAT: reverse charge
| Normative id | Runtime code | Severity | Declared syntax and profile scope |
|---|
BR-AE-01 | BR-AE-01 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-AE-02 | BR-AE-02 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-AE-05 | BR-AE-05 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-AE-03 | BR-AE-03 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-AE-06 | BR-AE-06 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-AE-04 | BR-AE-04 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-AE-07 | BR-AE-07 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-AE-08 | BR-AE-08 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-AE-09 | BR-AE-09 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-AE-10 | BR-AE-10 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
VAT: exempt
| Normative id | Runtime code | Severity | Declared syntax and profile scope |
|---|
BR-E-01 | BR-E-01 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-E-02 | BR-E-02 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-E-05 | BR-E-05 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-E-03 | BR-E-03 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-E-06 | BR-E-06 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-E-04 | BR-E-04 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-E-07 | BR-E-07 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-E-08 | BR-E-08 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-E-09 | BR-E-09 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-E-10 | BR-E-10 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
VAT: export
| Normative id | Runtime code | Severity | Declared syntax and profile scope |
|---|
BR-G-01 | BR-G-01 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-G-02 | BR-G-02 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-G-03 | BR-G-03 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-G-04 | BR-G-04 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-G-05 | BR-G-05 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-G-06 | BR-G-06 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-G-07 | BR-G-07 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-G-08 | BR-G-08 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-G-09 | BR-G-09 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-G-10 | BR-G-10 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
| Normative id | Runtime code | Severity | Declared syntax and profile scope |
|---|
BR-IC-01 | BR-IC-01 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-IC-02 | BR-IC-02 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-IC-03 | BR-IC-03 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-IC-04 | BR-IC-04 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-IC-05 | BR-IC-05 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-IC-06 | BR-IC-06 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-IC-07 | BR-IC-07 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-IC-08 | BR-IC-08 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-IC-09 | BR-IC-09 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-IC-10 | BR-IC-10 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-IC-11 | BR-IC-11 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-IC-12 | BR-IC-12 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
VAT: outside scope
| Normative id | Runtime code | Severity | Declared syntax and profile scope |
|---|
BR-O-01 | BR-O-01 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-O-02 | BR-O-02 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-O-03 | BR-O-03 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-O-04 | BR-O-04 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-O-05 | BR-O-05 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-O-06 | BR-O-06 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-O-07 | BR-O-07 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-O-08 | BR-O-08 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-O-09 | BR-O-09 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-O-10 | BR-O-10 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-O-11 | BR-O-11 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-O-12 | BR-O-12 | error | CII: "urn:cen.eu:en16931:2017"; UBL: "urn:cen.eu:en16931:2017" |
BR-O-13 | BR-O-13 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-O-14 | BR-O-14 | error | CII: "urn:cen.eu:en16931:2017"; UBL: "urn:cen.eu:en16931:2017" |
VAT: standard rated
| Normative id | Runtime code | Severity | Declared syntax and profile scope |
|---|
BR-S-01 | BR-S-01 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-S-02 | BR-S-02 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-S-05 | BR-S-05 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-S-03 | BR-S-03 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-S-06 | BR-S-06 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-S-04 | BR-S-04 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-S-07 | BR-S-07 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-S-08 | BR-S-08 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-S-09 | BR-S-09 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-S-10 | BR-S-10 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
VAT: zero rated
| Normative id | Runtime code | Severity | Declared syntax and profile scope |
|---|
BR-Z-01 | BR-Z-01 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-Z-02 | BR-Z-02 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-Z-05 | BR-Z-05 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-Z-03 | BR-Z-03 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-Z-06 | BR-Z-06 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-Z-04 | BR-Z-04 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-Z-07 | BR-Z-07 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-Z-08 | BR-Z-08 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-Z-09 | BR-Z-09 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
BR-Z-10 | BR-Z-10 | error | UBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017" |
Guarded invariants
These are separate source-backed profile implications, not executable business-negative or mutation claims. A profile refusal is not a named business-rule violation.
| Normative id | Scope | Proof |
|---|
BR-01 | UBL, CII: urn:cen.eu:en16931:2017, urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0 | An authored check exists, but the exact supported-profile guard makes its business negative unreachable. Missing or blank identifiers have profile-refusal controls. |
BR-DE-21 | UBL, CII: urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0 | The exact XRechnung profile guard satisfies the normative alternative. No check or diagnostic with this rule id is authored or emitted; it is not an additional warning. |
Structural refusals
For the following UBL omissions, the actual UBL schema rejects the structure before a named business diagnosis. Their CII counterparts retain genuine business negatives and check-removal proof. Schema refusal is a distinct proof kind.
| Normative id | Syntax | Refusal code | CII business code |
|---|
BR-03 | UBL | RL-EN16931-SYNTAX-UNSUPPORTED | BR-03 |
BR-15 | UBL | RL-EN16931-SYNTAX-UNSUPPORTED | BR-15 |
BR-16 | UBL | RL-EN16931-SYNTAX-UNSUPPORTED | BR-16 |
BR-24 | UBL | RL-EN16931-SYNTAX-UNSUPPORTED | BR-24 |
BR-31 | UBL | RL-EN16931-SYNTAX-UNSUPPORTED | BR-31 |
BR-36 | UBL | RL-EN16931-SYNTAX-UNSUPPORTED | BR-36 |
BR-41 | UBL | RL-EN16931-SYNTAX-UNSUPPORTED | BR-41 |
BR-43 | UBL | RL-EN16931-SYNTAX-UNSUPPORTED | BR-43 |
BR-46 | UBL | RL-EN16931-SYNTAX-UNSUPPORTED | BR-46 |
BR-49 | UBL | RL-EN16931-SYNTAX-UNSUPPORTED | BR-49 |
Not checked
- BR-AF
- BR-AG
- BR-B
- BR-DEC
- BR-CL
- UBL-SR/CII-SR
- BR-DEX
- BR-DE-CVD
- Peppol R-rules
- PDF/A-3 XMP
- Not claimed:
BR-CO-05, BR-CO-06, BR-CO-07, BR-CO-08. Both pinned syntax assertions are true(); no executable behavior is claimed.
What the evidence means
The coverage manifest preserves current fixture expectations, exact normative-to-runtime mappings, source hashes and proof references. Historical fixture outcomes remain provenance; they are not substituted for current complete outcomes. The guarded invariants, schema refusals and excluded assertions above are finite classifications, not a waiver for other missing proof.
Independent KoSIT business-rule agreement remains pending external validation evidence. Mutation sensitivity and a fresh documentation page alone do not prove conformance. PDF/A-3 XMP checks and the other families in the not-checked list remain outside the claim.