einvoice / EN 16931 / XRechnung rule reference
BR-CO-24
Each Invoice line charge (BG-28) shall contain an Invoice line charge reason (BT-144) or an Invoice line charge reason code (BT-145), or both.
Jeder ZUSCHLAG AUF EBENE DER RECHNUNGSPOSITION (BG-28) muss einen Grund für den Zuschlag auf Ebene der Rechnungsposition (BT-144) oder einen Code für den Grund des Zuschlags auf Ebene der Rechnungsposition (BT-145) oder beides enthalten.
Deutsche Fassung: Übersetzung der gleichen BT/BG-Semantik (translation — not the official assert).
- Requires
- Each Invoice line charge (BG-28) shall contain an Invoice line charge reason (BT-144) or an Invoice line charge reason code (BT-145), or both.
- Business terms
BG-28BT-144BT-145- Syntax
- Binds the UBL-2.1 Invoice / CreditNote syntax and the UN/CEFACT-CII syntax
- Location (UBL-2.1 path)
//cac:InvoiceLine/cac:AllowanceCharge[cbc:ChargeIndicator = true()]- Fix
- Add the required element at `//cac:InvoiceLine/cac:AllowanceCharge[cbc:ChargeIndicator = true()]`: Each Invoice line charge (BG-28) shall contain an Invoice line charge reason (BT-144) or an Invoice line charge reason code (BT-145), or both.
- Fix (Deutsch)
- Ergänzen Sie das erforderliche Element bei `//cac:InvoiceLine/cac:AllowanceCharge[cbc:ChargeIndicator = true()]`: Jeder ZUSCHLAG AUF EBENE DER RECHNUNGSPOSITION (BG-28) muss einen Grund für den Zuschlag auf Ebene der Rechnungsposition (BT-144) oder einen Code für den Grund des Zuschlags auf Ebene der Rechnungsposition (BT-145) oder beides enthalten.
- Severity
- fatal
- Provenance source
en16931-ubl- Provenance assert
Each Invoice line charge (BG-28) shall contain an Invoice line charge reason (BT-144) or an Invoice line charge reason code (BT-145), or both.
The Location above is a UBL-2.1 path, and no UN/CEFACT-CII path for this rule is published here; Fix and Fix (Deutsch), verbatim from remediation_catalog.json and not reworded here; the UN/CEFACT-CII binding of this rule is differentially proven against the official CEN EN 16931 1.3.16 Schematron.
Everything here is free and open source — pick up whatever helps, at your own pace:
- Licensing — Apache-2.0 for everyone, including closed-source embedding; an optional $29 / $290 commercial license adds support and rule-corpus update notices.
- German remediation (
--lang de) — the German fix for this rule is in the section above; the CLI surfaces it in place of the English message with--lang de. - Quickstart / free on-ramp — the README, a copy-paste CI-gate recipe, and a 5-minute worked walkthrough.