The e-invoice QR code will not scan
A code that cannot be read has two entirely different causes, and telling them apart is the first step: either the image itself cannot be read, or the code reads but its content is incomplete.
ZATCA Checker
Why scanning an invoice QR code fails, how to tell an image problem from a content problem, and what to do when reading is impossible.
Check your invoice nowCause one: a problem with the image
- The code is cropped, or part of it falls outside the image.
- The photo is blurry or taken at a steep angle.
- Strong lighting reflects off the paper and blurs the edges.
- The code is very small in the original image.
- The invoice was scanned at low resolution.
The fix is simple: take a straight, close-up photo of the code alone, or use the QR-only mode in the tool instead of uploading the whole invoice.
Cause two: a problem with the content
Here the code scans successfully, but what is inside it is missing or malformed. The essential difference is that this cannot be fixed by taking a better photo, because the problem lies in how the seller generated the code.
- One of the five fields is missing.
- The VAT number is in the wrong format.
- The timestamp includes milliseconds.
- The text is not UTF-8 encoded, so characters come out garbled.
The tool separates the two cases. If the code is readable, it shows you the content and names the field at fault. If it cannot read the invoice text, it says so plainly instead of guessing.
Alternatives when reading fails entirely
- Type the values in manually — the tool builds the code and checks it.
- Paste the raw QR text if you have it.
- Use a PDF instead of an image: its text is read directly, without OCR.
Why PDF gives better results than an image
A PDF contains a real text layer that is read with full accuracy, while an image needs OCR, which can misread digits and letters. So if the invoice is available as a PDF, the result will be more precise.
Frequently asked questions
Does the tool upload my file to a server?
No. Everything runs inside your browser on your device: PDF reading, code decoding and text recognition. No upload, no storage, no account.
Why does it show "unconfirmed" instead of yes or no?
Because the tool never infers a result from missing evidence. If it cannot read the invoice text, it says so rather than showing an unproven mismatch.