BR-32: Each document-level allowance needs a VAT category code (BT-95)

Explained by Matheel from ZATCA's rule text and the condition SDK 3.4.8 executes · Updated

Error: the invoice is rejectedConditional, see belowFields: BG-20, BT-95

Applies only to document-level cac:AllowanceCharge elements with cbc:ChargeIndicator = false; each must contain a cac:TaxCategory whose cac:TaxScheme/cbc:ID is 'VAT' and whose own cbc:ID is not empty.

How to fix it

Inside each document-level allowance add a VAT category, e.g. <cac:TaxCategory><cbc:ID>S</cbc:ID><cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme></cac:TaxCategory>.

ZATCA's official text

[BR-32]-Each Document level allowance (BG-20) shall have a Document level allowance VAT category code (BT-95).
Source: ZATCA SDK 3.4.8 · EN 16931 (CEN) rules

Fails when (the condition ZATCA's SDK runs)

not(exists(cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID) and (cac:TaxCategory[cac:TaxScheme/normalize-space(upper-case(cbc:ID))='VAT']/cbc:ID) !='')

Related rules

Validate your invoice against ZATCA's rules

Paste the XML and see every error and warning. It runs in your browser; the invoice goes nowhere.

Validate an invoice or try Matheel