Un NIF mal escrito en una factura no parece grave. Hasta que descuadra el modelo 347, genera un proveedor duplicado en contabilidad o pasa una inspección como dato inconsistente. En gestorías que procesan cientos de facturas al mes, los errores de NIF y CIF son uno de los puntos de fricción más caros — porque consumen tiempo en revisar y rehacer trabajo que parecía cerrado.
La buena noticia: los identificadores fiscales españoles tienen algoritmos públicos de validación, así que detectar el 99% de los errores de tipeo es trivial — si tu herramienta los aplica. Aquí vemos exactamente cómo funcionan y por qué el OCR tradicional los ignora.
La cadena del error: cómo un NIF erróneo arruina cinco procesos
Imagina que el OCR lee B12345677 en lugar del B12345678 real de un proveedor. ¿Qué pasa a partir de ahí?
- El asiento se contabiliza contra un proveedor nuevo(no existe ese NIF en la base de datos de clientes/proveedores).
- El cuadre con el saldo del proveedor real falla.
- En el modelo 347, el total imputado al proveedor real está mal.
- Si el error se repite con varios proveedores, el cuadre del ejercicio se vuelve opaco y exige una conciliación manual.
- Si Hacienda cruza datos, salta la incidencia.
El coste real de un NIF mal extraído no son los 30 segundos de rectificación — es la hora que se pierde encontrándolo semanas después.
Anatomía del NIF: el algoritmo módulo 23
El NIF español tiene 8 dígitos numéricos seguidos de una letra. La letra es un dígito de control que se calcula con la siguiente operación:
- Tomas los 8 dígitos como un número entero.
- Calculas el resto de dividirlo entre 23 (operación módulo).
- El resto es un número entre 0 y 22 y selecciona una letra de la tabla oficial:
0→T 1→R 2→W 3→A 4→G 5→M 6→Y 7→F 8→P 9→D 10→X 11→B 12→N 13→J 14→Z 15→S 16→Q 17→V 18→H 19→L 20→C 21→K 22→ELas letras I, Ñ, O y U no aparecen en la tabla a propósito — se excluyen para evitar confusiones visuales con números (1, N, 0, V).
12345678Z: 12345678 ÷ 23 deja resto 14, que corresponde a Z. Si el OCR hubiera leído 12345677, el resto sería 13 (J), no Z → la letra no cuadra → error detectable.NIE (extranjeros): la misma idea con un truco
El NIE empieza por X, Y o Z. Para validarlo se sustituye la letra inicial por 0, 1 o 2 respectivamente y se aplica el mismo algoritmo módulo 23.
Anatomía del CIF: otro algoritmo, otra lógica
El CIF (identificador de personas jurídicas) no usa el módulo 23. Su estructura es:
- 1 letra inicial que identifica el tipo de entidad (
Asociedades anónimas,Blimitadas,Gasociaciones, etc.). - 7 dígitos numéricos.
- 1 carácter final de control, que puede ser letra o número dependiendo del tipo de entidad.
El algoritmo de control suma por separado:
- Dígitos en posición par (2, 4, 6): se suman tal cual.
- Dígitos en posición impar (1, 3, 5, 7): se multiplican por 2 y, si el resultado tiene dos cifras, se suman entre sí (ejemplo: 7×2=14 → 1+4=5).
La suma total se le calcula la cifra de las unidades; si es 0, queda 0; si no, se resta de 10. Ese número es el dígito de control. Para entidades cuyo carácter de control debe ser letra (A, P, Q, R, N, W, S, K), se traduce con una tabla específica.
Por qué el OCR tradicional falla en NIF y CIF
El OCR clásico extrae texto carácter a carácter sin entender el contexto. Los errores típicos son:
- O confundida con 0 en CIF que empiezan por letra.
- 1 confundido con I o l en números.
- B confundida con 8 en facturas escaneadas en baja resolución.
- S confundida con 5 en letras de control.
El OCR no comprueba si el resultado tiene sentido. Devuelve la cadena y se acabó.
Validación post-extracción con IA: cómo se hace bien
La diferencia entre un sistema robusto y uno frágil está en lo que ocurre después de la extracción:
- Normalización: se quitan espacios, guiones y puntos. La cadena se pone en mayúsculas.
- Clasificación: ¿empieza por letra o por dígito? ¿Empieza por X/Y/Z? Eso decide qué algoritmo aplicar.
- Validación matemática: se ejecuta el módulo 23 (NIF/NIE) o el algoritmo de pares/impares (CIF).
- Reintentos con contexto: si la validación falla, se intenta corregir caracteres ambiguos (
O↔0,I↔1) y se prueba de nuevo la validación. - Marcado para revisión humana: si después de los intentos la cadena sigue sin validar, el campo se marca como baja confianza en lugar de meterse en contabilidad.
Este flujo es lo que aplica KontaScan antes de generar el Excel de exportación: cualquier NIF o CIF que no pase el dígito de control llega a la pantalla de validación marcado, en lugar de pasar a ciegas a tu programa contable.
Checklist para tu software de facturas
Si vas a evaluar una herramienta de OCR/IA para facturas, pregúntale explícitamente:
- ¿Validáis NIF, NIE y CIF con sus respectivos algoritmos?
- ¿Diferenciáis entre cada tipo antes de validar?
- ¿Reintentáis corregir caracteres ambiguos cuando la validación falla?
- ¿Marcáis los campos no validados o se exportan tal cual?
- ¿Vinculáis el NIF a la subcuenta del proveedor para no crear duplicados?
Si la respuesta a alguna de las dos primeras es "no", el coste real del error termina pagándolo tu equipo en horas de revisión.
Preguntas frecuentes
¿Qué pasa con identificadores extranjeros (VAT europeo)?
Cada país tiene su propio formato de IVA intracomunitario y sus reglas. Una herramienta orientada a gestorías españolas debería al menos detectar que el identificador no es español (por el prefijo de país, ej. FR, DE, PT) y aplicar la validación correspondiente o, como mínimo, marcarlo para revisión.
¿Y si el NIF está mal en la propia factura emitida?
Pasa más de lo que parece. La validación matemática te indica que el carácter de control no cuadra, lo que normalmente significa que la factura está mal emitida o el escaneo tiene un carácter mal leído. En cualquier caso, lo correcto es parar y verificarantes de contabilizar.
¿La validación local sustituye al cruce con AEAT?
No. El algoritmo sólo comprueba la consistencia matemáticadel identificador. Un NIF formalmente correcto puede no existir, o existir y no corresponder al titular indicado. El cruce real con AEAT (modelo 347, censo de empresarios) es el que confirma la identidad. La validación matemática es el primer filtro baratoque evita el 99% de los errores de tipeo.
¿Las letras I, Ñ, O y U realmente nunca salen en NIF?
Correcto. La tabla oficial publicada por el Ministerio del Interior las excluye precisamente para evitar confusiones con 1, N, 0 y V. Si ves un NIF con cualquiera de esas letras, hay un error.