Verifiable statements with a QR code
Every printable statement carries a QR code. Scanning it recomputes the numbers on the server and confirms the printout matches the books — tamper-evidence without trusting the paper.
A printed accounting statement is only as trustworthy as the assurance that nobody edited it in a word processor afterwards. CEMAC POS solves this by putting a verification QR code on every printable statement, so a bank, a partner or an auditor can confirm the paper in their hand matches the live books.
How it works
When you print a statement, CEMAC POS embeds a QR code linking to a verification page. Scanning it does not just look up a stored number — it recomputes the statement from the underlying immutable sales and produces a fingerprint. If the recomputed fingerprint matches the one on the printout, the document is authentic; if a single figure was altered on paper, the fingerprints diverge and verification fails.
- Verification is by live recompute plus fingerprint, not a lookup of a stored hash.
- Because sales are immutable and hash-chained, the recompute is reproducible.
- The QR points to a verify route that returns a clear match or no-match result.
- Anyone with the printout can verify; they do not need a login to the shop.
This is tamper-evidence, not a government stamp. It proves the printout matches your books; it is not a live submission to or certification by the DGI.
Printing and verifying, step by step
- Open Money then the statement you need (income statement, balance sheet, VAT summary).
- Select the period and generate the statement.
- Print or export it; the QR code is placed on the document automatically.
- Hand the printout to the bank, partner or auditor.
- They scan the QR with any phone camera.
- The verify page recomputes the figures and shows a match or no-match result.
- A match confirms the paper is faithful to the live books.
Why recompute instead of store
Storing a hash and comparing to it proves only that the stored hash was not changed. Recomputing from the immutable source each time proves the whole document is still consistent with the actual transactions, even long after printing. That is why the verify route keeps recomputing rather than trusting a saved value.
Common errors and how to fix them
| Message / symptom | Cause | Fix |
|---|---|---|
| Verification says no match | The printout was edited, or it is an old version reprinted after data synced | Regenerate and reprint the statement so the QR matches the current books |
| QR code will not scan | Poor print quality, ink smear or too small a print size | Reprint at full size on a clean printer; avoid shrinking the page |
| Verify page will not load | The device scanning it has no internet connection | Verification needs to reach the server; connect and scan again |
| Figures differ from an earlier print | Offline sales synced after the first print, changing the period | This is expected; reprint to get a current, verifiable copy |
| “Statement not found” on verify | The link was retyped by hand with an error | Scan the QR directly rather than copying the URL manually |
Common questions
Is the QR a DGI certification?
No. It proves the printout matches your own books. It is tamper-evidence, not a government API or official stamp.
Can someone verify without a login?
Yes. Anyone holding the printout can scan and see a match or no-match result; they do not need access to your shop.
Why can figures change between two prints?
If sales made offline sync after the first print, the period totals update. Reprint for a current, verifiable statement.
Try it in your own shop
Start a free 30-day trial and follow along — no card required.
Start the free trial