Skip to main content

BR-DEC-24 Invoice line allowance amount must not exceed two decimal places

The BT-136 Invoice line allowance amount is limited to a maximum of two decimal places. Any value carrying three or more fractional digits fails EN16931 validation.

Problem Description

The BT-136 Invoice line allowance amount is limited to a maximum of two decimal places. Any value carrying three or more fractional digits fails EN16931 validation.

ERROR

XRechnung 3.0

Context and Significance

This is an EN16931 core decimal-precision constraint enforced by KoSIT: every monetary amount in the invoice must be expressed with no more than two decimals.

Solution

Round BT-136 to two decimal places before serialising the amount, and apply the same rounding used in the BR-CO total and sum calculations so the invoice still reconciles.

Quick actions

Valid Examples

Use these points as the practical checks for this section.

  • BT-136 = 5.00 — two decimals accepted

Invalid Examples

Use these points as the practical checks for this section.

  • BT-136 = 5.005 — three decimals rejected

Code Examples

Valid XML
<cac:InvoiceLine>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
    <cbc:Amount currencyID="EUR">5.00</cbc:Amount>
  </cac:AllowanceCharge>
</cac:InvoiceLine>
Invalid XML
<cac:InvoiceLine>
  <cac:AllowanceCharge>
    <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
    <cbc:Amount currencyID="EUR">5.005</cbc:Amount>
  </cac:AllowanceCharge>
</cac:InvoiceLine>

Affected Fields

Validation Tools