BR-43: Each line-level charge needs an amount (BT-141)

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

Warning: accepted with a warningConditional, see belowFields: BG-28, BT-141

Applies only to cac:InvoiceLine/cac:AllowanceCharge elements with cbc:ChargeIndicator = true (a line charge); the validator checks that each contains cbc:Amount. The published test text is malformed (lower-case cbc:amount via an absolute path), but the executed condition is the presence of cbc:Amount, matching the official message.

How to fix it

Add the amount inside each line-level charge, e.g. <cbc:Amount currencyID="SAR">5.00</cbc:Amount>.

ZATCA's official text

[BR-43]-Each Invoice line charge (BG-28) shall have an Invoice line charge amount (BT-141).
Source: ZATCA SDK 3.4.8 · EN 16931 (CEN) rules

Fails when (the condition ZATCA's SDK runs)

(not (exists(./cbc:Amount)))

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