Out-of-scope invoice line carries a VAT rate
Reported asrate_presenta rate where none belongs
What is wrong
An invoice line's cac:Item/cac:ClassifiedTaxCategory is coded O - out of scope - under the VAT tax scheme and carries a cbc:Percent element. EN 16931 rule BR-O-05, which ZATCA runs, requires that there be no rate at all on an out-of-scope line. The test is for the presence of the element and nothing is read out of it, so a rate written as zero fails exactly as a rate of fifteen would. Out of scope means outside VAT altogether, so the element has to be absent rather than nought - which is the opposite of what the zero-rated and exempt categories require, where a written zero is mandatory.
What to check in your ERP
Your export template needs a branch for this category: write cbc:Percent for every category except O, and omit the element entirely there. The usual cause is a template that writes the rate unconditionally and simply supplies zero when the tax engine returns nothing. Before making that change, consider whether the category is right at all: the out-of-scope category is hard to use on a Saudi invoice, because BR-O-02 forbids a seller VAT registration number on any document carrying an out-of-scope line while the Kingdom's own rules require the seller to be identified. If the supply is untaxed rather than genuinely outside VAT, the zero-rated (Z) or exempt (E) category is very likely the right one.