App moderna de gestión y facturación

View Categories

Listado de Errores Verifactu comunes y cómo resolverlos

10 minutos de lectura

En este artículo recogemos los errores Verifactu más frecuentes que devuelve el servicio de la AEAT, agrupados por tipología, con una explicación clara de la causa habitual y los pasos para resolverlos. Si quieres consultar la lista oficial completa, está publicada en la sede electrónica de la AEAT junto al esquema XSD de Verifactu.

Cómo clasifica la AEAT los errores Verifactu #

La AEAT agrupa los códigos de error en tres familias según su gravedad y el efecto que tienen sobre el envío:

  • Códigos 4xxx — Rechazo completo del envío. Afectan a la cabecera o a la integridad del XML. Si se devuelve un error 4xxx, ninguna factura del envío llega a registrarse.
  • Códigos 1xxx y 3xxx — Rechazo del registro de facturación. El XML es válido, pero una o varias facturas concretas son rechazadas por errores de contenido, duplicidades o referencias.
  • Códigos 2xxx — Aceptado con aviso. El registro queda aceptado en el sistema de la AEAT, pero contiene una incidencia que en algunos casos debe corregirse en envíos posteriores.

A partir de esta clasificación, vamos a repasar los errores que aparecen con más frecuencia en entornos reales de producción.

Errores de fecha y hora #

Error 2004 — FechaHoraHusoGenRegistro fuera del margen permitido #

Mensaje oficial: «El valor del campo FechaHoraHusoGenRegistro debe ser la fecha actual del sistema de la AEAT, admitiendo un margen de error de [tolerancia]».

Causa habitual. Este es, sin duda, el error más frecuente al integrarse con Verifactu. El campo FechaHoraHusoGenRegistro indica el instante en que el sistema informático generó el registro de facturación, y la AEAT compara ese valor con su propia hora oficial. Si la diferencia entre la fecha de generación del registro y el momento en que la AEAT lo recibe supera el margen tolerado (en la práctica, unos pocos minutos), se devuelve el error 2004.

Aparece típicamente en dos escenarios:

  • El reloj del equipo donde se genera la factura no está sincronizado con un servidor NTP fiable y va adelantado o atrasado respecto a la hora oficial.
  • Se genera el registro de facturación y se conserva en cola un tiempo prolongado antes de enviarlo a la AEAT (por ejemplo, en modo offline o en lotes diferidos), de modo que cuando finalmente se transmite, la marca temporal ya está caducada.

Cómo resolverlo. Sincroniza el reloj del sistema con un servidor NTP (en Windows, comprobando el servicio w32time; en Linux/Mac, mediante chrony o systemd-timesyncd) y verifica que la zona horaria sea la correcta. Si trabajas con envíos diferidos o en cola, el campo FechaHoraHusoGenRegistro debe regenerarse justo antes del envío real a la AEAT, no en el momento de crear el borrador de la factura. Recuerda también incluir el huso horario correcto (por ejemplo, +01:00 o +02:00 según horario de invierno o verano peninsular).

Error 1112 — FechaExpedicionFactura mayor que la fecha actual #

Causa habitual. Se está enviando una factura con fecha de expedición posterior al día actual. Suele deberse a un error de tecleo o, de nuevo, a un reloj del sistema mal configurado.

Cómo resolverlo. Revisa el valor del campo FechaExpedicionFactura y asegúrate de que coincide con la fecha real de emisión. Si la factura es válida pero el reloj del equipo está mal, corrige la fecha del sistema antes de reenviar.

Error 1133 — Fecha de expedición demasiado antigua #

Causa habitual. El valor de FechaExpedicionFactura es anterior a la fecha actual menos 20 años. La AEAT no admite el registro de facturas con esa antigüedad.

Cómo resolverlo. Comprueba que la fecha de expedición es correcta y, si se trata de una factura antigua, valora si realmente debe registrarse en Verifactu o queda fuera del ámbito temporal del sistema.

Errores de identificación fiscal (NIF) #

Error 4107 — NIF no identificado en el censo de la AEAT #

