Resumen en un minuto
El 1 de enero de 2026, el SAT cambió el rubricón: cada CFDI emitido por una PYME mexicana debe reflejar operaciones reales y comprobables. Si no, deja de ser un error administrativo y pasa a ser delito fiscal por el Artículo 113 Bis del Código Fiscal de la Federación. Si tu empresa opera en México sobre Odoo y crees que la reforma CFDI SAT 2026 va de actualizar el XSD, este artículo te va a decepcionar y a salvar al mismo tiempo.
- El 1 de enero de 2026 entra en vigor la regla de operaciones reales: un CFDI sin soporte documental al momento de la emisión equivale a operación simulada y se tipifica por el Art. 113 Bis CFF.
- El 30 de enero de 2026 se publicaron los catálogos actualizados de CFDI 4.0 (
c_UsoCFDI,c_FormaPagoy ajustes ac_RegimenFiscal). Los PAC ya rechazan los códigos viejos. - La suspensión del CSD bajo el Art. 17-H Bis CFF se activa por emisión sin materialidad, facturación masiva, inactividad prolongada, omisión de declaraciones y operaciones irregulares en hidrocarburos. La restitución se solicita por Procedimiento de Aclaración y el SAT tiene hasta 40 días hábiles para resolver.
- La cancelación da al receptor 3 días hábiles para aceptar o rechazar vía Buzón Tributario; pasado el plazo, se asume aceptada. Los motivos 01 a 04 son obligatorios y el motivo 01 requiere sustitución con el UUID en
CfdiRelacionados. - Las multas por CFDI no emitido o inválido se indexan anualmente en la Resolución Miscelánea Fiscal y suman decenas de miles de pesos por documento.
- Odoo l10n_mx cubre emisión, cancelación, complemento de pagos y Carta Porte 3.1 de fábrica. El audit trail de operaciones reales requiere un módulo custom de 40 a 80 horas o un workflow disciplinado con attachments obligatorios.
Contexto y timeline 2026
CFDI 4.0 se volvió obligatorio para todos los contribuyentes mexicanos el 1 de abril de 2023 y reemplazó al 3.3. Desde entonces el formato XML no cambió — lo que sí cambia cada año es la capa de validación encima. La reforma CFDI SAT 2026 no es un formato nuevo: es una nueva capa de enforcement.
#1. Qué había antes
Hasta 2026, el SAT usaba el Art. 69-B CFF para publicar en el Diario Oficial de la Federación los listados de EFOS (Empresas que Facturan Operaciones Simuladas) y EDOS (Empresas que Deducen Operaciones Simuladas). Desde 2024, esos listados crecieron rápido — cada trimestre el DOF sumaba cientos de RFC nuevos en presunción definitiva. Pero el procedimiento era lento: el SAT publicaba la presunción, daba 15 días para responder y si no había reacción la pasaba a definitiva. Después venía litigio fiscal aparte.
#2. Qué cambia en 2026
La Reforma Fiscal 2026 hizo dos cosas estructurales:
- Materialidad obligatoria al momento de emitir el CFDI. Antes, el SAT probaba la inexistencia de la operación a posteriori — después de publicar en el DOF. Ahora el contribuyente debe tener pruebas de materialidad al momento de emitir el documento: contrato, asiento contable, soporte documental y evidencia de entrega del bien o servicio.
- Escalamiento a plano penal. Un CFDI falso ya no es un error administrativo arreglable por aclaración. Es potencial tipificación por Art. 113 Bis CFF (prisión de 2 a 9 años) o 113 Ter cuando la emisión es sistemática.
#3. Fechas clave del año fiscal 2026
| Fecha | Evento | Qué hacer |
|---|---|---|
| 1 ene 2026 | Entra en vigor la regla de operaciones reales | Auditar el flujo de emisión de CFDI y el soporte documental |
| 30 ene 2026 | Actualización de catálogos CFDI 4.0 (publicados el 29 de enero) | Actualizar l10n_mx a la última versión; revisar el cron del PAC |
| 1 abr 2026 | Termina la prórroga para Carta Porte 3.1 donde aún aplicaba | Todos los CFDI de transporte deben incluir el complemento 3.1 |
| ~1 jul 2026 | Publicación esperada de modificaciones a la RMF 2026 | Suscribirse al DOF y a comunicaciones SAT |
| Continuo | El SAT publica listados EFOS y EDOS trimestralmente | Hacer cross-check de clientes y proveedores cada trimestre |
#4. Marco normativo de referencia
- Art. 29 CFF — obligación de emitir CFDI.
- Art. 29-A CFF — requisitos del contenido del CFDI y procedimiento de cancelación.
- Art. 17-H Bis CFF — causales y procedimiento de suspensión del CSD.
- Art. 69-B CFF — procedimiento de presunción de inexistencia de operaciones (EFOS y EDOS).
- Art. 113 Bis CFF — tipificación penal por emisión o venta de CFDI sin operaciones reales.
- Art. 113 Ter CFF — agravado cuando la emisión es sistemática.
- Arts. 42 y 49 CFF — facultades de comprobación, visitas domiciliarias y revisiones.
- Arts. 81 y 82 CFF — multas administrativas.
Para el rango exacto de multas y el cruce con el Anexo 5 de la RMF, consulta la publicación vigente en el DOF: los importes se actualizan cada año por UMA. Si necesitas contexto regulatorio adicional, revisa la guía pillar de Odoo en México.
Requisitos técnicos: guía de compliance para Odoo
El stack técnico para CFDI 2026 no es exótico. Lo difícil no es instalar los módulos — es disciplinar el workflow para que cada CFDI deje rastro de materialidad. A continuación, los cinco pasos que cubren el 90% del trabajo de configuración en Odoo 17 y Odoo 18.
#1. Localización l10n_mx — qué debe estar instalado
El stack mínimo para compliance en Odoo 17 y 18:
l10n_mx # Localización base México
l10n_mx_edi # Emisión y cancelación CFDI 4.0
l10n_mx_edi_40 # Schema CFDI 4.0 y validaciones
l10n_mx_edi_extended # Complemento de pagos (REP)
l10n_mx_edi_payment # Workflow de complemento de pago
l10n_mx_edi_landing # Comercio Exterior (export)
l10n_mx_edi_carta_porte # Carta Porte 3.1 (transporte)
l10n_mx_reports # DIOT, retenciones ISR
Forma parte del bundle OCA y de las branches mantenidas por Vauxoo. En Odoo Enterprise viene la mayor parte incluida; en Community hay que instalar desde los repos OCA/l10n-mexico y Vauxoo/odoo-l10n-mexico. Vauxoo es el partner HQ de México y hace la mayor parte de la contribución upstream en l10n_mx.
#2. Configuración del PAC
El PAC (Proveedor Autorizado de Certificación) es el proveedor que el SAT autoriza para timbrar el CFDI y enviarlo al fisco. Odoo l10n_mx soporta de fábrica a SW Sapien, Solución Factible, Diverza, Edicom México y Facturama.
La secuencia de configuración:
- Settings → Companies → seleccionar empresa → Tax Configuration → PAC selection.
- Cargar el CSD: archivos
.cery.keymás el password del Certificado de Sello Digital emitido por el SAT. - Indicar RFC, Régimen Fiscal y Lugar de Expedición (CP de 5 dígitos).
- Asociar con los diarios de factura (
F-,B-,P-para pagos). - Activar el cron
l10n_mx_edi.cron_update_cfdi_statuscada 6 horas.
posted con UUID vacío. Sin alerta, descubres el problema a fin de mes cuando ya tienes 60 facturas atascadas.#3. Workflow de emisión de CFDI con soporte real
El flujo estándar de Odoo:
Sale Order → Delivery → Invoice → CFDI emission → PAC timbra → XML/PDF
Bajo la reforma 2026, cada paso debe dejar audit trail:
- Sale Order — contrato o PO del cliente como attachment.
- Delivery — remisión firmada (foto o PDF escaneado).
- Invoice — congruencia de importes entre orden y factura.
- CFDI XML —
UsoCFDI,FormaPago,MetodoPagoy régimen correctos.
El Odoo vainilla no completa el audit trail. Hay que extenderlo con un módulo custom:
class AccountMove(models.Model):
_inherit = 'account.move'
materialidad_soporte_ids = fields.Many2many(
'ir.attachment',
string='Soporte de Materialidad',
help='Documentos que prueban la realidad de la operación (Art. 113 Bis CFF)')
@api.constrains('state', 'materialidad_soporte_ids')
def _check_materialidad_mx(self):
for move in self:
if (move.state == 'posted'
and move.move_type == 'out_invoice'
and move.country_code == 'MX'
and not move.materialidad_soporte_ids):
raise ValidationError(
'CFDI no puede emitirse sin soporte de materialidad.')
Este código bloquea el posting de una factura que no tenga al menos un documento attached. En la práctica cambia toda la disciplina del equipo: el contador físicamente no puede emitir un CFDI «por confianza».
#4. Workflow de cancelación — la ventana de 3 días
Desde 2022, la cancelación requiere elegir motivo:
- 01 — Comprobantes emitidos con errores con relación: requiere el UUID del CFDI sustituto.
- 02 — Comprobantes emitidos con errores sin relación.
- 03 — No se llevó a cabo la operación.
- 04 — Operación nominativa relacionada en una factura global.
En Odoo l10n_mx 17 y 18 el flujo de cancelación está implementado por l10n_mx_edi.action_cancel. El receptor recibe el aviso en Buzón Tributario y tiene 3 días hábiles para aceptar o rechazar. Sin respuesta, se acepta por defecto.
Gap en Odoo: el sistema no rastrea automáticamente el contador de 3 días. Un cron custom debe sincronizar el estatus por consultarEstatusCFDI del SAT — de lo contrario, una semana después la empresa no sabe cuáles cancelaciones realmente prosperaron.
#5. Suspensión de CSD — qué hacer cuando ya bloquearon
Si el SAT suspende el CSD por Art. 17-H Bis:
- Entrar al Portal SAT → Servicios → Aclaraciones → «Aclaración sobre dejar sin efectos el CSD».
- Subir evidencia: contabilidad analítica, contratos, estados de cuenta bancarios y prueba de materialidad por cada CFDI sospechoso.
- El SAT tiene 40 días hábiles para resolver.
- En paralelo, dentro de Odoo: detener la emisión de CFDI con el flag
company_id.l10n_mx_edi_cfdi_block = Trueo cerrar temporalmente el journal. - Mantener todas las facturas pendientes en
draft, sin posting — si no, se quedan ento_sendy arman caos en la reconciliación cuando se restituya el CSD.
Si tu empresa ya está en suspensión, el rescate de proyecto Odoo es el servicio adecuado: combina la aclaración SAT con la disciplina técnica para que no vuelva a pasar.
Cuándo Odoo l10n_mx funciona y cuándo no
No todo modelo de negocio en México encaja bien con Odoo l10n_mx. Reviso seis casos típicos y dónde la línea es defendible o donde conviene salir hacia otro stack.
#1. Funciona bien: PYME de 10-50 personas, B2B con productos estándar
Distribuidor de equipo IT en Querétaro, 28 personas, ~2 000 CFDI/mes. Cada CFDI atado a una sale order, que a su vez está atada a una cotización firmada en PDF. Materialidad obvia y audit-friendly. Odoo l10n_mx más un módulo custom para attachment obligatorio cubre el 100% del workflow.
#2. Funciona bien: servicios con retainer mensual
Agencia de marketing en CDMX, 15 clientes en retainer. Un CFDI al mes por cliente. Contrato como attachment al partner record, timesheet como reporte cada mes. UsoCFDI G03 (Gastos en general). Congruencia transparente. Lo único custom es exportar el timesheet como attachment obligatorio.
#3. Funciona a medias: marketplace seller (Mercado Libre, Amazon MX)
Vendedor en Mercado Libre, 500 a 3 000 ventas/mes. El marketplace no entrega el RFC del comprador para el menudeo. La solución es factura global con motivo de cancelación 04. Odoo l10n_mx soporta factura global, pero requiere consolidación custom de orders dentro de un solo CFDI con el UUID de cada relación. La materialidad para el menudeo se prueba por la delivery confirmation del marketplace — eso es external data, Odoo no la jala sola. Hay que integrar por webhook o import CSV diario.
#4. No funciona out-of-box: cadena restaurantera con factura on-demand
Cadena de 6 puntos QSR en Monterrey, 1 500 transacciones/día. Solo el 8 a 12% de los clientes pide factura. El POS entrega ticket; el cliente entra después al sitio, captura su RFC y recibe el CFDI. La materialidad entre ticket y emisión pasan 24 a 48 horas. El SAT puede dudar si el ticket se pierde. Hace falta integrar POS → ticket archive → emisión de factura con linking automático. Es un módulo custom de 80 a 120 horas o un POS especializado con integración SAT en vez del Odoo POS.
#5. No funciona: hidrocarburos y sectores regulados
Distribuidor de combustibles o GLP, sector regulado. El Art. 17-H Bis CFF le da al SAT causales reforzadas para suspensión de CSD precisamente en estos sectores, más complementos obligatorios (Hidrocarburos, IEPS) con correlación permanente contra pedimentos aduanales. l10n_mx_edi_extended más un complemento hidrocarburos custom teóricamente funciona; en la práctica, para una PYME del sector, es económicamente más correcto usar un software de compliance especializado (Edicom, GoSocket) integrado contra Odoo por un middle layer.
#6. Caso especial: USMCA / cross-border (Estados Unidos, Canadá)
PYME exportadora a Estados Unidos, CFDI con complemento Comercio Exterior 1.1. La reforma 2026 no cambia el complemento, pero suma el requisito de materialidad por partida embarcada. Se necesita un link entre CFDI, pedimento aduanal y shipping documentation. l10n_mx_edi_landing + delivery_landed_costs + un campo custom con el pedimento — workable, pero exige disciplina de captura desde el área de logística.
Las 5 errores que el SAT detecta con más frecuencia
Por experiencia de campo y por lo que aparece en cada aclaración formal: estos cinco patrones disparan el 70% de las suspensiones de CSD en PYME mexicana. Cada uno tiene un fix técnico concreto en Odoo.
#1. CFDI sin soporte documental al momento de emitir
Qué pasa. La empresa emite un CFDI «por si acaso» esperando que el contrato se firme después. El SAT, en visita domiciliaria por Art. 42 CFF, pide el contrato y no existe.
Consecuencia. El CFDI se marca como presumiblemente sin materialidad. Si el patrón se repite, el SAT mete al RFC en presunción por Art. 69-B y publica en el DOF.
Cómo evitarlo en Odoo. Política de attachment obligatorio por validación custom (ver Paso 3). La sale order no se cierra sin un PDF firmado del cliente.
#2. Cancelación con motivo 01 sin sustitución
Qué pasa. El contador cancela un CFDI con motivo 01 («errores con relación»), pero no emite el CFDI sustituto con el UUID correcto en CfdiRelacionados. El PAC acepta la cancelación, pero en una auditoría el SAT detecta el hueco.
Consecuencia. Reclasificación de la cancelación como operación simulada. La recuperación de IVA acreditable para el receptor queda imposible.
Cómo evitarlo en Odoo. No usar motivo 01 sin crear simultáneamente la factura sustituta por account.move.action_substitute_cfdi. Un workflow custom bloquea la cancelación hasta que se emita la sustitución.
#3. CSD no actualizado en Odoo después de la rotación en el SAT
Qué pasa. La empresa obtuvo un CSD nuevo en el SAT, pero en la configuración del PAC dentro de Odoo quedó el viejo. Odoo sigue timbrando con CSD vencido — recibe rechazo, pero la factura se queda en posted con UUID vacío.
Consecuencia. Serie de facturas «invisibles» que nunca llegan al SAT. En el cross-check entre libro mayor y SAT aparece el hueco. En el peor caso es presunción de doble contabilidad.
Cómo evitarlo en Odoo. Monitoreo por el cron l10n_mx_edi.cron_update_cfdi_status cada 6 horas. Alerta por email si 3 o más facturas se quedan en estado to_send más de 24 horas. Rotación trimestral de CSD con recordatorio en calendario.
#4. UsoCFDI incorrecto
Qué pasa. El cliente entrega su RFC y Odoo coloca por default G03 (gastos en general) en cada CFDI. Pero el cliente es persona física sin actividad empresarial, para quien el UsoCFDI correcto sería S01 (sin efectos fiscales) u otro código según su régimen.
Consecuencia. El receptor intenta deducir un CFDI que para su régimen es incorrecto. El SAT, por cross-check, encuentra el desfase. El receptor rechaza el CFDI; en Odoo hay que cancelar y re-emitir.
Cómo evitarlo en Odoo. El UsoCFDI debe guardarse por partner y validarse vía l10n_mx_cfdi_usage_mapping consultando la API del SAT al momento de emitir. La alternativa es entrenar al equipo de ventas para que pida el UsoCFDI correcto al cliente desde el onboarding.
#5. Carta Porte sin CFDI de ingresos correspondiente
Qué pasa. La empresa de transporte emite un Carta Porte 3.1 por la entrega de carga, pero no emite el CFDI de ingresos correspondiente en el mismo periodo fiscal.
Consecuencia. El SAT ve movimiento sin revenue correspondiente. Presunción de simulación u omisión de ingresos.
Cómo evitarlo en Odoo. Dentro de l10n_mx_edi_carta_porte, añadir un cron custom que verifique la correspondencia Carta Porte ↔ Factura de ingresos en el mismo periodo fiscal. La discrepancia dispara un email al contador.
Caso anónimo: cómo una PYME de Guadalajara recuperó el CSD en 32 días
Situación. PYME distribuidora de electrónica en GDL, 18 personas, facturación anual de ~$45M MXN. Odoo Enterprise 17 con l10n_mx, implementación hecha en 2023 por un Silver partner local.
En marzo 2026 el SAT suspende el CSD por Art. 17-H Bis: «emisión de CFDI sin que se demuestre materialidad». El trigger fue la discrepancia entre los CFDI de ingresos emitidos (~$3.2M MXN en febrero) y la DIOT (IVA acreditable mínimo reportado por soportes).
Qué encontró la auditoría interna. El contador emitía CFDI «acelerados» a clientes que pedían por WhatsApp, sin sale order ni attachment del contrato. ~400 CFDI en 6 meses sin soporte documental. La materialidad existía (la mercancía sí se entregaba), pero no estaba documentada con calidad de auditoría.
Qué hicieron en 32 días.
- Día 1-3. Congelaron la emisión de CFDI pendientes en Odoo (
company.l10n_mx_edi_cfdi_block = True). Pararon todo posting de facturas nuevas. - Día 4-10. Hicieron auditoría completa de los 400 CFDI «acelerados». Por cada uno buscaron: estado de cuenta bancario (proving payment received), remisión o foto de la mercancía, email o WhatsApp con la solicitud del cliente. 287 de los 400 tenían materialidad reconstruible.
- Día 11-15. Por los 113 CFDI sin materialidad reconstruible — cancelación con motivo 02 («sin relación»), sin sustitución. Prepararon el dossier para el SAT con reconocimiento del error y plan de remediación.
- Día 16-20. Instalaron el módulo custom en Odoo que bloquea el posting de factura sin
materialidad_soporte_idsobligatorio. Capacitaron al contador y al equipo de ventas en el workflow nuevo. - Día 21-25. Presentaron Aclaración en el Portal SAT. Subieron el dossier con las 287 materialidades reconstruidas, el plan correctivo y la certificación de workflow obligatory-attachment del partner Odoo.
- Día 26-32. El SAT hizo review. CSD restituido al día 32.
Cuando suspendieron el CSD, la facturación se cayó a cero. El primer reflejo fue gritar al partner Odoo, pero el problema no era técnico — era que el contador estaba emitiendo CFDI sin contrato. El módulo custom de attachment obligatorio no es defensa contra el SAT: es defensa contra nosotros mismos.
Resultado. CSD restituido, el negocio siguió operando. 113 CFDI cancelados perdidos para deducibilidad — daño financiero ~$890k MXN de IVA más ~$1.2M MXN de ISR. Costo del fix: $185k MXN (consulting + custom dev + 32 días de operación parcial). Costo de haberlo evitado: instalar workflow de attachment obligatorio desde el principio — ~$25k MXN. La lección: la «comodidad» de emitir CFDI por confianza cuesta 7 a 8 veces más que el workflow correcto del primer día.
Checklist de preparación CFDI 2026 — descarga la plantilla
Armamos un checklist Excel de 47 puntos para evaluar la preparación de Odoo ante la reforma CFDI 2026: módulos, configuración del PAC, políticas de audit trail, workflows de cancelación, monitoreo y rotación de CSD. Incluye también una plantilla de Aclaración para restituir CSD basada en el caso anterior.
Descargar Checklist CFDI Real-Ops 2026 → (email-gated)
Conclusión
La reforma CFDI SAT 2026 no es un formato nuevo. Es la capa de enforcement que convierte al CFDI 4.0 existente de «papel electrónico» a prueba legalmente vinculante de materialidad. Para la PYME que usa Odoo, los requisitos técnicos se cubren con el stack estándar l10n_mx más un módulo custom de 40 a 80 horas para el workflow de attachment obligatorio y el monitoreo del estatus del CSD. El costo del fix caso por caso se mide en decenas de miles de pesos; el costo de no actuar, en millones.
La recomendación principal: no esperar la visita del SAT. Hoy, mayo de 2026, ya estamos en temporada del primer semestre de auditorías. El SAT publica EFOS trimestralmente y cada listado nuevo es un colapso de contrapartes para quienes los usaron en deducción. Si el workflow de CFDI en tu empresa incluye «emisión por WhatsApp» o «sin contrato», ese es un cronómetro corriendo. La auditoría Odoo sobre preparación operaciones-reales toma 4 a 6 horas y cuesta órdenes de magnitud menos que la restitución de un CSD.
Materiales relacionados:
- Odoo en México: guía completa para PYME
- Auditoría Odoo — metodología Hacker Sergio
- Rescate proyecto Odoo: cómo restituir el CSD sin perder el negocio
- Implementación Odoo para PYME en México
- Compliance vecino: SUNAT 2026 (Perú)
- SII 2026 (Chile)
- DIAN nómina electrónica (Colombia)
- AFIP/ARCA monotributo (Argentina)
- Casos del portafolio: rescate y data engineering
Preguntas frecuentes
¿Desde cuándo aplica el SAT el enforcement de «operaciones reales»?
Desde el 1 de enero de 2026, conforme a la Reforma Fiscal 2026 publicada en el DOF a fines de 2025. El Art. 69-B CFF (presunción de inexistencia) ya se usaba antes; lo nuevo en 2026 es el escalamiento hasta tipificación penal por Art. 113 Bis y 113 Ter CFF, junto con facultades reforzadas de verificación que incluyen recolección de evidencia foto, video y audio dentro del domicilio fiscal.
¿Se puede usar Odoo Community para CFDI 2026?
Sí. La localización base l10n_mx del bundle OCA cubre emisión, cancelación y complemento de pagos. Carta Porte 3.1 es un módulo aparte (l10n_mx_edi_carta_porte). El audit trail de operaciones reales requiere un módulo custom de 40 a 80 horas con validación de attachment obligatorio sobre account.move.
¿Cuánto cuesta en términos de negocio una suspensión de CSD?
Para la PYME distribuidora de 18 personas del caso anterior: $890k MXN de IVA + $1.2M MXN de ISR + 32 días de operación parcial + $185k MXN de consulting ≈ $2.3M MXN totales. Para retailers con rotación rápida de inventario los importes son mayores: cada día sin CFDI es un día de venta perdido.
¿Qué PAC soporta Odoo l10n_mx de fábrica?
SW Sapien, Solución Factible, Diverza, Edicom México y Facturama. Para otro PAC se necesita integración custom — en promedio 60 a 120 horas de desarrollo.
¿Qué hacer con CFDI emitidos antes de 2026 sin soporte de materialidad?
Si el SAT no abrió auditoría, no entrar en pánico. La reforma aplica a CFDI emitidos desde el 1 de enero de 2026. Los anteriores siguen bajo Art. 69-B (presunción) con el mismo procedimiento previo a 2026. Se recomienda reconstruir retrospectivamente el soporte de los CFDI de los últimos 5 años (plazo de prescripción) — es higiene básica ante una eventual auditoría.
¿Se puede cancelar un CFDI después de la ventana de 3 días?
Por el flujo estándar del Portal SAT, no. Si el receptor ya «aceptó» el CFDI (de forma expresa o por timeout), la cancelación requiere aceptación del receptor por intercambio formal. En la práctica la mayoría de los PAC bloquean la cancelación tardía y se vuelve un trámite jurídico.
¿Habrá un CFDI 5.0?
Por el roadmap público del SAT, no. La reforma 2026 apunta al enforcement del CFDI 4.0 existente, no a un formato nuevo. CFDI 5.0 no ha sido anunciado y no aparece en consultas públicas ni en draft.
¿La materialidad debe acreditarse con documento físico o basta el digital?
Vale el digital: contrato firmado electrónicamente, OC en PDF, foto de remisión, email del cliente con la solicitud. Lo que el SAT exige es que el documento sea verificable, fechado y razonablemente difícil de fabricar a posteriori. Un attachment dentro de Odoo, con timestamp del sistema y trazabilidad de quién lo subió y cuándo, es defendible.
