BR-KSA-EN16931-07: Net item price must equal gross price minus price discount
Applies when cac:InvoiceLine/cac:Price/cac:AllowanceCharge contains cbc:BaseAmount (gross price, BT-148). Then cac:Price/cbc:PriceAmount (net price, BT-146) must exactly equal that cbc:BaseAmount minus the cbc:Amount (price discount, BT-147) of the same cac:AllowanceCharge.
How to fix it
Make the numbers consistent: e.g. gross <cbc:BaseAmount currencyID="SAR">100.00</cbc:BaseAmount> and discount <cbc:Amount currencyID="SAR">10.00</cbc:Amount> require <cbc:PriceAmount currencyID="SAR">90.00</cbc:PriceAmount>.
ZATCA's official text
[BR-KSA-EN16931-07]-Item net price (BT-146) must equal (Item Gross price (BT-148) - Allowance amount (BT-147)) when gross price is provided.
Source: ZATCA SDK 3.4.8 · ZATCA KSA rules
Fails when (the condition ZATCA's SDK runs)
not(xs:decimal(../../cbc:PriceAmount) = xs:decimal(.) - xs:decimal(../cbc:Amount))
Related rules
- BR-26 · Each invoice line needs an item net price (BT-146)
- BR-KSA-82 · Prepayment lines must carry zero line amounts
- BR-KSA-EN16931-11 · Line net amount = quantity × net price ± line charges/allowances
- BR-KSA-EN16931-04 · An allowance/charge percentage needs a base amount
- BR-KSA-EN16931-05 · An allowance/charge base amount needs a percentage
- BR-KSA-EN16931-06 · Price-level allowance/charge must have ChargeIndicator false
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