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.
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
Review categories
Check each line category matches intent
Subtotal per category
Each unique category/rate needs TaxSubtotal
Validate totals
Sum of subtotals equals TaxTotal
XML Example
Generic example based on the rule's target XPath. Your actual XML structure may differ.
<!-- Required block is missing --> <!-- <cac:TaxSubtotal> ... </cac:TaxSubtotal> -->
<!-- Add the required block --> <cac:TaxSubtotal> <!-- child elements --> </cac:TaxSubtotal>
Technical Reference
//cac:TaxTotal/cac:TaxSubtotalCode 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
Frequently Asked Questions
Having multiple VAT categories (S + E + AE) on same invoice requires careful handling.
Verify each VAT category is correctly applied. Invoice Navigator can propose a fix for this error, which you review and confirm before it is applied.
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.
IN-MULTIPLE-VAT-CATEGORIES can be resolved with Invoice Navigator's guided fix workflow. The engine proposes a correction and applies it after your confirmation, with full evidence pack documentation.
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 Content
Last updated: 3 March 2026
Resolve IN-MULTIPLE-VAT-CATEGORIES with Confirmation
The compliance engine detects this error and presents a proposed fix for your review before applying it.