Saltar al contenido principal
VeriFactu

Errores 3001 y 3002 de VeriFactu: anular una factura que la AEAT no tiene o que ya anuló

Cancelar una factura en Odoo, cuando ya tiene su registro de VERI*FACTU, genera un registro de anulación que también viaja a la AEAT. La AEAT busca la factura que quieres anular y contesta con un código si no la encuentra o si ya estaba anulada. Además, el registro de anulación tiene su propio bloque, Generador, con otra decena de códigos.

FlexigoTech · Responsable: Víctor Gómez · Actualizado el 4 de noviembre de 2026

Lo esencial

Módulo
VeriFactu
Versiones
Odoo 17, 18, 19 y 20
Comprobado
en el código del módulo, versión 20.0 · en las fuentes enlazadas al final
Lectura
4 min

Los dos códigos de estado

CódigoTexto de la AEATQué significa
3001El registro de facturación ya ha sido dado de baja.Esa factura ya estaba anulada en la AEAT.
3002No existe el registro de facturación.La AEAT no tiene ninguna factura con ese identificador.

Los dos están en el apartado de la lista que rechaza el registro: la anulación no entra, el resto del envío sí.

Tarjeta de los códigos de anulación de VeriFactu
El 3001, el 3002 y los códigos del bloque Generador, todos de los que rechazan el registro.

Qué hace Odoo al cancelar una factura

Cuando cancelas una factura que tiene registro de alta, el módulo crea un registro de anulación y lo encadena como uno más. Ese registro lleva el identificador de la factura que se anula, con tu NIF, su número y su fecha de expedición, más su encadenamiento, los datos del sistema, la fecha y la huella. La cola lo envía como cualquier otro.

Fíjate en una condición: el módulo crea la anulación cuando la factura tiene registro de alta, esté como esté ese registro. De ahí sale el caso más habitual del 3002.

Cuándo aparece cada uno

El 3002 tras un rechazo. Si el alta de una factura se rechazó y acabó en Dead Letter, la AEAT nunca la registró. Si después cancelas esa factura en Odoo, la anulación busca un registro que no existe, y la respuesta es el 3002.

El 3001 por partida doble. Si una factura ya consta como anulada en la AEAT y llega otra anulación con el mismo identificador, la respuesta es el 3001. Puede ocurrir si la factura se anuló por otro camino antes de hacerlo en Odoo.

En los dos casos, la anulación rechazada se reintenta con los mismos datos, con esperas de 2 minutos a 12 horas, y acaba en Dead Letter al sexto intento.

Cola de envío a la AEAT agrupada por estado
La cola agrupada por estado: los registros de anulación pasan por los mismos estados que las altas. Captura de Odoo 20 con datos de demostración; las respuestas de la AEAT son simuladas.

El bloque Generador

Según el documento de validaciones de la AEAT, una anulación puede decir quién la generó con el campo GeneradoPor y el bloque Generador, que van siempre juntos. Si el generador se identifica con NIF, tiene que estar identificado y ser distinto del obligado. De ahí salen el 1224, 1225, 1227, 1228, 1229, 1230, 1231, 1258, 1259 y 1273, y el 1214, que pide que el campo NumeroOTAlta sea un número positivo de cuatro posiciones.

El registro de anulación del módulo no lleva GeneradoPor ni Generador, así que ninguno de esos códigos puede salir de un envío suyo.

Qué hacer

  • Antes de cancelar una factura cuyo alta está en Dead Letter, escríbenos: cancelar no la arregla y deja una anulación sin destino.
  • Con un 3001, comprueba si la factura se anuló antes por otro medio.
  • En cualquier caso, mándanos el número de la factura a comercial@flexigobe.com y lo revisamos contigo.

Los códigos de esta página, con el texto de la AEAT

Cada código con su texto literal, tal como lo da la lista de errores de la AEAT:

CódigoTexto de la AEAT
3001El registro de facturación ya ha sido dado de baja.
3002No existe el registro de facturación.
1214El campo NumeroOTAlta debe ser númerico positivo de 4 posiciones.
1224Si se informa el campo GeneradoPor deberá existir la agrupación Generador y viceversa.
1225El valor del campo GeneradoPor es incorrecto.
1227Si el campo GeneradoPor es igual a E debe estar relleno el campo NIF del bloque Generador.
1228En el bloque Generador si se cumplimenta NIF, no deberá existir la agrupación IDOtro y viceversa, pero es obligatorio que se cumplimente uno de los dos.
1229Si el valor de GeneradoPor es igual a T el valor del campo IDType del bloque Generador no debe ser No Censado (07).
1230Si el valor de GeneradoPor es igual a D y el CodigoPais tiene valor ES (España), el valor del campo IDType del bloque Generador debe ser Pasaporte (03) o No Censado (07).
1231El valor del campo IDType del bloque Generador es incorrecto.
1258El valor de campo NIF del bloque Generador es incorrecto.
1259En el bloque Generador si se identifica mediante NIF, el NIF debe estar identificado y ser distinto del NIF ObligadoEmision.
1273Error en el bloque de Generador.

Sigue leyendo

Error 3000 de VeriFactu: la AEAT ya tiene esa factura registradaEl error 3000 de VeriFactu dice que la AEAT ya tiene esa factura. Cuándo pasa, qué estado trae la respuesta y por qué en Odoo 17, 18, 19 y 20 no hay que reenviarla.Errores de VeriFactu con facturas rectificativas: TipoRectificativa, rectificadas y sustituidasErrores de VeriFactu de rectificativas y sustitutivas (1107, 1114 a 1119): cuándo van TipoRectificativa e ImporteRectificacion y cómo envía Odoo un abono.Subsanar en VeriFactu: cómo se corrige un registro y los errores de Subsanacion y RechazoPrevioCómo se corrige en VeriFactu un registro rechazado o aceptado con errores: subsanación, RechazoPrevio, los códigos 1153 a 1276, 3003 y 3004, y Odoo.
Comprobado en el código del módulo (versión 20.0) y en las fuentes enlazadas

Fuentes