# Simplified invoices

**URL:** <https://zatca1.discourse.group/t/simplified-invoices/8900>\
**Category:** QR code\
**Created:** [October 27, 2025, 8:43am UTC](https://zatca1.discourse.group/t/simplified-invoices/8900 "2025-10-27T08:43:13Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![devmoaboabdo](https://avatars.discourse-cdn.com/v4/letter/d/8baadc/32.png) [@devmoaboabdo](https://zatca1.discourse.group/u/devmoaboabdo)\
**Post date:** [October 27, 2025, 8:43am UTC](https://zatca1.discourse.group/t/simplified-invoices/8900/1 "2025-10-27T08:43:13Z")

</div>

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  
}  
}  
}

* * *

---

<div class="post-metadata">

**Author:** ![MalikRawabi986077683](https://avatars.discourse-cdn.com/v4/letter/m/54ee81/32.png) [@MalikRawabi986077683](https://zatca1.discourse.group/u/MalikRawabi986077683)\
**Post date:** [October 27, 2025, 9:17am UTC](https://zatca1.discourse.group/t/simplified-invoices/8900/2 "2025-10-27T09:17:43Z")

</div>

> [@devmoaboabdo](#):
>
> **implified** —

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
