BR-43 The invoice line charge at lines[0].charges[0], on line 1 (id "1"), has no usable amount (BT-141): you supplied missing
The invoice line charge at lines[0].charges[0], on line 1 (id "1"), has no usable amount (BT-141): you supplied missing. Each BG-28 group must have one, and at line level the consequence is immediate — the line net amount is BT-129 x (BT-146 / BT-149) − Σ BT-136 + Σ BT-141, so an entry with no amount silently contributes nothing and the line total the buyer sees is not the one you meant to send.
This rule is implemented and its error payload below is real, but the long-form write-up — normative text, worked example, divergence note — is not written yet. Everything the library knows about this rule is on this page. Ask and we will prioritise it.
- Business term
BT-141- Severity
fatal
What the library returns
The exact object in result.errors when this rule fires.
Generated by running @attestwire/en16931, not transcribed:
{
"rule": "BR-43",
"field": "BT-141",
"severity": "fatal",
"message": "The invoice line charge at lines[0].charges[0], on line 1 (id \"1\"), has no usable amount (BT-141): you supplied missing. Each BG-28 group must have one, and at line level the consequence is immediate — the line net amount is BT-129 x (BT-146 / BT-149) − Σ BT-136 + Σ BT-141, so an entry with no amount silently contributes nothing and the line total the buyer sees is not the one you meant to send.",
"fix": "Set lines[0].charges[0].amount to a positive number. Line level entries have no VAT category of their own: they inherit the line's, which is why a line discount changes BT-131 rather than appearing in the VAT breakdown on its own account.",
"example": "\"charges\": [{ \"amount\": 12.50, \"reason\": \"Handling\" }]",
"xpath": "/ubl:Invoice/cac:InvoiceLine[1]/cac:AllowanceCharge[2]/cbc:Amount",
"docsUrl": "https://attestwire.com/rules/BR-43"
}
xpath locates the element in the generated UBL document,
which is where a KoSIT or Peppol validator will report the same problem.
A passing value
"charges": [{ "amount": 12.50, "reason": "Handling" }]The fix
Set lines[0].charges[0].amount to a positive number. Line level entries have no VAT category of their own: they inherit the line's, which is why a line discount changes BT-131 rather than appearing in the VAT breakdown on its own account.