BR-KSA-66: Seller postal code (BT-38) must be exactly 5 digits
The seller's cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cbc:PostalZone (BT-38) must exist and match ^[0-9]{5}$: exactly five digits.
How to fix it
Provide the seller postal code as five digits, e.g. <cbc:PostalZone>23333</cbc:PostalZone>.
ZATCA's official text
[BR-KSA-66]-Seller postal code (BT-38) must be 5 digits.
Source: ZATCA SDK 3.4.8 · ZATCA KSA rules
Fails when (the condition ZATCA's SDK runs)
not(exists(cbc:PostalZone) and matches(cbc:PostalZone, '^[0-9]{5}$'))
Related rules
- BR-KSA-09 · Seller address: street, building, postcode, city, district, country
- BR-KSA-60 · Simplified invoices must include the cac:Signature block (KSA-15)
- BR-KSA-61 · Every invoice needs the previous invoice hash (PIH, KSA-13)
- BR-KSA-63 · Saudi buyer needs a full national address on standard invoices
- BR-KSA-67 · Saudi buyer postal code (BT-53) must be 5 digits
- BR-KSA-68 · Every invoice needs a tax currency code (BT-6)
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