BR-KSA-81: Standard invoice without buyer VAT number needs another buyer ID

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

Warning: accepted with a warningStandard tax invoices (B2B)Fields: BT-46, KSA-2, BT-48

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

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