Causa habitual. El NIF del emisor (o del representante, o del destinatario, según el contexto) no está dado de alta en el censo de la Agencia Tributaria. Este error es muy frecuente cuando se intenta facturar por primera vez sin haber tramitado el alta en el modelo 036 o cuando el NIF de un cliente extranjero está mal formateado.

Cómo resolverlo. Comprueba que el NIF del obligado a emitir está activo en el censo presentando el modelo 036 (o que la baja no se ha producido). Para destinatarios, valida el NIF antes de emitir la factura mediante el servicio de validación del NIF en la sede electrónica. En el caso de clientes intracomunitarios, recuerda que el operador debe estar inscrito en el ROI/VIES.

Error 1108 — El NIF del IDEmisorFactura no coincide con el ObligadoEmision #

Causa habitual. En el bloque IDFactura se está informando un NIF emisor distinto del que aparece en la cabecera como obligado a emitir. Es un error típico cuando se gestiona la facturación de varios clientes en un mismo software de gestoría y se mezclan datos entre titulares.

Cómo resolverlo. Asegúrate de que el NIF de IDEmisorFactura es exactamente el mismo que el de ObligadoEmision. En entornos multi-titular, comprueba que cada lote de facturas se envía con el certificado y la cabecera del titular correcto. Si trabajas con apoderamiento o colaboración social, los campos NIF deben corresponder al obligado, no al apoderado.

Error 1109 / 1110 — NIF del destinatario no identificado #

Causa habitual. El NIF del destinatario informado en el bloque Destinatarios no aparece en el censo. Aparece sobre todo con clientes nuevos, NIF mal copiados o letras de control incorrectas en los DNI.

Cómo resolverlo. Valida el NIF antes de emitir (la AEAT ofrece un servicio público para ello). Si el destinatario es no residente sin NIF español, utiliza el bloque IDOtro con el IDType que corresponda (NIF-IVA para intracomunitarios, pasaporte, etc.) en lugar del bloque NIF.

Errores de cálculo de importes #

Error 1142 — CuotaRepercutida incorrecta #

Causa habitual. El valor de CuotaRepercutida no coincide con el resultado de aplicar el TipoImpositivo a la BaseImponibleOimporteNoSujeto. Suele deberse a redondeos mal aplicados o a discrepancias de céntimos cuando se calcula la cuota sumando líneas en lugar de sobre la base total.

Cómo resolverlo. Calcula la cuota con dos decimales y redondeo financiero (banker’s rounding o el método que utilice tu software, manteniéndolo consistente). La AEAT admite un pequeño margen de diferencia por redondeo, pero si la desviación supera ese umbral devuelve el error. Revisa que estás aplicando el redondeo en el mismo orden que el esquema espera: primero base por tipo, luego redondeo.

Error 1210 — ImporteTotal incorrecto #

Causa habitual. El ImporteTotal declarado no encaja con la suma de BaseImponibleOimporteNoSujeto + CuotaRepercutida + CuotaRecargoEquivalencia de todas las líneas. Es el equivalente al 1142 pero a nivel de total de factura.

Cómo resolverlo. Recalcula el importe total como suma exacta de los desgloses ya redondeados. No conviene calcularlo de forma independiente: debe ser la suma aritmética de los componentes que ya van en el XML.

Error 2000 — Cálculo de la huella incorrecto #

Causa habitual. El hash SHA-256 del registro (la «huella» que encadena cada factura con la anterior) no coincide con el que la AEAT calcula a partir de los campos recibidos. Suele ocurrir por errores en el orden de concatenación de los campos, problemas con el formato numérico (separador decimal, número de decimales) o codificación de caracteres no UTF-8.

Cómo resolverlo. Revisa que el cálculo del hash sigue exactamente el orden y formato definidos en la Orden HAC/1177/2024: concatenación de campos con sus etiquetas, valores normalizados (sin espacios extra, con dos decimales para importes y con separador decimal punto), y codificación UTF-8 sin BOM. El error 2000 acepta el registro, pero debe corregirse en envíos posteriores porque rompe la cadena.

Errores de envío y duplicados #

Error 3000 — Registro de facturación duplicado #

Causa habitual. Ya existe en el sistema de la AEAT una factura con el mismo NIF emisor, serie y número. Aparece típicamente al reintentar un envío que la primera vez había llegado correctamente, pero del que no se procesó la respuesta (por ejemplo, por un timeout de red).

