BR-KSA-29: Signature ID and referenced signature ID must be ...signature:Invoice

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

Warning: accepted with a warningSimplified invoices (B2C)Fields: KSA-15

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

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