BR-KSA-F-10: Buyer national ID (NAT) must be 10 digits starting with 1

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

Warning: accepted with a warningConditional, see belowFields: BT-46

When the buyer's cac:AccountingCustomerParty/cac:Party/cac:PartyIdentification has cbc:ID with schemeID='NAT', the value must be exactly 10 digits starting with 1; otherwise a warning is raised. In the validator this test is the failure condition: the expression shown is TRUE when the value is wrong. The published test uses cac:Party/cac:PartyIdentification paths although its context is the cbc:ID itself; the executed check tests the cbc:ID value directly.

How to fix it

Put the correct national ID number as exactly 10 digits starting with 1, e.g. <cbc:ID schemeID="NAT">1105293847</cbc:ID> with no letters, dashes or spaces. If the number you have does not fit this shape, check that the schemeID is the right one.

ZATCA's official text

[BR-KSA-F-10] - The value provided in Other Buyer ID (BT-46) for the scheme ID 'NAT' appears to be incorrect. Please recheck the value to avoid non-compliance.
Source: ZATCA SDK 3.4.8 · ZATCA KSA rules

Fails when (the condition ZATCA's SDK runs)

(exists(.) and normalize-space(@schemeID) = 'NAT') and not( starts-with(normalize-space(.), '1') and string-length(normalize-space(.)) = 10 and not(translate((.), '0123456789', '')))

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