Simplified invoices

I’m using the sample invoices provided in the SDK within my Laravel project.
I’ve made some modifications to them.

When testing six invoices — three Standard and three Simplified — the Standard invoices are passing successfully, but all three Simplified invoices are failing.

Here are the error messages I’m getting:

{
“timestamp”: “2025-10-16 11:40:28”,
“level”: “INFO”,
“message”: “Compliance API response”,
“data”: {
“tenant_id”: 1,
“invoice_type”: “Simplified Debit Note”,
“status”: 400,
“success”: false,
“response”: {
“validationResults”: {
“infoMessages”: [
{
“type”: “INFO”,
“code”: “XSD_ZATCA_VALID”,
“category”: “XSD validation”,
“message”: “Complied with UBL 2.1 standards in line with ZATCA specifications”,
“status”: “PASS”
}
],
“warningMessages”: ,
“errorMessages”: [
{
“type”: “ERROR”,
“code”: “invoiceHash_QRCODE_INVALID”,
“category”: “QRCODE_VALIDATION”,
“message”: “Invoice xml hash does not match with qr code invoice xml hash”,
“status”: “ERROR”
},
{
“type”: “ERROR”,
“code”: “publicKey_QRCODE_INVALID”,
“category”: “QRCODE_VALIDATION”,
“message”: “ECDSA Public Key does not match with qr code ECDSA public key”,
“status”: “ERROR”
},
{
“type”: “ERROR”,
“code”: “INVOICE_SIGNATURE_VALUE_QRCODE_INVALID”,
“category”: “QRCODE_VALIDATION”,
“message”: “invoice signature value does not match with qr invoice signature value”,
“status”: “ERROR”
},
{
“type”: “ERROR”,
“code”: “QRCODE_INVALID”,
“category”: “QRCODE_VALIDATION”,
“message”: “Failed to validate QR code”,
“status”: “ERROR”
}
],
“status”: “ERROR”
},
“reportingStatus”: “NOT_REPORTED”,
“clearanceStatus”: null,
“qrSellertStatus”: null,
“qrBuyertStatus”: null
}
}
}


make sure
Before checking the compliance
Take the returned SecurityBinaryToken returned from First API and decode it using base64 decoder, the decoded value is the x.509 certificate

go to the SDK folder to the following path: SDK/Data/Certificates/Cert.pem

replace the generated private key with the value in the other file in the same path: SDK/Data/Certificates

and then perform
fatoora -sign -invoice Simplified_Invoice.xml
fatoora -sign -invoice Simplified_Credit_Note.xml

fatoora -sign -invoice Simplified_Debit_Note.xml

while passing the invoice to compliance API
make sure you use the Simplified_Invoice_signed.xml Simplified_Credit_Note_signed and Simplified_Debit_Note_singed XML value converted to base64