Resumen rápido (1 minuto)
Desde el 1 de enero de 2026 el SRI eliminó la ventana de 4 días hábiles para autorizar comprobantes electrónicos: cada factura debe transmitirse en el momento de la emisión. Cualquier Odoo que no haya migrado a tiempo bloquea caja o genera autorizaciones rotas con multas de hasta USD 4 250 por caso.
«sri real time test» no es marketing. Es la operación que se ejecuta en el ambiente de pruebas del SRI (celcer.sri.gob.ec) antes de cada release y cada cambio de certificado. Y es justo lo que 7 de cada 10 PYMES ecuatorianas omiten: el código sale directo a producción, llega una autorización negativa al cliente, el secuencial se rompe y en febrero suena el teléfono del contralor.
Este checklist son 12 verificaciones puntuales de Odoo contra los requisitos del SRI real time 2026. Reproducibles: cada una indica el bloque XML, el estado esperado, el código de error típico y el lugar exacto de Odoo donde se rompe. Aplica a todas las versiones con l10n_ec_edi: Odoo 16, 17, 18 — tanto Community (vía OCA) como Enterprise.
- SRI real time = transmisión del comprobante en < 60 segundos tras la emisión. La ventana antigua de 4 días hábiles quedó eliminada por la Resolución 14/2025 con reforma 17/2025.
- Anulación de factura — solo hasta el día 7 del mes siguiente. Después: nota de crédito.
- Notas de crédito y débito requieren confirmación del receptor en 5 días hábiles. Silencio = rechazo, se pierde la deducibilidad.
- El test en Odoo se corre en el ambiente de pruebas (
celcer.sri.gob.ec), con<ambiente>1</ambiente>. Nunca en producción. - Top 3 puntos de falla:
.p12vencido, desincronización de secuenciales, cron batch en lugar de hook real-time.
Qué cambió el 1 de enero de 2026
Hasta finales de 2025 el emisor podía acumular cola y enviar al SRI hasta 4 días hábiles después: la autorización se emitía retroactivamente. Desde el 1 de enero de 2026 ese esquema murió. Primicias confirma que la Resolución 14/2025 con reforma 17/2025 obliga a cuatro cambios:
- Transmisión inmediata. El comprobante debe llegar al SRI «en el momento de la emisión». En la práctica del contralor: ventana ≤ 60 segundos. El ATS (Anexo Transaccional Simplificado) desde 2026 se arma con datos real-time y cualquier retraso queda registrado en la tabla interinstitucional.
- Anulación hasta el día 7 del mes siguiente. Una factura del 23 de enero se anula solo hasta el 7 de febrero. Después: nota de crédito con confirmación del receptor (HLB Ecuador detalla el procedimiento).
- Confirmación de notas (5 días hábiles). Las notas de crédito y débito desde 2026 exigen que el receptor entre al portal del SRI y acepte o rechace. 5 días hábiles de silencio = rechazo, el documento no aplica, se pierde el crédito tributario.
- Modo contingencia limitado. Antes se podía «salir offline» y ponerse al día por lotes. Ahora la contingencia solo se activa con indisponibilidad confirmada del webservice (
estado.sri.gob.eclo registra). Modo artificial = multa.
Dónde golpea esto a Odoo
l10n_ec_edi (Enterprise y la build OCA) maneja real-time desde la versión 16.0+. Pero tres casos se rompen: validadores XML personalizados generan desincronización de la clave de acceso (error 35/43); los .p12 antiguos del BCE con vigencia de dos años caducan en silencio — real-time devuelve 401; el cron estándar cada 10 minutos técnicamente queda fuera de real-time. Los tres se atrapan en pruebas antes de producción. Por eso el sri real time test es un seguro más barato que un mes de multas.
12 puntos del SRI real time test para Odoo
Ejecútalo en orden. Cada verificación es independiente — puedes detenerte después del punto 4 y volver más tarde sin reiniciar el estado.
#1. Ambiente de pruebas activado
Dónde: Configuración → Compañías → Ecuador → Ambiente SRI = «Pruebas (1)».
Verificación XML: <ambiente>1</ambiente>. El webservice apunta a celcer.sri.gob.ec, no a cel.sri.gob.ec.
Error típico: un módulo personalizado tiene hardcoded la URL de producción en alguna rama.
#2. Firma digital.p12 vigente
Vigencia: ≥ hoy + 30 días.
Comando: openssl pkcs12 -in cert.p12 -nokeys -clcerts | openssl x509 -noout -dates.
Issuer: BCE, Security Data, ANF AC o Uanataca — otros son rechazados por el SRI.
Error típico: el contenedor Odoo no tiene permiso de lectura del archivo; la ruta al certificado quedó hardcoded en un módulo actualizado.
#3. Clave de acceso de 49 dígitos y módulo 11 OK
Fórmula: fecha(8) + tipoComp(2) + RUC(13) + ambiente(1) + serie(6) + secuencial(9) + codNum(8) + tipoEmision(1) + díg.verif(1) = 49.
Test: emite 3 facturas seguidas → el secuencial avanza +1, el codNum es aleatorio y el dígito verificador pasa el módulo 11.
Error típico: journal.sequence sin padding=9 devuelve un secuencial de 8 cifras — el SRI responde con error 43.
#4. RUC y razón social coinciden con el registro del SRI
RUC de 13 dígitos, termina en 001. Razón social: letra por letra como en srienlinea.sri.gob.ec/.../ConsultaRuc. Un espacio extra o una minúscula en lugar de mayúscula → el SRI descarta como «no coincide datos contribuyente».
#5. El webservice de recepción responde RECIBIDA en ≤ 5 segundos
POST manual a RecepcionComprobantesOffline. Si el timeout pasa de 30 segundos caíste en el pico del SRI de 9:00–11:00 UTC-5. Solución: retry exponential backoff (1/2/4/8 s).
#6. Autorización devuelve AUTORIZADO
Entre 1 y 3 segundos después llamas AutorizacionComprobantesOffline con la misma clave. Un EN PROCESO intermedio es aceptable — repite a los 3 s. Error: NO AUTORIZADO con error 70 = la recepción aún no registró. Se resuelve con retry, no con pánico.
#7. PDF (RIDE) y XML firmado quedan guardados en Odoo
En account.move deben estar ambos adjuntos: XML firmado + RIDE PDF. El numeroAutorizacion coincide en los dos. Enterprise lo guarda automáticamente; la build OCA a veces deja solo el XML — el RIDE se genera on-the-fly.
#8. El correo al receptor se envía con XML + PDF
La plantilla l10n_ec_edi.email_template_edi_invoice se ejecuta y ambos adjuntos llegan. Error: el límite outbound de SMTP de 10 MB corta los envíos batch de varios lotes de la misma campaña.
#9. La anulación hasta el día 7 funciona, después se bloquea
Emite el día 1, anula el día 5 → aceptado. Después del día 7 Odoo debe bloquear el botón Anular y proponer «Nota de Crédito». OCA Community no cubre la regla de 7 días de fábrica — necesitas un parche o la extensión OCA l10n_ec_anulacion_window (si está disponible en tu versión).
#10. Nota de Crédito con confirmación del receptor (5 días)
La NC sale al receptor, el SRI devuelve PENDIENTE_CONFIRMACION; pasados 5 días hábiles sin respuesta = RECHAZADA. Error: el contador ve «AUTORIZADO» como estado final y cierra el libro — pero tributariamente el documento no vale. El campo estado_confirmacion se chequea aparte.
#11. La contingencia solo se activa con webservice caído
Con HTTP 500 del SRI ≥ 3 veces seguidas en 10 minutos → tipoEmision=2 (offline). El RIDE se genera con esa bandera y al restablecerse el servicio (≤ 24 h) los comprobantes se envían por lote. Obligatorio: screenshot de estado.sri.gob.ec como evidencia para el contralor.
#12. El ATS cuadra con el journal de autorizaciones
A fin de mes ATS = suma de todos los comprobantes AUTORIZADO del período. Reportes → Ecuador → ATS Mensual → exportar a.txt → número de líneas = número de AUTORIZADO en l10n_ec.authorization. Diferencia → el SRI pide aclaración en 15 días.
<ambiente>1</ambiente> en el XML emitido y celcer en la URL del webservice.Cuándo este checklist funciona — y cuándo no
Funciona completo si: Odoo 16/17/18 (Community con OCA o Enterprise) + l10n_ec_edi actualizado al release de ≥ enero 2026 + emites facturas, NC, ND y comprobantes de retención.
| Escenario | Cobertura | Qué falta |
|---|---|---|
| Odoo 18 Enterprise + l10n_ec_edi 18.0+ | 12 / 12 | nada — caso ideal |
| Odoo 17 Community + OCA l10n_ec_edi 17.0 | 12 / 12 | verificar que el commit es de ≥ diciembre 2025 |
| Odoo 16 + OCA 16.0 | 10 / 12 | puntos 9 y 10 requieren parche manual |
| Odoo 15 o menor | 8 / 12 | real-time fue backport parcial — migrar o parchar |
| Generador XML propio (módulo custom) | 9 / 12 | puntos 3, 5, 6 se rompen hasta migrar a XSD 2.1.0 |
| PSP de terceros (Datil, FactuPlus, Voucher) | n/a | las 12 verificaciones aplican al PSP, no a l10n_ec |
No funciona (necesita playbook aparte):
- Guía de remisión electrónica (GRE) — estructura XML aparte con ruta y transportista. Se usa
l10n_ec_guia_remision(OCA, en beta). Mismas reglas de real-time, schema distinto. - Liquidación de compra (compra a persona natural sin RUC) —
l10n_ec_edicubre lo básico, RIDE y firma difieren. Checklist aparte de 8 puntos. - Comprobantes de exportación — integración con SENAE vía ECUAPASS, no es la ruta estándar real-time.
Si el negocio cae en «parcial» o «no funciona» — cierra primero los 12 puntos del flujo principal (facturas + notas), después un sprint aparte.
5 errores que queman dinero en 2026
#1. Tests en producción
El equipo quiere «probar como en la vida real», cambia ambiente=2 y manda una factura «de prueba». El SRI la acepta sobre un contribuyente real. Ingreso fantasma en la declaración, el receptor recibe una factura que no existió. Anular — solo hasta el día 7 del mes siguiente. Multa de hasta USD 1 130 por caso. Fix: base de Odoo separada con RUC de prueba y ambiente=1 hardcoded en la config.
#2..p12 de producción en ambiente de pruebas
Copian el certificado productivo a pruebas. El SRI lo acepta, pero en el siguiente sync con el SRI real → desincronización de la clave de acceso, la próxima factura no pasa. Fix: .p12 separado para el RUC de pruebas, contraseñas distintas, almacenamiento aparte.
#3. Cron cada 10 minutos en lugar de hook tras validar
El l10n_ec_edi OCA 16 estándar tenía _cron_process_documents cada 10 minutos. En 2024–2025 funcionaba. En 2026 viola real-time. El contralor compara timestamp de emisión vs autorización; diferencia > 60 segundos = marca roja. Fix: override de account.move._post() que llama al SRI inline. Dejar el cron solo como retry para los estados FAILED.
#4. Ignorar PENDIENTE_CONFIRMACION en NC
Las NC desde 2026 no se finalizan automáticamente al AUTORIZADO. El receptor tiene 5 días hábiles. El contador ve «AUTORIZADO» y cierra el libro — el receptor a los 4 días rechaza — se pierde el crédito tributario. Multa USD 420–1 130 por caso. Fix: campo estado_confirmacion en account.move, dashboard de NC pendientes, recordatorio por correo en el día 3.
#5. Envío por lotes en el cron de medianoche
Equipos configuran un cron a las 23:55 «para que en el día se vaya». Entre la emisión a las 9:00 de la mañana y el envío de las 23:55 hay 15 horas. Real-time violado, ATS no cuadra. La explicación «retraso técnico» se acepta una vez. Fix: eliminar todos los cron batch de l10n_ec, dejar solo triggers real-time + cola de retry para fallos transitorios.
«Pensamos que el cron estaba bien porque toda la vida funcionó. El primer lunes de enero salieron 87 facturas a las 9 de la mañana y todas quedaron en cola hasta las 11. El SRI nos llamó al día siguiente.»
Caso: distribuidor de electrónica, Guayaquil, 80 fac/día
Distribuidor regional de electrónica en Guayaquil, 35 empleados, facturación ~USD 4M/año, Odoo 17 Community + l10n_ec_edi de OCA. En diciembre de 2025 activaron producción con el nuevo régimen real-time del SRI. Al 7 de enero la primera semana se dedicó a apagar incendios: de 480 facturas, 113 (23.5%) terminaron en cola con error 70, 38 (8%) en timeout, los cajeros empezaron a emitir a mano en papel.
Error número uno: el cron estándar every 10 minutes. El SRI no alcanzaba a registrar la clave de acceso antes de que el llamado a AutorizacionComprobantesOffline la pidiera. Error 70 («clave acceso no encontrada»), la cola crecía. El sri real time test en pruebas no se hizo — «total, funcionó todo 2025».
Qué hicieron (3 días): corrieron el checklist de 12 puntos en un ambiente duplicado con RUC de prueba → pasaron solo 4 de 12. Reescribieron account.move._post() inline. Sumaron retry con backoff (1/2/4 s). Cambiaron el padding del secuencial de 8 a 9. Reemitieron las 151 facturas fallidas vía nota de crédito + nuevo secuencial.
Resultado a 30 días: tasa de autorización 99.4% (antes 76%); latencia promedio emisión → AUTORIZADO 1.8 segundos (antes 23 minutos); ATS de marzo de 2026 cuadró con el journal de autorizaciones sin diferencias (antes 8–12%). Ahorro: ~USD 9 000 en multas y aclaraciones + 32 horas mensuales de contabilidad. Inversión: 16 horas de un desarrollador. ROI: la primera semana.
Descargar el checklist completo y plantillas XML
Las 12 verificaciones de arriba son la parte pública. La versión PDF completa (28 páginas) trae plantillas XML listas (factura, NC, ND, retención), la lista completa de códigos de error del SRI con traducción y causa, el árbol de decisión «AUTORIZADO vs PENDIENTE vs DEVUELTA», un script Python para validar claves de acceso en bloque por módulo 11, 4 archivos de configuración de Odoo para pruebas y producción, y una plantilla de cron schedule para la cola de retry.
Dejá tu correo — te lo enviamos dentro de la hora. Gratis, sin suscripción a newsletter.
¿12 puntos pasaron a la primera? Felicitaciones, tu Odoo está en forma productiva. Programá el monitoreo del cron, reconciliación ATS diaria y el .p12 en el calendario con alerta 60 días antes del vencimiento.
¿3–7 puntos rotos? Es lo normal en una instalación OCA base. 16–24 horas de parches y volvés a correr el test.
¿8+ puntos no pasan? Hace falta auditoría externa. Empezá por el diagnóstico (Auditoría Odoo) — 30 minutos de conversación + análisis de una muestra de XML + decisión: rescate vs migración.
Materiales relacionados: Odoo en Ecuador · SRI Real-Time hub · Implementación Odoo · Rescate de proyecto Odoo · SUNAT Perú 2026 · DIAN Colombia · SIFEN Paraguay · DGI CFE Uruguay 25.1.
Preguntas frecuentes
¿Cuándo exactamente empieza el real-time del SRI en Ecuador?
Desde las 00:00 del 1 de enero de 2026 para todos los contribuyentes de categorías ordinarias y especiales. Las microempresas tienen período de transición hasta el 1 de julio de 2026.
¿Cuánto es la multa por violar real-time?
USD 1 130 — caso simple (incumplimiento aislado). USD 4 250 — multa máxima (sistemática). Aparte: pérdida de deducibilidad del lado del receptor, que en cuentas anuales suele pesar más que la multa misma.
¿Puedo testear en pruebas con mi RUC real?
Técnicamente sí, el SRI lo permite, pero mezcla data de prueba con documentos reales en un mismo espacio de nombres. Se recomienda solicitar un RUC de prueba vía formulario en SRI online — tarda 5 días hábiles.
¿Qué pasa si el webservice del SRI está caído?
Se activa el modo contingencia: tipoEmision=2. El documento se emite con la misma clave de acceso pero sin autorización online. Restablecido el servicio (≤ 24 h) se mandan por lote vía RecepcionComprobantesOffline. El screenshot de estado.sri.gob.ec es prueba obligatoria para el contralor.
¿Qué partners Gold de Odoo en Ecuador soportan real-time de fábrica?
TRESCLOUD (Quito, Guayaquil, Cuenca) y GAHEOS (Quito) — ambos actualizaron sus módulos para enero de 2026. Con un Silver o un freelance, revisá la fecha del último commit en su repo de l10n_ec_edi: no debe ser anterior a diciembre de 2025.
¿Se puede usar un PSP de terceros en lugar de l10n_ec_edi?
Sí: Datil, FactuPlus, Voucher, Documents Manager. En Odoo la integración va por webhook. Las 12 verificaciones del checklist aplican al PSP, no a l10n_ec_edi.
¿Sirve el mismo checklist para guías de remisión electrónicas (GRE)?
Solo parcialmente. Las reglas de real-time son las mismas, pero el schema XML y los campos obligatorios son distintos (ruta, transportista, placa del vehículo). El módulo l10n_ec_guia_remision de OCA está en beta. Recomendable: armar un checklist GRE de 8 puntos aparte después de cerrar el de facturas.
