BR-KSA-81: Standard invoice without buyer VAT number needs another buyer ID
For standard tax invoices and their notes (KSA-2, cbc:InvoiceTypeCode/@name, starting 01), if cac:AccountingCustomerParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID (BT-48) is absent, the buyer's cac:PartyIdentification/cbc:ID (BT-46) must be present and non-empty. The check looks only at whether the CompanyID element exists, not whether it is empty.
How to fix it
Either give the buyer VAT number in cac:PartyTaxScheme/cbc:CompanyID, or add a non-empty cac:PartyIdentification/cbc:ID under the buyer's cac:AccountingCustomerParty/cac:Party.
ZATCA's official text
[BR-KSA-81]-The other Buyer ID (BT-46) must present in the tax invoice and associated debit notes and credit notes (KSA-2, position 1 and 2 = 01), where the buyer VAT registration number or buyer group VAT registration number (BT-48) is not provided.
Source: ZATCA SDK 3.4.8 · ZATCA KSA rules
Fails when (the condition ZATCA's SDK runs)
not(exists(./cac:AccountingCustomerParty/cac:Party/cac:PartyIdentification/cbc:ID) and normalize-space(./cac:AccountingCustomerParty/cac:Party/cac:PartyIdentification/cbc:ID) !='' )
Related rules
- BR-CUSTOM-VALIDATION-01 · Seller and buyer VAT numbers must not be the same
- BR-KSA-06 · Invoice transaction code (name attribute) must follow NNPNESB
- BR-KSA-07 · Export invoices cannot be self-billed
- BR-KSA-10 · Standard invoices need buyer street, city and country code
- BR-KSA-14 · Buyer ID must use an allowed scheme ID
- BR-KSA-15 · Standard tax invoices (388) need a supply date
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