BR-KSA-93: Zero-rated (Z) line VAT breakdown needs an exemption reason code
Each line-level cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory with cbc:ID 'Z' (VAT) must have a non-empty cbc:TaxExemptionReasonCode (KSA-41). The executed check tests presence only (allowed values are checked by BR-KSA-CL-07), and it is evaluated only when the document also contains a standard-rated (S) VAT category.
How to fix it
Add a reason code to that line TaxCategory, e.g. <cbc:TaxExemptionReasonCode>VATEX-SA-32</cbc:TaxExemptionReasonCode>.
ZATCA's official text
[BR-KSA-93]-An Invoice line (BG-25) where the Prepayment VAT category code (KSA-33) is "Zero-rated" the Prepayment VAT exception reason code (KSA-41) should be provided.
Source: ZATCA SDK 3.4.8 · ZATCA KSA rules
Fails when (the condition ZATCA's SDK runs)
not(exists(cbc:TaxExemptionReasonCode) and normalize-space(cbc:TaxExemptionReasonCode )!='' )
Related rules
- BR-16 · Every invoice needs at least one invoice line (BG-25)
- BR-21 · Each invoice line needs a line identifier (BT-126)
- BR-22 · Each invoice line needs an invoiced quantity (BT-129)
- BR-24 · Each invoice line needs a line net amount (BT-131)
- BR-25 · Each invoice line needs an item name (BT-153)
- BR-26 · Each invoice line needs an item net price (BT-146)
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