BR-KSA-28: Signature information ID must be ...ubl:signature:1

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

Error: the invoice is rejectedSimplified invoices (B2C)Fields: KSA-15

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

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