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.

Las cuatro formas de dar de alta un registro
El anexo de operativas admisibles de la AEAT combina los dos campos así:
| Operación | Subsanacion | RechazoPrevio | Cuándo |
|---|---|---|---|
| Alta inicial | N o vacío | N o vacío | La factura no existe aún en la AEAT. |
| Alta por rechazo | S | X | Corrige un alta inicial que se rechazó y que, por tanto, la AEAT no tiene. |
| Alta de subsanación | S | N o vacío | Corrige un registro que la AEAT ya tiene. |
| Alta por rechazo de subsanación | S | S | Repite una subsanación que se rechazó. |
Los códigos de esta familia
| Código | Qué falla |
|---|---|
| 1153 | RechazoPrevio X sin Subsanacion S. |
| 1161 | RechazoPrevio S sin Subsanacion S. |
| 1171 | Subsanacion o RechazoPrevio con un valor fuera de la lista. |
| 1275 | Valor incorrecto en RechazoPrevio. |
| 1276 | Valor incorrecto en SinRegistroPrevio. |
| 3003 | El presentador no tiene los permisos necesarios para actualizar este registro de facturación. |
| 3004 | No 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.

Qué hacer mientras tanto
- 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.
- Corrige en Odoo el dato de origen, sea el contacto, el impuesto o el diario, para que las siguientes facturas salgan bien.
- 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ódigo | Texto de la AEAT |
|---|---|
| 1153 | Valor 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. |
| 1161 | El 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. |
| 1171 | El valor del campo Subsanacion o RechazoPrevio no se encuentra en los valores permitidos. |
| 1275 | Valor incorrecto campo RechazoPrevio |
| 1276 | Valor incorrecto campo SinRegistroPrevio |
| 3003 | El presentador no tiene los permisos necesarios para actualizar este registro de facturación. |
| 3004 | No es posible modificar la factura ya que ha sido dada de alta vía formulario. |
Sigue leyendo
Comprobado en el código del módulo (versión 20.0) y en las fuentes enlazadas
Fuentes
- www.agenciatributaria.es/static_files/AEAT_Desarrolladores/EEDD/IVA/VERI-FACTU/Validacione
- Código del módulo: flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_aeat_client.py
- Código del módulo: flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_cola_envio.py
- Código del módulo: flexigo_spain_verifactu 20.0 (aa2ea3d2): models/verifactu_registro.py
- Código del módulo: flexigo_spain_verifactu 20.0 (aa2ea3d2): data/verifactu_error_catalogue.xml
- prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/err
