BR-KSA-63: Saudi buyer needs a full national address on standard invoices
When the buyer's cac:PostalAddress/cac:Country/cbc:IdentificationCode (BT-55) is 'SA', the buyer address must have non-blank cbc:StreetName (BT-50), cbc:BuildingNumber (KSA-18), cbc:PostalZone (BT-53), cbc:CityName (BT-52), cbc:CitySubdivisionName (district, KSA-4) and the country code. The check only runs on standard tax invoices and their notes (@name starting '01'), which the official text does not state.
How to fix it
Fill all six fields under cac:AccountingCustomerParty/cac:Party/cac:PostalAddress: cbc:StreetName, cbc:BuildingNumber, cbc:PostalZone, cbc:CityName, cbc:CitySubdivisionName and cac:Country/cbc:IdentificationCode.
ZATCA's official text
[BR-KSA-63]-If the buyer country code (BT-55) is "SA", then these fields are mandatory:street name (BT-50), building number (KSA-18), postal code (BT-53), city (BT-52), District (KSA-4), country code (BT-55).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(//cac:AccountingCustomerParty/cac:Party/cac:PostalAddress/cbc:StreetName) and normalize-space(//cac:AccountingCustomerParty/cac:Party/cac:PostalAddress/cbc:StreetName)!='' and exists(//cac:AccountingCustomerParty/cac:Party/cac:PostalAddress/cbc:BuildingNumber) and normalize-space(//cac:AccountingCustomerParty/cac:Party/cac:PostalAddress/cbc:BuildingNumber)!='' and exists(//cac:AccountingCustomerParty/cac:Party/cac:PostalAddress/cbc:PostalZone) and normalize-space(//cac:AccountingCustomerParty/cac:Party/cac:PostalAddress/cbc:PostalZone)!='' and exists(//cac:AccountingCustomerParty/cac:Party/cac:PostalAddress/cbc:CityName) and normalize-space(//cac:AccountingCustomerParty/cac:Party/cac:PostalAddress/cbc:CityName)!='' and exists(//cac:AccountingCustomerParty/cac:Party/cac:PostalAddress/cbc:CitySubdivisionName) and normalize-space(//cac:AccountingCustomerParty/cac:Party/cac:PostalAddress/cbc:CitySubdivisionName)!='' and exists(//cac:AccountingCustomerParty/cac:Party/cac:PostalAddress/cac:Country/cbc:IdentificationCode) and normalize-space(//cac:AccountingCustomerParty/cac:Party/cac:PostalAddress/cac:Country/cbc:IdentificationCode)!=''))
Related rules
- BR-KSA-10 · Standard invoices need buyer street, city and country code
- BR-KSA-67 · Saudi buyer postal code (BT-53) must be 5 digits
- BR-KSA-56 · Credit and debit notes must reference the original invoice (BT-25)
- 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-66 · Seller postal code (BT-38) must be exactly 5 digits
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