# Decode-verify

> Decode-verify is the practice of reading a generated QR code back with a real decoder before shipping it. It is the only way to know that a styled, logo-bearing or heavily coloured code actually scans, rather than assuming it does.

Source: https://useqr.app/glossary/decode-verify · Last reviewed 2026-08-21 · UseQR is free forever, MIT licensed, no signup.

---

## Why generators skip it

It costs work. Rendering a matrix is straightforward; rasterising the result and running a
decoder over it is a second pipeline. Most tools render and hope, and push the risk onto
whoever prints the code.

## What UseQR does

Every code is rendered to SVG, rasterised, and read back with [ZXing](/glossary/zxing) — in
the browser before you download, and in CI for every permutation of module style, eye style,
gradient, logo coverage and error-correction level. A permutation that fails is a build
failure, not a customer complaint.

## What it cannot tell you

Decoding a clean digital raster is a *necessary* condition, not a sufficient one. It does
not model ink spread, glare, motion blur, or a camera at 40°. That is what
[the validator](/validate) and a physical proof print are for.
