Peppol error codes

PEPPOL-EN16931-R053: more than one TaxTotal with VAT subtotals

Error code PEPPOL-EN16931-R053 means: the invoice contains more than one tax total (TaxTotal) with subtotals.

Rule set: Peppol BIS Billing 3.0 · Severity: error (fatal): an Access Point rejects the invoice · Checked against the official rules of May 2026

What does PEPPOL-EN16931-R053 mean?

The validator shows this message (as worded in the official rules):

[PEPPOL-EN16931-R053]-Only one tax total with tax subtotals MUST be provided.

A Peppol invoice has exactly one cac:TaxTotal with VAT subtotals. It contains the total VAT amount (BT-110) and one cac:TaxSubtotal per VAT category and rate. If your invoice has 6 % and 21 %, both subtotals belong in the same TaxTotal. A second TaxTotal is only allowed without subtotals, and only to state the VAT in another accounting currency. In our test, a second TaxTotal also triggered BR-CO-15: the total including VAT no longer adds up.

Common causes

  • The software creates a separate TaxTotal per VAT rate instead of one TaxTotal with several subtotals.
  • A template adds a second TaxTotal for the VAT in euro, but also puts subtotals in it.
  • When two documents were merged, both VAT blocks were kept.

How to fix it as the sender

  1. Create one cac:TaxTotal with the total VAT amount of the invoice.
  2. Put one cac:TaxSubtotal in it per combination of VAT category and rate.
  3. Only use a second TaxTotal when you state an accounting currency (BT-6), and then without subtotals. Validate again.

Received an invoice with this error?

An invoice with this error is not compliant. Ask the supplier for a corrected invoice and do not change the XML yourself.

Example in the XML

❌ Wrong

<cac:TaxTotal>
  <cbc:TaxAmount currencyID="EUR">42.00</cbc:TaxAmount>
  <cac:TaxSubtotal>...21 %...</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:TaxTotal>
  <cbc:TaxAmount currencyID="EUR">6.00</cbc:TaxAmount>
  <cac:TaxSubtotal>...6 %...</cac:TaxSubtotal>
</cac:TaxTotal>

✅ Correct

<cac:TaxTotal>
  <cbc:TaxAmount currencyID="EUR">48.00</cbc:TaxAmount>
  <cac:TaxSubtotal>...21 %...</cac:TaxSubtotal>
  <cac:TaxSubtotal>...6 %...</cac:TaxSubtotal>
</cac:TaxTotal>

Both snippets come from a complete test invoice that we checked with our validator: the wrong version gives exactly this message, the correct version no errors at all.

Good to know

The related rule PEPPOL-EN16931-R054 is about that second TaxTotal: when you state an accounting currency, there must be exactly one TaxTotal without subtotals, with the VAT amount in that currency.

Check your invoice

Drop your XML into the free validator. You see right away whether this error still occurs, with a link to the explanation for every message.

Official rule

The full rule with its technical test (Schematron) is in the official Peppol documentation:

Related error codes

  • BR-CO-18: The invoice does not contain any VAT breakdown.
  • BR-CO-15: The total with VAT is not equal to the total without VAT plus the VAT amount.

Frequently asked questions about PEPPOL-EN16931-R053

Can I create one TaxTotal per VAT rate?

No. All rates belong in one TaxTotal, as separate TaxSubtotal blocks.

Why does the same invoice also give BR-CO-15?

With two TaxTotal blocks, the rule cannot add up the total VAT amount unambiguously. As a result, the check on the total including VAT (BR-CO-15) fails. With one TaxTotal, both errors disappear.

← All Peppol error codes