BR-S-09: Standard-rated (S) tax amount = taxable amount × rate / 100

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

Warning: accepted with a warningConditional, see belowFields: BT-117, BG-23, BT-118, BT-116, BT-119

For each cac:TaxSubtotal with VAT category 'S', cbc:TaxAmount must equal cbc:TaxableAmount × cac:TaxCategory/cbc:Percent / 100 rounded to two decimals. The executed check allows a difference of 0.01 per invoice line (0.01 × number of cac:InvoiceLine) and also warns if cbc:Percent is empty; the published test expression shows a tolerance of ±1.

How to fix it

Compute the subtotal tax from its own taxable amount and rate, e.g. TaxableAmount 4.00 at <cbc:Percent>15.00</cbc:Percent> gives <cbc:TaxAmount currencyID="SAR">0.60</cbc:TaxAmount>.

ZATCA's official text

[BR-S-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where VAT category code (BT-118) is "Standard rated" shall equal the VAT category taxable amount (BT-116) multiplied by the VAT category rate (BT-119) / 100), rounded to two decimals.
Source: ZATCA SDK 3.4.8 · EN 16931 (CEN) rules

Fails when (the condition ZATCA's SDK runs)

$checkOne or not($checkTwo)

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