BR-KSA-82: Prepayment lines must carry zero line amounts

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

Error: the invoice is rejectedConditional, see belowFields: BG-25, KSA-30, BT-146, BT-136, BT-141, BT-131, KSA-11, KSA-12

In an invoice with cbc:PrepaidAmount > 0, each line with a cac:DocumentReference of type 386 must have cbc:LineExtensionAmount, cac:TaxTotal/cbc:TaxAmount, cac:TaxTotal/cbc:RoundingAmount and cac:Price/cbc:PriceAmount equal to 0, and any line cac:AllowanceCharge/cbc:Amount equal to 0. Unlike the 'if exist' wording, the check fails when LineExtensionAmount, TaxAmount, RoundingAmount or PriceAmount is missing.

How to fix it

In prepayment lines write those amounts as zero, e.g. <cbc:LineExtensionAmount currencyID="SAR">0.00</cbc:LineExtensionAmount>, cac:TaxTotal with cbc:TaxAmount 0 and cbc:RoundingAmount 0, and cac:Price/cbc:PriceAmount 0.00; the prepaid values go only in the line's cac:TaxSubtotal.

ZATCA's official text

[BR-KSA-82]-An Invoice line (BG-25) where Prepayment Document Type Code (KSA-30) is provided, then Item net price (BT-146); Invoice line allowance amount (BT-136); Invoice line charge amount (BT-141); Item line net amount (BT-131); line VAT amount (KSA-11); and line amount with VAT (KSA-12) for that line shall be 0 (Zero), if exist.
Source: ZATCA SDK 3.4.8 · ZATCA KSA rules

Fails when (the condition ZATCA's SDK runs)

not( (../cbc:LineExtensionAmount)=0.00) or not((../cac:TaxTotal/cbc:TaxAmount)=0.00) or not((../cac:TaxTotal/cbc:RoundingAmount)=0) or not((../cac:Price/cbc:PriceAmount)=0.00)

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