Qué significa
El texto de la AEAT es Registro de facturación duplicado. y está en el apartado de la lista oficial que rechaza la factura, no el envío entero. El identificador que se compara es el bloque IDFactura: el NIF del emisor, el número de la factura y su fecha de expedición. En Odoo, esos tres datos salen del NIF de la empresa, del número que Odoo dio a la factura y de su fecha.
Junto al 3000, la respuesta de la AEAT incluye un bloque RegistroDuplicado que cuenta qué pasó con el registro que ya existía: el identificador de la petición en que entró, su estado, y, si lo tuvo, su propio código de error.

Cuándo pasa trabajando con Odoo
La AEAT contesta cada envío con un estado por registro. Si esa respuesta no llega, por un corte de red o un tiempo de espera agotado, el módulo no puede saber si la AEAT lo guardó: deja el envío en Retrying y lo repite más tarde, con esperas que van de 2 minutos a 12 horas. Si la primera vez sí había entrado, la segunda vuelve con un 3000. Es la forma que tiene la AEAT de decirte que ya lo tenía.
Qué hace el módulo con la respuesta
| Estado del registro anterior | Qué queda en Odoo |
|---|---|
| Correcta | El registro pasa a «Aceptado AEAT» y no se vuelve a enviar. |
| AceptadaConErrores | Queda como «Aceptado con errores (subsanar)», con el código y la descripción del registro anterior. |
| Cualquier otro | Se trata como un rechazo: Retrying y, al sexto intento, Dead Letter. |
Esto coincide con lo que indica la AEAT: si el registro ya consta como correcto o aceptado con errores, no hay que reenviarlo. Volver a mandarlo solo produciría otro 3000.

Qué tienes que hacer tú
- Si el registro ha quedado como «Aceptado AEAT», nada. La factura está registrada una sola vez.
- Si ha quedado como «Aceptado con errores (subsanar)», el problema no es el duplicado sino el error que ya tenía el registro anterior. Busca su código en esta misma serie de páginas.
- Si el 3000 se repite con facturas distintas, revisa que dos sistemas no estén enviando las mismas facturas con el mismo NIF, por ejemplo una copia de Odoo de pruebas apuntando al entorno de producción.
¿El 3000 puede ser de otra factura con el mismo número?
Solo si coinciden NIF, número y fecha. Odoo no repite números dentro de un mismo diario, así que lo habitual es que sea la misma factura enviada dos veces.
¿Dónde veo el registro anterior?
En la respuesta guardada en el envío, el campo Raw Response de la cola, que trae el bloque RegistroDuplicado completo.
Los registros de anulación siguen la misma lógica de identificador. Lo que pasa cuando anulas una factura que la AEAT no tiene, o que ya estaba anulada, está en la página de las anulaciones.
Sigue leyendo
Comprobado en el código del módulo (versión 20.0) y en las fuentes enlazadas
Fuentes
- prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/Sis
- 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_cadena.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
