Skip to main content

E-invoice template

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.

Supported inputs and versions​

Source or syntaxPinned version
EN 16931 validation models1.3.16
XRechnung3.0
KoSIT Schematron reference2.6.0
UBL Invoice2.1
UN/CEFACT CIId16b

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 idRuntime codeSeverityDeclared syntax and profile scope
BR-CO-03BR-CO-03errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-CO-04BR-CO-04errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-CO-09BR-CO-09errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-CO-10BR-CO-10errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-CO-11BR-CO-11errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-CO-12BR-CO-12errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-CO-13BR-CO-13errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-CO-14BR-CO-14errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-CO-15BR-CO-15errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-CO-16BR-CO-16errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-CO-17BR-CO-17errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-CO-18BR-CO-18errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-CO-19BR-CO-19errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-CO-20BR-CO-20errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-CO-21BR-CO-21errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-CO-22BR-CO-22errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-CO-23BR-CO-23errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-CO-24BR-CO-24errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-CO-26BR-CO-26errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"

Core business rules​

Normative idRuntime codeSeverityDeclared syntax and profile scope
BR-02BR-02errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-03BR-03errorCII: "urn:cen.eu:en16931:2017"
BR-04BR-04errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-05BR-05errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-06BR-06errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-07BR-07errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-08BR-08errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-09BR-09errorCII: "urn:cen.eu:en16931:2017"; UBL: "urn:cen.eu:en16931:2017"
BR-10BR-10errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-11BR-11errorCII: "urn:cen.eu:en16931:2017"; UBL: "urn:cen.eu:en16931:2017"
BR-12BR-12errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-13BR-13errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-14BR-14errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-15BR-15errorCII: "urn:cen.eu:en16931:2017"
BR-16BR-16errorCII: "urn:cen.eu:en16931:2017"
BR-17BR-17errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-18BR-18errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-19BR-19errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-20BR-20errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-29BR-29errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-53BR-53errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-56BR-56errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-57BR-57errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-62BR-62errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-63BR-63errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-31BR-31errorCII: "urn:cen.eu:en16931:2017"
BR-32BR-32errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-33BR-33errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-36BR-36errorCII: "urn:cen.eu:en16931:2017"
BR-37BR-37errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-38BR-38errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-45BR-45errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-46BR-46errorCII: "urn:cen.eu:en16931:2017"
BR-47BR-47errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-48BR-48errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-49BR-49errorCII: "urn:cen.eu:en16931:2017"
BR-61BR-61errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-50BR-50errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-51BR-51errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-52BR-52errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-55BR-55errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-21BR-21errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-22BR-22errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-23BR-23errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-24BR-24errorCII: "urn:cen.eu:en16931:2017"
BR-26BR-26errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-25BR-25errorCII: "urn:cen.eu:en16931:2017"; UBL: "urn:cen.eu:en16931:2017"
BR-27BR-27errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-28BR-28errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-30BR-30errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-41BR-41errorCII: "urn:cen.eu:en16931:2017"
BR-42BR-42errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-43BR-43errorCII: "urn:cen.eu:en16931:2017"
BR-44BR-44errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-54BR-54errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-64BR-64errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-65BR-65errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"

XRechnung rules​

