Ifriqa Validator

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.

ZATCA (BR-KSA) validation rules — full reference | Ifriqa