Attestwire › Rule reference › BR-E-10
BR-E-10 An exempt VAT breakdown must give an exemption reason
noun · EN 16931 · fatal · BT-120 / BT-121
For a sample invoice, the library reports: A VAT breakdown with category E (exempt from VAT) must have a VAT exemption reason code (BT-121) or reason text (BT-120).
- Business term
BT-120 / BT-121- Severity
fatal
The fix
Set vatExemptionReasons.E to the statutory reason, ideally naming the provision, e.g. "Steuerbefreit nach §4 Nr. 21 UStG" or "Exempt under Article 132 of Directive 2006/112/EC". A VATEX code in vatExemptionReasonCodes.E satisfies the rule on its own, and is the machine-checkable form: "VATEX-EU-132-1I" for education.
A passing value
"vatExemptionReasons": { "E": "Exempt under Article 132(1)(i) of Directive 2006/112/EC" }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-E-10",
"field": [
"BT-120",
"BT-121"
],
"severity": "fatal",
"message": "A VAT breakdown with category E (exempt from VAT) must have a VAT exemption reason code (BT-121) or reason text (BT-120). Unlike reverse charge or export, \"exempt\" has no single standard wording — the exemption is granted by a specific provision, and the buyer and the auditor both need to know which one you are relying on.",
"fix": "Set vatExemptionReasons.E to the statutory reason, ideally naming the provision, e.g. \"Steuerbefreit nach §4 Nr. 21 UStG\" or \"Exempt under Article 132 of Directive 2006/112/EC\". A VATEX code in vatExemptionReasonCodes.E satisfies the rule on its own, and is the machine-checkable form: \"VATEX-EU-132-1I\" for education.",
"example": "\"vatExemptionReasons\": { \"E\": \"Exempt under Article 132(1)(i) of Directive 2006/112/EC\" }",
"xpath": "/ubl:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:TaxExemptionReason",
"docsUrl": "https://attestwire.com/rules/BR-E-10"
}
xpath is always a UBL path. On a CII invoice, look for the
matching CII field instead.