Peppol BIS Billing 3.0.21 · UBL

PEPPOL-EN16931-P0104: Tax Category G MUST be used when exemption reason code is VATEX-EU-G

Peppol BIS Billing 3.0.21 · UBL

fatalformat

Original rule text

[PEPPOL-EN16931-P0104]-Tax Category G MUST be used when exemption reason code is VATEX-EU-G

Stored validation assertion
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:

Validate an invoice against these rules · All release changes