BR-KSA-09: Seller address: street, building, postcode, city, district, country

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

Warning: accepted with a warningAll invoicesFields: BT-35, KSA-17, BT-38, BT-37, KSA-3, BT-40

cac:AccountingSupplierParty/cac:Party/cac:PostalAddress must contain cbc:StreetName, cbc:BuildingNumber, cbc:CityName, cbc:PostalZone, cbc:CitySubdivisionName and cac:Country/cbc:IdentificationCode. The listed test text also requires cbc:PlotIdentification, but the executed check and the official text do not.

How to fix it

Fill all six elements in the seller's cac:PostalAddress, e.g. <cbc:StreetName>…</cbc:StreetName><cbc:BuildingNumber>…</cbc:BuildingNumber><cbc:CitySubdivisionName>…</cbc:CitySubdivisionName><cbc:CityName>…</cbc:CityName><cbc:PostalZone>…</cbc:PostalZone><cac:Country><cbc:IdentificationCode>SA</cbc:IdentificationCode></cac:Country>.

ZATCA's official text

[BR-KSA-09]-Seller address must contain street name (BT-35), building number (KSA-17), postal code (BT-38), city (BT-37), district (KSA-3), country code (BT-40). For more information please access this link: https://splonline.com.sa/en/national-address-1/
Source: ZATCA SDK 3.4.8 · ZATCA KSA rules

Fails when (the condition ZATCA's SDK runs)

not(exists(cbc:StreetName) and exists(cbc:BuildingNumber) and exists(cbc:CityName) and exists(cbc:PostalZone) and exists(cbc:CitySubdivisionName) and exists(cac:Country/cbc:IdentificationCode))

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