All tutorials
Money and accounting

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

  1. Open Money then the statement you need (income statement, balance sheet, VAT summary).
  2. Select the period and generate the statement.
  3. Print or export it; the QR code is placed on the document automatically.
  4. Hand the printout to the bank, partner or auditor.
  5. They scan the QR with any phone camera.
  6. The verify page recomputes the figures and shows a match or no-match result.
  7. 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 / symptomCauseFix
Verification says no matchThe printout was edited, or it is an old version reprinted after data syncedRegenerate and reprint the statement so the QR matches the current books
QR code will not scanPoor print quality, ink smear or too small a print sizeReprint at full size on a clean printer; avoid shrinking the page
Verify page will not loadThe device scanning it has no internet connectionVerification needs to reach the server; connect and scan again
Figures differ from an earlier printOffline sales synced after the first print, changing the periodThis is expected; reprint to get a current, verifiable copy
“Statement not found” on verifyThe link was retyped by hand with an errorScan the QR directly rather than copying the URL manually
Print books people can trust

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

Related tutorials