PEPPOL-EN16931-R053
The invoice may contain exactly one tax total in the invoice currency — that is, exactly one block carrying a breakdown. Several tax categories belong inside that one block as several sub-blocks.
- Severity
- Error
- Applies to
- CII, UBL
- Rule set
- v2026-01-31
Official rule text
No more than one tax total amount must be provided where currency id equals document currency code.
Why does PEPPOL-EN16931-R053 happen?
Emitting one tax block per rate reproduces the structure of your own system rather than the structure of the norm. The invoice then looks right and still carries two grand totals.
How do you fix PEPPOL-EN16931-R053?
Emit a single cac:TaxTotal with cbc:TaxAmount and one cac:TaxSubtotal inside it per tax category in UBL. CII has no such nesting: there, one ram:ApplicableTradeTax per category is correct.
In the XML
A UBL fragment. The CII path is named above — same change, different element names.
<cac:TaxTotal>
<cbc:TaxAmount currencyID="EUR">152.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="EUR">800.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="EUR">152.00</cbc:TaxAmount>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="EUR">14.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="EUR">200.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="EUR">14.00</cbc:TaxAmount>
</cac:TaxSubtotal>
</cac:TaxTotal><cac:TaxTotal>
<cbc:TaxAmount currencyID="EUR">166.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="EUR">800.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="EUR">152.00</cbc:TaxAmount>
</cac:TaxSubtotal>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="EUR">200.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="EUR">14.00</cbc:TaxAmount>
</cac:TaxSubtotal>
</cac:TaxTotal>NormAPI provides technical validation, not tax or legal advice.