BR-43Each Invoice line charge (BG-28) shall have an Invoice line charge amount (BT-141).
Official rule text
Every invoice line charge (BG-28) must carry an amount (BT-141) — a charge with no amount changes nothing and does not belong in the document.
- Severity
- Error
- Applies to
- CII, UBL
- Rule set
- v2026-08-31
- Checked on
Written and checked against the official KoSIT rule set by Dmytro Yalanskyi, NormAPI.
Why does BR-43 happen?
Line charges are rare and often only half-built in the mapping: the group exists, and the amount is bound to a field the source system does not have.
What the validator checks
The expression the official KoSIT rule set evaluates — not paraphrased, but read from the Schematron file it ships. UBL and CII address different document trees, so the same rule reads differently in each.
- UBL
exists(cbc:Amount)- CII
(../ram:ActualAmount)
Source: rule set v2026-08-31
How do you fix BR-43?
Write the amount into cbc:Amount inside cac:AllowanceCharge in UBL, ram:ActualAmount inside ram:SpecifiedTradeAllowanceCharge in CII. On how amount, base amount and percentage relate, see PEPPOL-EN16931-R040.
In the XML
A UBL fragment. The CII path is named above — same change, different element names.
<cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cac:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:AllowanceChargeReason>Expresszuschlag</cbc:AllowanceChargeReason>
</cac:AllowanceCharge>
</cac:InvoiceLine><cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cac:AllowanceCharge>
<cbc:ChargeIndicator>true</cbc:ChargeIndicator>
<cbc:AllowanceChargeReason>Expresszuschlag</cbc:AllowanceChargeReason>
<cbc:Amount currencyID="EUR">50.00</cbc:Amount>
</cac:AllowanceCharge>
</cac:InvoiceLine>Related rules
NormAPI provides technical validation, not tax or legal advice.