ZATCA / BR-KSA validation rules
Every ZATCA business rule the validator checks — why invoices are rejected, and how to fix each one.
ZATCA-BUY-001
An invoice shall contain the buyer name (PartyLegalEntity/RegistrationName). (EN16931 BR-07)
ZATCA-CUR-001
An invoice shall specify the document currency code (cbc:DocumentCurrencyCode).
ZATCA-CUR-002
The tax currency code (cbc:TaxCurrencyCode) must be SAR for ZATCA invoices. (BR-KSA)
ZATCA-HDR-001
An invoice shall have an invoice number (cbc:ID). (EN16931 BR-02)
ZATCA-HDR-002
A ZATCA invoice must carry a unique identifier (cbc:UUID).
ZATCA-HDR-003
An invoice shall have an issue date (cbc:IssueDate). (EN16931 BR-03)
ZATCA-HDR-004
An invoice shall specify a document type code (cbc:InvoiceTypeCode). (EN16931 BR-04)
ZATCA-HDR-005
The invoice type code must be one of the accepted ZATCA UNTDID 1001 codes (388 tax invoice, 383 debit note, 381 credit note, 386 prepayment).
ZATCA-KSA-01
When the buyer country is SA, the buyer postal address must include a building number (cbc:BuildingNumber). (BR-KSA-63)
ZATCA-KSA-02
When the seller country is SA, the seller postal address must include a building number (cbc:BuildingNumber). (BR-KSA)
ZATCA-KSA-03
A ZATCA invoice must reference the Previous Invoice Hash (AdditionalDocumentReference ID="PIH"); the first invoice uses an empty base hash. (BR-KSA hash chain)
ZATCA-PROF-001
A ZATCA invoice must carry a ProfileID (cbc:ProfileID), e.g. "reporting:1.0".
ZATCA-SEL-001
An invoice shall contain the seller name (PartyLegalEntity/RegistrationName). (EN16931 BR-06)
ZATCA-SEL-002
The seller VAT registration number (PartyTaxScheme/CompanyID) is required and must be 15 digits starting and ending with 3.