Attestwire › Rule reference › BR-13
BR-13 An invoice must state its total amount without VAT
noun · EN 16931 · fatal · BT-109
For a sample invoice, the library reports: An invoice must have the Invoice total amount without VAT (BT-109), and this document does not state it: there is no element at /ubl:Invoice/cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount. It is the figure the buyer books as expenditure, separately from the VAT they may reclaim.
- Business term
BT-109- Severity
fatal
The fix
Add cbc:TaxExclusiveAmount to the document with the amount the issuing system computed. If you are generating the document with this library, generation always emits all of the document totals, so this cannot happen on the way out — it means the file was produced by something else.
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-13",
"field": "BT-109",
"severity": "fatal",
"message": "An invoice must have the Invoice total amount without VAT (BT-109), and this document does not state it: there is no element at /ubl:Invoice/cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount. It is the figure the buyer books as expenditure, separately from the VAT they may reclaim. The value was not inferred from the lines — a document total is a statement the issuer makes, and a validator's job is to check it, not to supply it. The rest of this report still uses the totals computed from the lines, so you can see what the document ought to have said.",
"fix": "Add cbc:TaxExclusiveAmount to the document with the amount the issuing system computed. If you are generating the document with this library, generation always emits all of the document totals, so this cannot happen on the way out — it means the file was produced by something else.",
"xpath": "/ubl:Invoice/cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount",
"docsUrl": "https://attestwire.com/rules/BR-13"
}
xpath is always a UBL path. On a CII invoice, look for the
matching CII field instead.