BR-KSA-29: Signature ID and referenced signature ID must be ...signature:Invoice
For simplified invoices and their notes (@name starting '02'), checked once per non-PIH attachment: cac:Signature/cbc:ID and sac:SignatureInformation/sbc:ReferencedSignatureID (in ext:UBLExtensions) must both equal 'urn:oasis:names:specification:ubl:signature:Invoice'. It is not checked on standard invoices.
How to fix it
Set <cbc:ID>urn:oasis:names:specification:ubl:signature:Invoice</cbc:ID> in cac:Signature and <sbc:ReferencedSignatureID>urn:oasis:names:specification:ubl:signature:Invoice</sbc:ReferencedSignatureID> in sac:SignatureInformation.
ZATCA's official text
[BR-KSA-29]-If the cryptographic stamp (KSA-15) exists in the invoice, this cryptographic stamp (KSA-15) must contain the exact "urn:oasis:names:specification:ubl:signature:Invoice" value for referenced signature ID and signature ID.
Source: ZATCA SDK 3.4.8 · ZATCA KSA rules
Fails when (the condition ZATCA's SDK runs)
not((//cac:Signature/cbc:ID) = 'urn:oasis:names:specification:ubl:signature:Invoice' and (normalize-space(//ext:UBLExtensions/ext:UBLExtension/ext:ExtensionContent/sig:UBLDocumentSignatures/sac:SignatureInformation/sbc:ReferencedSignatureID)) = 'urn:oasis:names:specification:ubl:signature:Invoice' )
Related rules
- BR-KSA-28 · Signature information ID must be ...ubl:signature:1
- BR-KSA-30 · Signature method must be the enveloped XAdES URN
- BR-KSA-60 · Simplified invoices must include the cac:Signature block (KSA-15)
- BR-KSA-26 · Previous invoice hash (PIH) attachment must be filled, text/plain
- BR-KSA-27 · Simplified invoices must carry a QR code (KSA-14)
- BR-KSA-31 · Simplified invoices cannot be self-billed (KSA-2 position 7 = 0)
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