IN-TAX-CATEGORY-CODES:Tax category codes validation
Fix: Update the `cbc:ID` element to use a value from the allowed code list.
Tax category codes should be from UNCL5305 Peppol subset (AE, E, G, K, L, M, O, S, Z)
Engine Classification
Financial or legal field · Modification blocked by policy
Reason: Tax category codes affect tax calculation and reporting. The correct code must be determined based on the transaction type and applicable tax rules.
What is IN-TAX-CATEGORY-CODES?
IN-TAX-CATEGORY-CODES is a warning validation rule defined in the Peppol BIS 3.0 specification. It validates the Percent element under TaxCategory in the UBL invoice XML.
The invoice may pass transmission, but this non-compliance can cause problems during tax audits or buyer-side processing.
Target path: XPath: //cac:TaxCategory/cbc:Percent
Why This Error Matters
VAT rate must be correct for proper tax calculation and reporting.
IN-TAX-CATEGORY-CODES is a soft failure that can cause issues at the receiving end — tax audits, ERP processing, or VAT reconciliation mismatches.
Validator Behavior
- ·Generates validation warning
- ·Rejected by PEPPOL Access Points
- ·Error returned: IN-TAX-CATEGORY-CODES
- ·Specification: Peppol BIS 3.0
How to Fix It
Check category
S requires standard rate (19-27% in EU)
Zero categories
Z, E, AE, K, G should have 0 or no percent
Reduced rates
AA for reduced rate with applicable percentage
Before / After
<cac:TaxCategory> <cbc:ID>INVALID_CODE</cbc:ID> </cac:TaxCategory>
<cac:TaxCategory> <cbc:ID>VALID_CODE</cbc:ID> </cac:TaxCategory>
Technical Reference
XPath: //cac:TaxCategory/cbc:PercentCode Example
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>21</cbc:Percent>
</cac:TaxCategory>Common Causes
- ·Wrong rate for country
- ·Using 0% with S category
- ·Invalid percentage value
Seeing this in production? The API handles IN-TAX-CATEGORY-CODES automatically. See the fix response →
Commonly Seen In
Frequently Asked Questions
The VAT percentage must be a valid rate for the tax category.
Update the `cbc:ID` element to use a value from the allowed code list. This error involves a protected field — Invoice Navigator flags it in your pipeline so your team can correct it at the source.
Yes, PEPPOL-EN16931-R007 is a critical error that must be fixed.
Related Errors
Related Content
Last updated: 3 March 2026
Validate your invoice
Drop your XML here to check for IN-TAX-CATEGORY-CODES
Detect IN-TAX-CATEGORY-CODES before submission
This error involves a financial field that can't be auto-modified. We'll flag it with a clear diagnosis so you can fix it at the source.