BG-25Invoice lineBT-131Invoice line net amount
Official rule text
[BR-DEX-02] The value of "Invoice line net amount" (BT-131) of an "INVOICE LINE" (BG-25) or a "SUB INVOICE LINE" (BG-DEX-01) shall equal the sum of the "Invoice line net amount" (BT-131) of the "SUB INVOICE LINE" (BG-DEX-01) elements directly below it.
Official text (German): Der Wert von "Invoice line net amount" (BT-131) einer "INVOICE LINE" (BG-25) oder einer "SUB INVOICE LINE" (BG-DEX-01) soll der Summe der "Invoice line net amount" (BT-131) der direkt darunterliegenden "SUB INVOICE LINE" (BG-DEX-01) entsprechen.
Why this error occurs
This is an arithmetic consistency rule: the validator recomputes the amount from its components and compares it with the value in the file. It fails when the totals were computed with different rounding, when line amounts were changed after the totals were written, or when allowances/charges are counted twice.
How to fix it
Recalculate exactly as the formula in the rule text says, round each component to 2 decimals first and then sum (not the other way round), and write the result into the element. Make sure allowances are subtracted and charges added only once, and that prepaid and rounding amounts are included where the formula lists them.
What the validator checks
Checked element (context):
UBL
/ubl:Invoice[$isExtension]Test (XPath):
(every $invoiceline in /ubl:Invoice/cac:InvoiceLine[ exists (./cac:SubInvoiceLine) ] satisfies $invoiceline/xs:decimal(cbc:LineExtensionAmount) = sum($invoiceline/cac:SubInvoiceLine/xs:decimal(cbc:LineExtensionAmount))) and (count( //cac:SubInvoiceLine [count(cac:SubInvoiceLine) > 0 and xs:decimal(cbc:LineExtensionAmount) = sum(cac:SubInvoiceLine/xs:decimal(cbc:LineExtensionAmount))]) = count(//cac:SubInvoiceLine [count(cac:SubInvoiceLine) > 0]))
Check your invoice
Drop your XML or PDF on the validator and every failed rule is linked to its page here. Free, no account, the file is not stored.
Same check via API:
curl -F file=@invoice.xml https://einvoicechecker.com/v1/validateRelated rules
BR-DE-CVD-03An invoice must contain at least one … INVOICE LINE in which the Scheme identifier of…BR-DEX-01The element … "Attached Document" uses a MIME code that is not permittedBR-DEX-03A Sub Invoice Line must contain exactly one "SUB INVOICE LINE VAT INFORMATION"BR-DEX-04Any scheme identifier in … MUST be coded using one of the ISO 6523 ICD listBR-DEX-05Any scheme identifier in … MUST be coded using one of the ISO 6523 ICD listBR-DEX-06Any scheme identifier in … MUST be coded using one of the ISO 6523 ICD listBR-DEX-07Any scheme identifier for an Endpoint Identifier in … MUST belong to the CEF EAS code…BR-DEX-08Any scheme identifier for a Delivery location identifier in … MUST be coded using one…
Frequently asked questions
What does BR-DEX-02 mean?
BR-DEX-02 is a xrechnung rule: The value of "Invoice line net amount" (BT-131) of an "INVOICE LINE" (BG-25) or a "SUB INVOICE LINE" (BG-DEX-01) shall equal the sum of the "Invoice line net amount" (BT-131) of the "SUB INVOICE LINE" (BG-DEX-01) elements directly below it.
Will my invoice be rejected because of BR-DEX-02?
No. BR-DEX-02 is a warning: the invoice is accepted but the recipient sees the notice. Fix it anyway, warnings often become errors in later rule versions.
Which formats does BR-DEX-02 apply to?
XRechnung in UBL or CII syntax, including ZUGFeRD / Factur-X PDFs with the XRECHNUNG profile. Invoices to German public authorities (federal, state and municipal) must pass it. Syntax: UBL.
Source: XRechnung 3.0.2, schematron 2.6.0 (KoSIT, September 2026). Catalogue generated from the official schematron on 2026-10-14.