fatal UBL auto-fix
An XRechnung extension rule (KoSIT): it applies to invoices using the XRechnung extension profile, for example third-party payments (BG-DEX-09) or sub-invoice lines. This is an error: the invoice is rejected until it is fixed.
Automatic fix: 9 € per file (excl. VAT where applicable). Amount due for payment (BT-115) is recalculated including third-party payments (BG-DEX-09). The result page shows which errors the repair removes and whether the corrected file then passes — before you pay. Many files? Pilot and Repair API.
[BR-DEX-09] Amount due for payment (BT-115) = Invoice total amount with VAT (BT-112) - Paid amount (BT-113) + Rounding amount (BT-114) + Σ Third party payment amount (BT-DEX-002).
XRechnung rule texts are published in German by KoSIT; the text above is the original.
Amount due for payment (BT-115) is recalculated including third-party payments (BG-DEX-09).
This rule is in the deterministic set of our repair engine (UBL 2.1; measured 2026-10-23: XRechnung 15 broken test invoices accepted after repair, 45 valid invoices unchanged; Peppol BIS Billing 3: 10 official examples unchanged, 40 mutated invoices: 36 accepted after repair, 4 rejected as expected — one documented limit, two with the repair parameter switched off, one where no address could be derived; profile conversion of 33 XRechnung test invoices to Peppol: 30 accepted). For UN/CEFACT CII (Factur-X / ZUGFeRD EN 16931 XML, XRechnung CII) the engine repairs the totals chain, VAT breakdown, rounding, decimals and element order (measured 2026-10-24: 53 valid CEN and XRechnung CII invoices unchanged; 28 broken invoices: 27 accepted after repair, 1 rejected as expected because a VAT exemption reason cannot be derived). Single files: 9 € on the result page; many files: the Repair API — see Pricing.
| Syntax | Severity | Context (XPath) | Test (XPath) |
|---|---|---|---|
| XRechnung-UBL | fatal | | (round((xs:decimal(cbc:PayableAmount) - $payableroundingamount) * 10 * 10) div 100) = (round((xs:decimal(cbc:TaxInclusiveAmount) - $prepaidamount + $thirdpartyprepaidamount) * 10 * 10) div 100) |
BT-115, BT-112, BT-113, BT-114
BR-15, BR-CO-16, BR-DEC-18, DE-R-018, BR-DE-18, BR-14, BR-DEC-14, BR-CO-15, BR-DEC-16, BR-DEC-17
Source: XRechnung Schematron, UBL (itplr-kosit/xrechnung-schematron, Apache-2.0).