BR-KSA-28: Signature information ID must be ...ubl:signature:1
For simplified invoices and their notes (@name starting '02'), on every document attachment other than the PIH one (in practice the QR attachment): the attachment's cbc:EmbeddedDocumentBinaryObject must be non-empty and sac:SignatureInformation/cbc:ID in ext:UBLExtensions must equal 'urn:oasis:names:specification:ubl:signature:1'. It is not checked on standard invoices.
How to fix it
In ext:UBLExtensions/…/sig:UBLDocumentSignatures/sac:SignatureInformation set <cbc:ID>urn:oasis:names:specification:ubl:signature:1</cbc:ID>, and make sure the QR attachment is not empty.
ZATCA's official text
[BR-KSA-28]-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:1" value for signature information ID.
Source: ZATCA SDK 3.4.8 · ZATCA KSA rules
Fails when (the condition ZATCA's SDK runs)
not(exists(cbc:EmbeddedDocumentBinaryObject) and (cbc:EmbeddedDocumentBinaryObject) != '' and (//ext:UBLExtensions/ext:UBLExtension/ext:ExtensionContent/sig:UBLDocumentSignatures/sac:SignatureInformation/cbc:ID) = 'urn:oasis:names:specification:ubl:signature:1')
Related rules
- BR-KSA-29 · Signature ID and referenced signature ID must be ...signature:Invoice
- 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-25 · Simplified invoice with EDU/HEA exemption needs the buyer name
- 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)
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