BR-KSA-DEC-01: Document allowance percentage must be 0-100 with up to 2 decimals
For each document-level cac:AllowanceCharge with cbc:ChargeIndicator false (not inside cac:Price), a non-empty cbc:MultiplierFactorNumeric (BT-94) must be a number from 0 to 100 with at most two decimals. The message also names the line allowance percentage (BT-138), but the executed check covers only document-level allowances.
How to fix it
Write the percentage as a plain number without a % sign, e.g. <cbc:MultiplierFactorNumeric>10.00</cbc:MultiplierFactorNumeric>.
ZATCA's official text
[BR-KSA-DEC-01]-The allowance percentage values (BT-94, BT-138) must be from 0.00 to 100.00, with maximum two decimal places. Only numerals are accepted, the percentage symbol (%) is not allowed.
Source: ZATCA SDK 3.4.8 · ZATCA KSA rules
Fails when (the condition ZATCA's SDK runs)
string-length(cbc:MultiplierFactorNumeric) > 0 and not(xs:decimal(cbc:MultiplierFactorNumeric) >= 0 and xs:decimal(cbc:MultiplierFactorNumeric) <= 100 and string-length(substring-after(cbc:MultiplierFactorNumeric,'.')) <=2)
Related rules
- BR-KSA-EN16931-03 · Allowance/charge amount must equal base amount × percentage / 100
- 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-CL-04 · VAT exemption reason code must fit the VAT category
- BR-KSA-CL-06 · Charge reason codes must come from UNTDID 7161
- BR-KSA-CL-07 · Prepayment exemption reason code must fit its VAT category
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