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.

Fails
<cac:InvoiceLine>
  <cbc:ID>1</cbc:ID>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
    <cbc:AllowanceChargeReason>Expresszuschlag</cbc:AllowanceChargeReason>
  </cac:AllowanceCharge>
</cac:InvoiceLine>
Fixed
<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.