Saltar al contenido principal
VeriFactu

Subsanar en VeriFactu: cómo se corrige un registro y los errores de Subsanacion y RechazoPrevio

En VERI*FACTU un registro no se edita ni se borra: si estaba mal, se manda otro con el mismo identificador de factura que lo corrige. A eso la AEAT lo llama subsanar, y para indicarlo usa dos campos, Subsanacion y RechazoPrevio. Esta página explica cuándo toca, cómo se combinan los dos campos y los siete códigos que salen cuando no encajan.

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
3 min

Cuándo hay que subsanar

El documento de validaciones de la AEAT prevé la subsanación en tres situaciones:

  • El registro se aceptó con errores admisibles, los códigos 2xxx. Hay dos excepciones que no se subsanan: la ClaveRegimen vacía con IPSI y la fecha y hora de generación por delante de la AEAT.
  • El registro se rechazó. En remisión voluntaria, los rechazados hay que volver a enviarlos en una nueva presentación, subsanando el error.
  • Detectas después un dato incorrecto en un registro que se aceptó sin errores.

No cabe subsanar cuando la causa exige emitir una factura rectificativa. La subsanación corrige un registro; no sustituye a una rectificativa.

Tarjeta de los códigos de subsanación de VeriFactu
Los siete códigos de esta página: en ámbar los de Subsanacion y RechazoPrevio y, junto a ellos, el 3003 y el 3004.

Las cuatro formas de dar de alta un registro

El anexo de operativas admisibles de la AEAT combina los dos campos así:

OperaciónSubsanacionRechazoPrevioCuándo
Alta inicialN o vacíoN o vacíoLa factura no existe aún en la AEAT.
Alta por rechazoSXCorrige un alta inicial que se rechazó y que, por tanto, la AEAT no tiene.
Alta de subsanaciónSN o vacíoCorrige un registro que la AEAT ya tiene.
Alta por rechazo de subsanaciónSSRepite una subsanación que se rechazó.

Los códigos de esta familia

CódigoQué falla
1153RechazoPrevio X sin Subsanacion S.
1161RechazoPrevio S sin Subsanacion S.
1171Subsanacion o RechazoPrevio con un valor fuera de la lista.
1275Valor incorrecto en RechazoPrevio.
1276Valor incorrecto en SinRegistroPrevio.
3003El presentador no tiene los permisos necesarios para actualizar este registro de facturación.
3004No es posible modificar la factura ya que ha sido dada de alta vía formulario.

El 3003 sale cuando quien presenta la subsanación no puede actualizar ese registro, y el 3004 cuando la factura original se dio de alta por el formulario de la AEAT y no desde un sistema de facturación.

Lo que hace hoy nuestro módulo

El registro de alta que construye el módulo publicado no lleva Subsanacion ni RechazoPrevio: todas sus altas son altas iniciales. Por eso estos códigos no salen de un envío suyo, y también por eso:

Un registro rechazado (1xxx)
La cola lo reintenta con los mismos datos, porque el registro no cambia después de publicarse, y al sexto intento lo deja en Dead Letter. Ningún reintento lo convierte en un alta por rechazo.
Un registro aceptado con errores (2xxx)
Queda como «Aceptado con errores (subsanar)». El módulo no envía la subsanación.

Esto es lo que hay que saber antes de nada: en Odoo, con el módulo publicado, corregir un registro de VERI*FACTU no es automático.

Registros de facturación en Odoo con estados aceptado y aceptado con errores
En la lista de registros, los aceptados con errores quedan marcados para subsanar. Captura de Odoo 20 con datos de demostración; las respuestas de la AEAT son simuladas.

Qué hacer mientras tanto

  1. No canceles la factura para intentar arreglarla: cancelar crea un registro de anulación, que se encadena y se envía, pero no corrige el registro anterior.
  2. Corrige en Odoo el dato de origen, sea el contacto, el impuesto o el diario, para que las siguientes facturas salgan bien.
  3. Escríbenos a comercial@flexigobe.com con los registros afectados y su respuesta. Preparamos contigo la subsanación que corresponda a cada uno.

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
1153Valor del campo RechazoPrevio no válido, solo podrá incluirse el campo RechazoPrevio con valor X si se ha informado el campo Subsanacion y tiene el valor S.
1161El valor del campo RechazoPrevio no es válido, no podrá incluirse el campo RechazoPrevio con valor S si no se ha informado del campo Subsanacion o tiene el valor N.
1171El valor del campo Subsanacion o RechazoPrevio no se encuentra en los valores permitidos.
1275Valor incorrecto campo RechazoPrevio
1276Valor incorrecto campo SinRegistroPrevio
3003El presentador no tiene los permisos necesarios para actualizar este registro de facturación.
3004No es posible modificar la factura ya que ha sido dada de alta vía formulario.

Sigue leyendo

Error 2000 de VeriFactu: la AEAT recalcula tu huella y no le coincideEl error 2000 de VeriFactu: la AEAT recalcula la huella SHA-256 y no le sale la tuya. Por qué la factura queda registrada igual y qué hacer en Odoo 17, 18, 19 y 20.Error 2001 de VeriFactu: el NIF de tu cliente no está en el censo de la AEATEl error 2001 de VeriFactu: el NIF del destinatario no está en el censo de la AEAT. Por qué la factura entra igual, qué pide la AEAT y qué hacer en Odoo 17 a 20.Errores 3001 y 3002 de VeriFactu: anular una factura que la AEAT no tiene o que ya anulóLos errores de VeriFactu al anular: 3001 (ya dada de baja), 3002 (no existe) y los del bloque Generador. Qué hace Odoo 17, 18, 19 y 20 al cancelar una factura enviada.
Comprobado en el código del módulo (versión 20.0) y en las fuentes enlazadas

Fuentes