Attestwire › Rule reference › BR-AE-10
BR-AE-10 A reverse-charge VAT breakdown must give the reverse-charge reason
noun · EN 16931 · fatal · BT-120 / BT-121
For a sample invoice, the library reports: The VAT breakdown for category AE (Reverse charge) must have a VAT exemption reason code (BT-121) meaning "Reverse charge", or the VAT exemption reason text (BT-120) "Reverse charge" (or the equivalent standard text in another language).
- Business term
BT-120 / BT-121- Severity
fatal
The fix
Either remove vatExemptionReasons.AE entirely, in which case this library supplies the standard text "Reverse charge", or set it to your own wording in the invoice language.
A passing value
"vatExemptionReasons": { "AE": "Reverse charge" }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-AE-10",
"field": [
"BT-120",
"BT-121"
],
"severity": "fatal",
"message": "The VAT breakdown for category AE (Reverse charge) must have a VAT exemption reason code (BT-121) meaning \"Reverse charge\", or the VAT exemption reason text (BT-120) \"Reverse charge\" (or the equivalent standard text in another language). You set vatExemptionReasons.AE to an empty value, which suppresses the wording this library would otherwise supply. The reason is what tells the buyer — and their auditor — why an invoice line carries no VAT; a zero with no explanation is indistinguishable from a mistake.",
"fix": "Either remove vatExemptionReasons.AE entirely, in which case this library supplies the standard text \"Reverse charge\", or set it to your own wording in the invoice language.",
"example": "\"vatExemptionReasons\": { \"AE\": \"Reverse charge\" }",
"xpath": "/ubl:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:TaxExemptionReason",
"docsUrl": "https://attestwire.com/rules/BR-AE-10"
}
xpath is always a UBL path. On a CII invoice, look for the
matching CII field instead.