Attestwire › Rule reference › BR-CL-08
BR-CL-08 An invoice note subject code must be a UNCL 4451 code
noun · EN 16931 · fatal · BT-21
For a sample invoice, the library reports: The invoice note subject code (BT-21) is "ZZ9", which is not in UNCL 4451 (383 codes).
- Business term
BT-21- Severity
fatal
The fix
Set noteSubjectCode to a three-letter UNCL 4451 qualifier — "AAI" general information, "REG" regulatory information, "ABL" governing law, "TXD" tax declaration, "PMT" payment information, "ACB" additional information. Leave it unset if the note needs no subject; a plain note is perfectly valid.
A passing value
"note": "Leistungszeitraum Juli 2026", "noteSubjectCode": "AAI"What the library returns
The full error returned by @attestwire/en16931. It includes the rule ID,
affected field and suggested correction. Developers can use this object in their application:
{
"rule": "BR-CL-08",
"field": "BT-21",
"severity": "fatal",
"message": "The invoice note subject code (BT-21) is \"ZZ9\", which is not in UNCL 4451 (383 codes). UBL has no element for BT-21 at all: EN 16931's binding prefixes the code onto the note itself, so this library writes cbc:Note as \"#ZZ9#\" followed by your note text, and the validator parses it back out of that string.",
"fix": "Set noteSubjectCode to a three-letter UNCL 4451 qualifier — \"AAI\" general information, \"REG\" regulatory information, \"ABL\" governing law, \"TXD\" tax declaration, \"PMT\" payment information, \"ACB\" additional information. Leave it unset if the note needs no subject; a plain note is perfectly valid.",
"example": "\"note\": \"Leistungszeitraum Juli 2026\", \"noteSubjectCode\": \"AAI\"",
"xpath": "/ubl:Invoice/cbc:Note",
"docsUrl": "https://attestwire.com/rules/BR-CL-08"
}
xpath is always a UBL path. On a CII invoice, look for the
matching CII field instead.