BR-37: Each document-level charge needs a VAT category code (BT-102)

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

Warning: accepted with a warningConditional, see belowFields: BG-21, BT-102

Applies only to document-level cac:AllowanceCharge elements with cbc:ChargeIndicator = true; the validator checks that each contains cac:TaxCategory/cbc:ID. The published test text is malformed (it uses an undeclared cvc: prefix and an absolute path); the executed check is the presence of cac:TaxCategory/cbc:ID, matching the official message.

How to fix it

Inside each document-level charge add a tax category with an ID, 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-37]-Each Document level charge (BG-21) shall have a Document level charge VAT category code (BT-102).
Source: ZATCA SDK 3.4.8 · EN 16931 (CEN) rules

Fails when (the condition ZATCA's SDK runs)

not(exists(cac:TaxCategory/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