Respuesta corta: si cargaste dos veces el mismo XML, Odoo no te deja borrar la factura duplicada porque está ligada a un CFDI. Con Odoo Studio expones el registro del CFDI (modelo l10n_mx_edi.document), eliminas el del duplicado y la factura vuelve a poder restablecerse a borrador. Esto no cancela nada ante el SAT: solo aplica cuando el folio fiscal ya existe en otra factura.
El síntoma
Al revisar las facturas aparecen dos registros con el mismo folio fiscal (UUID). Alguien importó un XML que ya estaba en el sistema. Odoo avisa cuando el XML ya fue cargado, pero permite continuar, y el usuario aplicó el cambio de todas formas.
Puede pasar tanto en facturas de cliente como de proveedor. El resultado es una factura timbrada que no debería existir. Y cuando intentas corregirla, Odoo no deja restablecerla a borrador, modificarla ni eliminarla.
La causa raíz
Que Odoo no te deje borrarla no es un error: es una protección. Una factura con un CFDI asociado queda bloqueada para que la contabilidad no se separe de lo que el SAT tiene registrado. La vía nativa para retirarla es solicitar la cancelación ante el SAT, y la alternativa, una nota de crédito o reversión, genera movimientos contables que no corresponden a ninguna operación real.
En un duplicado de carga ninguna de las dos sirve. Ante el SAT solo existe un CFDI, y ese CFDI es válido y pertenece a la factura original. Cancelarlo afectaría a la factura correcta.
Lo que hay que eliminar no es la factura, sino el registro del CFDI que Odoo ligó al duplicado. Al quitarlo, la factura duplicada se libera.
Y hay una causa más de fondo: el aviso de Odoo apareció y alguien lo ignoró. Si no se cuida quién importa XML y cómo se valida antes, el problema va a regresar.
Antes de borrar: confirma que es un duplicado
Este procedimiento solo es correcto si se cumplen estas condiciones. Revísalas con tu contador antes de tocar nada:
- El folio fiscal (UUID) es idéntico en las dos facturas. Si los UUID son distintos, no es un duplicado de carga: se timbraron dos CFDI y los dos existen ante el SAT (ver la última sección).
- La factura original existe y está correcta. El duplicado es el registro que sobra, no al revés.
- El periodo no está cerrado. Si la fecha de la factura cae antes de la fecha de bloqueo contable, Odoo no te dejará restablecerla a borrador hasta que se abra el periodo.
- Revisa si el duplicado tiene pagos aplicados. Si los tiene, define con tu contador a qué factura deben quedar conciliados antes de continuar.
Cómo eliminar el CFDI duplicado en Odoo
Necesitas Odoo Studio instalado y permisos de administrador. No hay forma de hacerlo sin Studio: es lo que permite acceder al modelo donde Odoo guarda los CFDI.
- Agrega el modelo de CFDI al menú. Con Odoo Studio, agrega el modelo
l10n_mx_edi.documental menú de Contabilidad. Recomendamos ubicarlo en Configuración con el nombre CFDIs, para que quede ordenado y solo lo vea quien administra. - Localiza el CFDI del duplicado. En Contabilidad › Configuración › CFDIs, usa Agregar filtro personalizado con el campo Folio fiscal (el UUID). Verás los registros con ese folio: identifica el que pertenece a la factura duplicada (por el número de factura) y no el de la original.
- Elimina ese registro. Selecciónalo y bórralo. Solo el del duplicado.
- Vuelve a la factura duplicada. Ya estará disponible el botón Restablecer a borrador.
- Cancélala. Con la factura en borrador, da clic en Cancelar. Queda en estado cancelado y fuera de la contabilidad, sin afectar al CFDI de la factura original.
Para una guía más visual, apóyate en este video:
Cómo evitar que vuelva a pasar
- Trata el aviso de duplicado como un alto, no como una sugerencia. Si Odoo indica que el XML ya fue cargado, no se continúa sin revisar.
- Busca el folio fiscal antes de importar cuando el XML venga de un correo reenviado, una carpeta compartida o una carga masiva.
- Limita quién importa XML. Menos personas importando significa menos cargas repetidas y un responsable claro.
- Revisa duplicados periódicamente. Con el menú CFDIs que creaste, agrupa por Folio fiscal y revisa si alguno aparece más de una vez.
Si los folios fiscales son distintos
Entonces no se cargó dos veces el mismo XML: se timbraron dos CFDI para la misma operación, y los dos existen ante el SAT. Eliminar el registro en Odoo no resuelve nada y deja la contabilidad desalineada con el SAT. Lo correcto es solicitar la cancelación del CFDI que sobra ante el SAT, con el motivo de cancelación que corresponda, desde la propia factura en Odoo. Si tienes dudas sobre el motivo, consúltalo con tu contador.
Preguntas frecuentes
¿Eliminar el CFDI en Odoo lo cancela ante el SAT?
No. Eliminar el registro del CFDI en Odoo solo quita la relación entre la factura y el comprobante dentro de Odoo. Ante el SAT no cambia nada. Por eso este procedimiento solo aplica a duplicados de carga, donde el CFDI sigue vigente en la factura original.
¿Se puede hacer sin Odoo Studio?
No. Odoo no ofrece un menú nativo para administrar los registros de CFDI (l10n_mx_edi.document). Odoo Studio es lo que permite agregarlo al menú y eliminar el registro del duplicado.
¿Por qué Odoo no me deja restablecer a borrador una factura timbrada?
Para proteger la congruencia entre tu contabilidad y lo que el SAT tiene registrado. Mientras la factura tenga un CFDI asociado, Odoo la bloquea. En un duplicado de carga, al eliminar el registro del CFDI que sobra, la factura se libera.
¿Qué hago si la factura duplicada ya tiene un pago aplicado?
Antes de eliminar nada, define con tu contador a qué factura debe quedar aplicado ese pago. Después de retirar el duplicado, confirma que el pago quedó conciliado con la factura original.
¿Tus facturas se duplican o se timbran con errores?
Casi nunca es un problema de Odoo: es un proceso de importación y validación que nadie definió. En una sesión fiscal revisamos contigo cómo se cargan los XML, quién timbra, cómo se concilian los pagos y dónde se está generando el retrabajo.