La detección de errores en códigos QR es un mecanismo que determina si los datos leídos de un código QR contienen errores. El área de datos de un código QR se compone de unidades llamadas palabras de código (1 palabra de código = 8 bits), y a esta área se le añade un código Reed-Solomon. Como el código Reed-Solomon corrige por bytes, tiene la propiedad de ser resistente a los errores concentrados en un solo punto, como la suciedad o una parte que falta. Mientras que la corrección de errores restaura los propios datos, la detección de errores se encarga de determinar "si los datos son correctos o no".
Por la estructura del código QR, la información de formato (15 bits) y la información de versión (18 bits) cuentan, aparte del área de datos, con los códigos BCH(15,5) y BCH(18,6). El escáner comprueba primero si ha leído correctamente la información de formato y después pasa a decodificar el área de datos.
La detección de errores es importante porque evita que se tomen por correctos datos erróneos y se haga una redirección con ellos. Si en un código QR que contiene una URL corta se produce una lectura errónea de aunque sea 1 bit, existe el riesgo de que se acabe en una URL completamente distinta. Gracias a la detección de errores, el escáner puede tratarlo como una "lectura fallida" y pedir a los usuarios que vuelvan a escanear.
Como precaución en la práctica, la fiabilidad de la detección de errores depende de la calidad de impresión del código QR y de las condiciones del entorno. Si por suciedad, dobleces, reflejos de la luz u otras causas se producen errores que superan el límite de detección, la elección del nivel de corrección de errores (L/M/Q/H) determina la tasa final de lecturas correctas.