Normative idRuntime codeSeverityDeclared syntax and profile scope
BR-DE-1BR-DE-1errorUBL: "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-2BR-DE-2errorUBL: "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-3BR-DE-3errorUBL: "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-4BR-DE-4errorUBL: "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-5BR-DE-5errorUBL: "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-6BR-DE-6errorUBL: "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-7BR-DE-7errorUBL: "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-8BR-DE-8errorUBL: "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-9BR-DE-9errorUBL: "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-10BR-DE-10errorUBL: "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-11BR-DE-11errorUBL: "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-14BR-DE-14errorUBL: "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-15BR-DE-15errorUBL: "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-16BR-DE-16errorUBL: "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-17BR-DE-17warningUBL: "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-18BR-DE-18errorUBL: "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-19BR-DE-19warningUBL: "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-20BR-DE-20warningUBL: "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-22BR-DE-22errorUBL: "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-aBR-DE-23-AerrorUBL: "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-bBR-DE-23-BerrorUBL: "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-aBR-DE-24-AerrorUBL: "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-bBR-DE-24-BerrorUBL: "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-aBR-DE-25-AerrorUBL: "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-bBR-DE-25-BerrorUBL: "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-26BR-DE-26warningUBL: "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-27BR-DE-27warningUBL: "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-28BR-DE-28warningUBL: "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-30BR-DE-30errorUBL: "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-31BR-DE-31errorUBL: "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 idRuntime codeSeverityRefused input domain and negative fixturesSeparate supported-input positive controls
Refusal diagnosticRL-EN16931-SYNTAX-UNSUPPORTEDerrorUnsupported XML / syntax unresolved before profile acceptance (manifest syntax UNRESOLVED, profile "") (negative fixtures: task3-ubl-credit-note, task3-non-invoice)core-positive-ubl
Refusal diagnosticRL-EN16931-PROFILE-UNSUPPORTEDerrorCII: "" (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 idRuntime codeSeverityDeclared syntax and profile scope
BR-AE-01BR-AE-01errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-AE-02BR-AE-02errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-AE-05BR-AE-05errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-AE-03BR-AE-03errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-AE-06BR-AE-06errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-AE-04BR-AE-04errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-AE-07BR-AE-07errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-AE-08BR-AE-08errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-AE-09BR-AE-09errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-AE-10BR-AE-10errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"

VAT: exempt​

Normative idRuntime codeSeverityDeclared syntax and profile scope
BR-E-01BR-E-01errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-E-02BR-E-02errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-E-05BR-E-05errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-E-03BR-E-03errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-E-06BR-E-06errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-E-04BR-E-04errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-E-07BR-E-07errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-E-08BR-E-08errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-E-09BR-E-09errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-E-10BR-E-10errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"

VAT: export​

Normative idRuntime codeSeverityDeclared syntax and profile scope
BR-G-01BR-G-01errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-G-02BR-G-02errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-G-03BR-G-03errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-G-04BR-G-04errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-G-05BR-G-05errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-G-06BR-G-06errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-G-07BR-G-07errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-G-08BR-G-08errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-G-09BR-G-09errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-G-10BR-G-10errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"

VAT: intra-community supply​

Normative idRuntime codeSeverityDeclared syntax and profile scope
BR-IC-01BR-IC-01errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-IC-02BR-IC-02errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-IC-03BR-IC-03errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-IC-04BR-IC-04errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-IC-05BR-IC-05errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-IC-06BR-IC-06errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-IC-07BR-IC-07errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-IC-08BR-IC-08errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-IC-09BR-IC-09errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-IC-10BR-IC-10errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-IC-11BR-IC-11errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-IC-12BR-IC-12errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"

VAT: outside scope​

Normative idRuntime codeSeverityDeclared syntax and profile scope
BR-O-01BR-O-01errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-O-02BR-O-02errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-O-03BR-O-03errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-O-04BR-O-04errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-O-05BR-O-05errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-O-06BR-O-06errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-O-07BR-O-07errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-O-08BR-O-08errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-O-09BR-O-09errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-O-10BR-O-10errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-O-11BR-O-11errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-O-12BR-O-12errorCII: "urn:cen.eu:en16931:2017"; UBL: "urn:cen.eu:en16931:2017"
BR-O-13BR-O-13errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-O-14BR-O-14errorCII: "urn:cen.eu:en16931:2017"; UBL: "urn:cen.eu:en16931:2017"

VAT: standard rated​

Normative idRuntime codeSeverityDeclared syntax and profile scope
BR-S-01BR-S-01errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-S-02BR-S-02errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-S-05BR-S-05errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-S-03BR-S-03errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-S-06BR-S-06errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-S-04BR-S-04errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-S-07BR-S-07errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-S-08BR-S-08errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-S-09BR-S-09errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-S-10BR-S-10errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"

VAT: zero rated​

Normative idRuntime codeSeverityDeclared syntax and profile scope
BR-Z-01BR-Z-01errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-Z-02BR-Z-02errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-Z-05BR-Z-05errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-Z-03BR-Z-03errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-Z-06BR-Z-06errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-Z-04BR-Z-04errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-Z-07BR-Z-07errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-Z-08BR-Z-08errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-Z-09BR-Z-09errorUBL: "urn:cen.eu:en16931:2017"; CII: "urn:cen.eu:en16931:2017"
BR-Z-10BR-Z-10errorUBL: "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 idScopeProof
BR-01UBL, CII: urn:cen.eu:en16931:2017, urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0An authored check exists, but the exact supported-profile guard makes its business negative unreachable. Missing or blank identifiers have profile-refusal controls.
BR-DE-21UBL, CII: urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0The 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 idSyntaxRefusal codeCII business code
BR-03UBLRL-EN16931-SYNTAX-UNSUPPORTEDBR-03
BR-15UBLRL-EN16931-SYNTAX-UNSUPPORTEDBR-15
BR-16UBLRL-EN16931-SYNTAX-UNSUPPORTEDBR-16
BR-24UBLRL-EN16931-SYNTAX-UNSUPPORTEDBR-24
BR-31UBLRL-EN16931-SYNTAX-UNSUPPORTEDBR-31
BR-36UBLRL-EN16931-SYNTAX-UNSUPPORTEDBR-36
BR-41UBLRL-EN16931-SYNTAX-UNSUPPORTEDBR-41
BR-43UBLRL-EN16931-SYNTAX-UNSUPPORTEDBR-43
BR-46UBLRL-EN16931-SYNTAX-UNSUPPORTEDBR-46
BR-49UBLRL-EN16931-SYNTAX-UNSUPPORTEDBR-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.