How to check if the QR Code generated from your software is Complaint as per Saudi Arabia ZACTA Guidelines

In KSA, ZATCA enforces e-Invoicing from 4th, December 2021. E-Invoicing is applicable for all taxpayers (excluding non-resident taxpayers), and any other parties issuing tax invoices on behalf of suppliers subject to VAT. Phase 1, known as the Generation phase, will require taxpayers to generate and store tax invoices and notes (Debit and Credit Notes) through compliant electronic solutions.

e-Invoicing (Fatoora/Fatoorah) is a procedure that aims to replace paper invoices with electronic invoices. e-Invoices are tax invoices generated electronically through a structured electronic format. Paper invoices converted to an electronic format through copying, scanning, or any other means are not considered as electronic invoices. e-Invoicing allows buyers and sellers to exchange invoices, credit notes, and debit notes in a structured electronic format.

TallyPrime is able to generate an e-Invoice for KSA, there are many solutions which offers similar feature, in order to check if the QR code generated is as per Saudi ZACTA Guidelines please follow the article in a step by step process.

All E-Invoice generates Hash after the invoice content is finalized. Hash is a digital fingerprint of the invoice data. The hash is generated via a standardized algorithm that guarantees a different fingerprint if any piece of information on the invoice is changed. Hashes are generated by a compliant Electronic Invoicing Solution and the Person subject to the E-Invoicing Regulation does not need to know this value during the normal invoice issuing process, since it is not required to be visible on the invoice.

The QR Code has a value of Hash which is printed on the Invoice.
QR Code contains the information in a machine-readable format for values
  1. Seller Name = Rapid Saudi Arabia Co. Limited
  2. Seller VAT Number
  3. Total Amount with VAT
  4. VAT Total
  5. Time Stamp
If we Scan from any QR Code reader we will get the values of HASH as given in the picture below, every HASH generates different Values.
To verify if the HASH will be in compliance with ZACTA we can verify from the website links given below.
1) First Step visit and insert the HASH generated by the scan in the text field
Select Decode and Base 64.
Copy the text generated by crptii.
The Screen Should look like this.
2. Visit select tlv decoder and paste text generated from cryptii.
It will give all the 5 values which will be read in in third step of verification.
3. Visit select Convert Hexadecimal to UTF8
Put all the 5 values you got from TLV utilities shown in the above picture. if the hash is correct you should be able to read the values.
If any of the QR Code generated and is readable to human being is not correct.
You can test the HASH generated from the invoice by following the above steps.




Submit a Comment

Your email address will not be published. Required fields are marked *