Account
English

BR-DEX-02: The value of "Invoice line net amount" of an "INVOICE LINE" or a "SUB INVOICE LINE"…

XRechnung rule · Warning · UBL

StandardXRechnung 3.0.2 (KoSIT, German CIUS of EN 16931)SeverityWarning: the invoice is accepted but should be correctedSyntaxUBLBusiness terms
  • BG-25 Invoice line
  • BT-131 Invoice line net amount
Applies toXRechnung 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.

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.

Check your invoice →

Same check via API:

curl -F file=@invoice.xml https://einvoicechecker.com/v1/validate

Related rules

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.