SchemaGuard by Ironbark Digital · EN 16931 / Peppol / XRechnung Reference
← All 294 EN 16931 / Peppol Rules & Live Validator
FATAL Official EN 16931 / Peppol / CIUS Rule BT/BG Fields: BT-121

BR-CL-22 — E-Invoice Validation Rule & Fix

Fixture ID: badVatexCode · XPath: /ubl:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:TaxExemptionReasonCode

1. Why This Rule Triggers (Diagnostic Message)

The VAT exemption reason code (BT-121) supplied for category "E" is "NOT-A-VATEX", which is not in the CEF VATEX list (88 codes). BT-121 is the machine-readable half of the exemption: BT-120 tells a human why no VAT was charged, and this code tells a tax administration which article of the VAT Directive the exemption rests on. Free text, a directive article written out longhand, or a national code that is not in the VATEX list will all fail. Unusually, the comparison is case-insensitive — the schematron upper-cases the value first — so case is the one thing that cannot be the problem here.

2. How to Fix BR-CL-22

Set vatExemptionReasonCodes["E"] to a VATEX code — for category E that is normally "VATEX-EU-132-1B" or another article-specific code such as "VATEX-EU-132-1A", since an exempt supply is exempt under a named article. Leave the code unset and supply only vatExemptionReasons text if none of the codes fits.

3. Valid Code / Payload Example

"vatExemptionReasonCodes": { "E": "VATEX-EU-132-1B" }
Test & Validate XML / JSON in Live SchemaGuard Validator →