warningpeppol-bis-3

IN-MULTIPLE-VAT-CATEGORIES:Multiple VAT categories on invoice

Having multiple VAT categories (S, E, AE, etc.) on the same invoice requires careful validation and handling.

Severity
Warning
Rule set
peppol-bis-3
Country
All EU
Fix type
CONFIRM
Confidence
75%
Category
tax

Engine Classification

Requires user confirmation before application

What is IN-MULTIPLE-VAT-CATEGORIES?

IN-MULTIPLE-VAT-CATEGORIES is a warning validation rule defined in the peppol-bis-3 specification. It validates the TaxSubtotal element in the UBL invoice XML.

This is a soft validation failure. The invoice may pass initial transmission, but non-compliant values in this field can cause problems during tax audits, buyer-side processing, or downstream VAT reconciliation.

Target path: //cac:TaxTotal/cac:TaxSubtotal

Why This Error Matters

Mixed categories require careful line-level categorization.

IN-MULTIPLE-VAT-CATEGORIES is a soft failure. The invoice may pass initial validation, but the non-compliant field can cause issues at the receiving end — tax authorities may flag it during audits, buyer ERP systems may fail to process it, or VAT reconciliation may produce mismatches. Fixing warnings before they accumulate prevents larger compliance gaps.

Validator Behavior

  • ·Generates validation warning
  • ·Rejected by PEPPOL Access Points
  • ·Error returned: IN-MULTIPLE-VAT-CATEGORIES
  • ·Specification: peppol-bis-3

How to Fix It

1.

Review categories

Check each line category matches intent

2.

Subtotal per category

Each unique category/rate needs TaxSubtotal

3.

Validate totals

Sum of subtotals equals TaxTotal

XML Example

Generic example based on the rule's target XPath. Your actual XML structure may differ.

Before
<!-- Required block is missing -->
<!-- <cac:TaxSubtotal> ... </cac:TaxSubtotal> -->
After
<!-- Add the required block -->
<cac:TaxSubtotal>
  <!-- child elements -->
</cac:TaxSubtotal>

Technical Reference

XPath//cac:TaxTotal/cac:TaxSubtotal
Specpeppol-bis-3
Operationnormalize
StrategyConsolidate or resolve multiple VAT categories in tax breakdown

Code Example

<cac:TaxTotal>
  <cbc:TaxAmount currencyID="EUR">210.00</cbc:TaxAmount>
  <cac:TaxSubtotal>
    <cbc:TaxableAmount currencyID="EUR">1000.00</cbc:TaxableAmount>
    <cbc:TaxAmount currencyID="EUR">210.00</cbc:TaxAmount>
    <cac:TaxCategory><cbc:ID>S</cbc:ID><cbc:Percent>21</cbc:Percent></cac:TaxCategory>
  </cac:TaxSubtotal>
  <cac:TaxSubtotal>
    <cbc:TaxableAmount currencyID="EUR">500.00</cbc:TaxableAmount>
    <cbc:TaxAmount currencyID="EUR">0.00</cbc:TaxAmount>
    <cac:TaxCategory><cbc:ID>E</cbc:ID></cac:TaxCategory>
  </cac:TaxSubtotal>
</cac:TaxTotal>

Common Causes

  • ·Lines miscategorized
  • ·Missing subtotal for category
  • ·Wrong category assignments

Seeing this in production? The API handles IN-MULTIPLE-VAT-CATEGORIES automatically. See the fix response →

Commonly Seen In

All invoicing software

Frequently Asked Questions

Having multiple VAT categories (S + E + AE) on same invoice requires careful handling.

Verify each VAT category is correctly applied. You can also use Invoice Navigator's automatic Fixer tool to correct this instantly.

PEPPOL-EN16931-R100 is a warning that may not always cause rejection, but it indicates a potential compliance issue that should be addressed to ensure full compatibility.

Many instances of PEPPOL-EN16931-R100 can be automatically corrected using Invoice Navigator's Fixer tool. Upload your invoice and the tool will identify and fix common issues, including multiple vat categories on same invoice.

PEPPOL-EN16931-R100 is commonly seen in exports from All invoicing software. These software packages sometimes generate invoices that need adjustment to meet full compliance standards.

Related Errors

Last updated: 21 February 2026

Share this guide:

Handle IN-MULTIPLE-VAT-CATEGORIES Automatically in Your Pipeline

The compliance engine auto-remediates this error with controlled safety policies and evidence pack generation.