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. 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
Handle IN-MULTIPLE-VAT-CATEGORIES Automatically in Your Pipeline
The compliance engine auto-remediates this error with controlled safety policies and evidence pack generation.