PEPPOL-EN16931-P0104: Tax Category G MUST be used when exemption reason code is VATEX-EU-G
Peppol BIS Billing 3.0.21 · UBL
Original rule text
[PEPPOL-EN16931-P0104]-Tax Category G MUST be used when exemption reason code is VATEX-EU-G
normalize-space(cbc:ID)='G'PEPPOL-EN16931-P0104 is a fatal rule in the format layer of Peppol BIS Billing 3.0.21 · UBL. An invoice that breaks it is rejected.
What this rule requires
In UBL, this fatal rule requires that every cac:TaxCategory element whose cbc:TaxExemptionReasonCode is VATEX-EU-G (case-insensitive) has a cbc:ID equal to G. The test applies normalize-space(), so the cbc:ID must not be empty or only whitespace, and after trimming surrounding whitespace it must be exactly G. A document fails when a cac:TaxCategory carries that exemption reason code but its cbc:ID is not G.
How to fix
In the invoice, locate each cac:TaxCategory that contains cbc:TaxExemptionReasonCode with value VATEX-EU-G (any capitalization) and set its child cbc:ID to the value G. In the producing system, ensure that tax categories using exemption reason VATEX-EU-G always have tax category code G.
Guidance on this rule. The original text above is authoritative.
Where to go next
PEPPOL-EN16931-P0104 changed in 1 published Peppol BIS Billing UBL release comparison:
- PEPPOL-EN16931-P0104 in 3.0.2 → 3.0.10: New rule
Validate an invoice against these rules · All release changes