Cómo resolverlo. Si la factura realmente ya estaba registrada, marca el envío local como aceptado y no la reenvíes. Si necesitas modificar datos, deberás emitir una factura rectificativa (R1–R5) o anular el registro previo. Para evitar duplicidades, es muy recomendable implementar idempotencia en el envío y consultar el registro antes de reintentar.

Error 3002 — El registro de facturación no existe #

Causa habitual. Se está intentando anular (mediante RegistroAnulacion) una factura que nunca llegó a registrarse con éxito, o cuyos identificadores (NIF, serie, número) no coinciden exactamente con los del registro original.

Cómo resolverlo. Comprueba que la factura existe en el sistema de la AEAT antes de anularla. Verifica que el NIF emisor, la serie y el número del registro de anulación son idénticos a los del alta. Si la factura original quedó rechazada, no hay que anular nada: basta con corregirla y volver a enviarla como alta.

Error 4102 — El XML no cumple con el esquema #

Causa habitual. Falta algún campo obligatorio, hay un campo con tipo de dato incorrecto, o el orden de los nodos no respeta el XSD oficial. Es muy habitual durante la fase de integración inicial.

Cómo resolverlo. Valida el XML contra el esquema XSD oficial publicado por la AEAT antes de enviarlo. La mayoría de IDE y librerías de XML permiten realizar esta validación de forma automática. Presta especial atención a los campos opcionales que se vuelven obligatorios según el valor de otros (por ejemplo, TipoRectificativa solo si TipoFactura es R1–R5).

Errores de calificación de la operación #

Error 1195 / 1196 — Conflicto entre OperacionExenta y CalificacionOperacion #

Causa habitual. Los campos OperacionExenta y CalificacionOperacion son mutuamente excluyentes: debe informarse uno u otro, pero nunca los dos a la vez ni ninguno de los dos. El error 1195 se devuelve cuando no se informa ninguno y el 1196 cuando se informan ambos.

Cómo resolverlo. Define claramente en la lógica de tu software qué tipo de operación es: si está exenta de IVA, informa solo OperacionExenta con el motivo correspondiente (E1–E6); en cualquier otro caso, informa CalificacionOperacion (S1, S2, N1 o N2). Asegúrate de que no se rellenan ambos por defecto en plantillas o copias de factura.

Buenas prácticas para evitar errores Verifactu #

Más allá de resolver errores puntuales, hay una serie de prácticas que reducen drásticamente el número de rechazos:

  • Sincroniza la hora del equipo con un servidor NTP. Es la causa raíz del error 2004, el más frecuente con diferencia.
  • Valida el NIF de cada destinatario antes de emitir, especialmente al darlo de alta por primera vez.
  • Valida el XML contra el XSD de la AEAT en cada generación, no solo durante el desarrollo inicial.
  • Implementa idempotencia en el envío: ante un timeout, antes de reintentar consulta primero si la factura ya está registrada.
  • Mantén un registro local de las huellas de cada factura encadenada para poder diagnosticar errores 2000 sin depender de la AEAT.
  • Codifica siempre en UTF-8 sin BOM y normaliza los importes a dos decimales con punto como separador.
  • Audita periódicamente los envíos rechazados para detectar patrones (un cliente concreto, una serie concreta, un tipo de operación) que indiquen un error sistemático en la configuración.

Conclusión #

La mayoría de los errores Verifactu que aparecen en el día a día se concentran en un grupo reducido: problemas de sincronización horaria (2004), validación de NIF, cálculo de importes con redondeos y duplicidades por reintentos mal gestionados. Un software de facturación bien diseñado debería resolver la práctica totalidad de estos casos de forma transparente para el usuario, dejando intervenir manualmente solo cuando hay un dato realmente erróneo.

FactuSync implementa de serie las buenas prácticas descritas en este artículo: sincronización horaria automática, validación de NIF antes del envío, cálculo y verificación de huellas conforme a la Orden HAC/1177/2024, e idempotencia en los envíos a la AEAT. Si quieres centrarte en facturar y no en diagnosticar errores XML, descarga la versión de prueba y compruébalo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *