AGPL-3 · validada por años en producción · 232 pruebas · en curso en la OCA

Nómina CLT brasileña en Odoo —
validada en producción, ahora open source.

El cálculo CLT (INSS, IRRF, FGTS, 13º, vacaciones, rescisión) corrió años en producción en órgano público brasileño. Ahora migrado a Odoo 16 y donado a la OCA, sin licencia por colaborador y sin MDR sobre nómina.

Cuando el leiaute eSocial cambia, el fix entra al GitHub OCA en días. Ustedes no esperan el roadmap cerrado de un vendor.

De dónde viene el código

KMEE construyó el módulo de nómina CLT para ABGF (Agência Brasileira Gestora de Fundos), órgano público federal cliente de KMEE. El sistema corrió en Odoo 8.0 en producción emitiendo holerites mensuales por años: cálculo de INSS progresivo, IRRF, FGTS, salário-família, 13º (1ª y 2ª cuotas), vacaciones con art.130, rescisiones con rubros legales, 22 tipos de afastamento CLT, reembolso vía nómina, sindicatos.

Ahora estamos modernizando ese mismo código para Odoo 16 y donándolo a la OCA. El PR #277 de kmee-odoo-addons incorpora 2.257 commits de esa historia vía git merge --strategy=ours, preservando la trazabilidad. Todo el código fue reescrito para la API de Odoo 16, con 232 pruebas automatizadas y specs BDD en archivos .feature. El destino final es el repositorio OCA/l10n-brazil.

Resultado: cálculo CLT de autoría KMEE, validado por años de producción real en órgano público, ahora en código abierto, sin cobro por colaborador. Toda la comunidad Odoo brasileña gana.

Qué viene adentro

Nómina CLT completa, eSocial transmitiendo, código auditable.

Cálculo CLT validado en producción

INSS progresivo, IRRF progresivo, FGTS, salário-família, DSR, faltas, 13º (1ª y 2ª cuotas), vacaciones CLT art.130, rescisión por rubros configurables. Años de holerite real emitido en ABGF.

Decimal ROUND_HALF_UP documentado

414 líneas de pruebas garantizando redondeo correcto. Corrige el bug clásico de banker's rounding del `round()` de Python. Diferenciación técnica rarísima de ver explicitada.

Specs BDD en archivos .feature

Cálculos auditables en lenguaje natural (Gherkin). Su contador puede leerlos. Cada escenario (admisión, vacaciones, rescisión, 13º) tiene caso de prueba reproducible.

eSocial transmitiendo vía certificado A1

Generación de XML vía librería `esociallib`, firma ICP-Brasil A1 (PFX), transmisión directa al ambiente nacional. Lote ≤ 50 eventos (regla del gobierno), clasificación automática por grupo.

Recursos del trabajador completos

22 tipos de afastamento CLT, reembolso vía nómina (`hr.expense → payslip`), substitución CLT art.450, sindicatos (CCT/ACT), tablas oficiales pobladas (CID 14k líneas, proceso FAP 7k líneas).

AGPL-3 — sin licencia por colaborador

Sin cobro por contracheque emitido. Sin MDR sobre nómina. Ustedes corren en su infra, auditan el cálculo, contribuyen de vuelta a la OCA. Senior/TOTVS/ADP/Domínio cobran por colaborador activo.

Cobertura eSocial — leiaute S-1.3

Honestidad total: lo que está migrado a 16.0 hoy, y lo que está en sprint de migración.

Migrado a Odoo 16

8 eventos cubiertos hoy, validados en producción:

  • S-1000 Empleador ✓ migrado
  • S-1010 Rúbrica ✓ migrado
  • S-1020 Lotación Tributaria ✓ migrado
  • S-1200 Remuneración RGPS (mensual) ✓ migrado
  • S-2200 Admisión / Registro inicial ✓ migrado
  • S-2206 Alteración contractual ✓ migrado
  • S-2230 Afastamento ✓ migrado
  • S-2299 Desvinculación ✓ migrado

En migración a Odoo 16

12 eventos con código legado de ABGF aguardando port a 16.0:

  • S-1005 Establecimientos
  • S-1070 Tabla de procesos
  • S-1210 Pagos
  • S-1299 Cierre de competencia
  • S-2205 Alteración de datos de registro
  • S-2210 CAT (Comunicación de Accidente)
  • S-2220 ASO (Atestado Salud Ocupacional)
  • S-2240 Agentes nocivos
  • S-2298 Reintegración
  • S-2300 Trabajador sin vínculo
  • S-3000 Exclusión de evento
  • S-5001/5002/5003/5011 Totalizadores

Sponsorship aceptado: si un evento es crítico para su operación, podemos priorizar el port — el código vuelve a la OCA.

Comparativo con nóminas propietarias

Senior HCM, TOTVS RM Folha, Domínio/Onvio — 10 criterios técnicos y comerciales.

Criterio Senior HCM TOTVS RM Folha Domínio/Onvio Odoo + OCA (KMEE)
Modelo de licencia Por colaborador Licencia + mantenimiento Por colaborador Sin licencia, sin por colaborador
Acceso al código Closed (SDK Senior X) Closed ADVPL Closed AGPL-3 — fork, audit, modifique
Vendor lock-in Alto Alto Medio Cero
BDD .feature files No No No
ROUND_HALF_UP testeado No documentado No documentado No documentado 414 líneas pruebas
Eventos eSocial cubiertos Completo Completo Completo 8 migrados + restante en port
Portal del empleado Kit listo Kit listo Kit listo Roadmap
Integración nativa NF-e/SPED Vía ETL Nativa Vía export Misma base Odoo
Velocidad adaptación leiaute Roadmap interno Roadmap interno Roadmap interno Commit GitHub en días
Validación en producción real Cientos de clientes Miles de clientes Miles de oficinas ABGF (años en Odoo 8.0)

No atacamos competidores. Presentamos la alternativa open source que faltaba en el mercado brasileño de nómina.

Preguntas frecuentes

Las dudas que más recibimos sobre nómina + eSocial en Odoo.

¿La nómina de Odoo+KMEE es beta?

No. KMEE construyó el módulo de nómina CLT para ABGF (Agência Brasileira Gestora de Fundos), cliente de KMEE — el sistema corrió en producción sobre Odoo 8.0 por años emitiendo holerites mensuales. El PR actual trae ese mismo código de autoría KMEE migrado a Odoo 16 y donado a la OCA. El badge 'Beta' en el manifest refleja el ciclo de migración + revisión OCA, no inmadurez del método.

¿Qué eventos eSocial están cubiertos en la migración a Odoo 16 hoy?

8 eventos: S-1000 (empleador), S-1010 (rúbrica), S-1020 (lotación tributaria), S-1200 (remuneración mensual), S-2200 (admisión), S-2206 (alteración contractual), S-2230 (afastamento), S-2299 (desvinculación). Los demás (S-1005, S-1070, S-1210, S-1299, S-2205, SST, S-3000, totalizadores) están en migración — el código legado de ABGF existe, es trabajo de port para 16.0.

¿Cubre Reinf?

No directamente en este stack. Reinf vive en otro stack OCA (`l10n_br_reinf`) en paralelo, complementario. Para empresas que necesitan R-2010, R-2030, R-2040 (Reinf-persona-jurídica), trabajamos la integración separada.

¿Cubre DCTFWeb?

Hoy no automatiza. Depende del cierre periódico (S-1299) + totalizadores (S-5001/5002/5003/5011) + integración con Reinf. Esos componentes están en la cola de migración.

¿Es AGPL-3 en serio?

Sí. El código está en github.com/kmee/kmee-odoo-addons (incubadora) y en github.com/OCA/l10n-brazil (destino final). Pueden correrlo, modificarlo, contribuir. Sin cobro por colaborador, sin MDR sobre nómina.

¿Quién lo usa hoy?

ABGF (órgano público federal) lo usa en producción sobre Odoo 8.0 desde hace años. Nuevos clientes empiezan a adoptarlo a medida que la versión 16.0 estabiliza. Si su empresa necesita un evento aún en migración, KMEE puede priorizar el port con alcance pago.

¿En qué versión de Odoo funciona?

La versión modernizada del PR actual es Odoo 16 + OCA l10n-brazil 16.0. ABGF corre Odoo 8.0 en producción. Las versiones 17 y 18 de la OCA aún no recibieron el stack completo de account/sale/purchase brasileños, así que la nómina en 17/18 queda para después.

¿Cómo firma los XMLs eSocial?

ICP-Brasil A1 (PFX), reusando el módulo `l10n_br_fiscal_certificate` de la OCA. El mismo certificado A1 que firma NF-e/CT-e/MDF-e firma los eventos eSocial. Vault externo opcional (HashiCorp, AWS, Azure, GCP).

¿Cómo transmite los eventos?

Directo al ambiente nacional del eSocial (homologación `tp_amb=2` o producción `tp_amb=1`). La librería `esociallib` hace parsing, validación XSD y SOAP. Lote ≤ 50 eventos (regla del gobierno), clasificación automática por grupo (1=tablas, 2=no-periódicos, 3=periódicos).

¿Y si la transmisión falla?

El modelo `l10n_br.esocial.ocorrencia` registra errores por evento. La máquina de estados permite reenvío: `draft → validated → pending → sent → success | error | rectified`. En caso de retorno de error del gobierno, el evento vuelve para corrección sin bloquear el lote entero.

¿Tiene portal del empleado?

Hoy no nativo. Roadmap. Si su empresa necesita portal/holerite digital con QR Code, podemos discutir desarrollo bajo alcance.

¿Tiene control de asistencia integrado?

Solo `hr.attendance` core de Odoo. Integraciones con reloj de asistencia físico o app vía roadmap.

¿Quién revisó los cálculos?

Años de uso real en ABGF + 232 pruebas automatizadas + specs BDD en `.feature` + revisión de la comunidad OCA cuando el PR mergeé. Es cálculo que pagó contracheque real por años.

¿Cuánto cuesta?

Sin licencia por colaborador. Ustedes pagan implementación (alcance definido tras diagnóstico de adopción) y soporte mensual continuo. Si un evento aún en migración es crítico para su operación, podemos priorizar el port con alcance pago — ese trabajo beneficia a toda la comunidad OCA.

¿Puedo patrocinar la migración de un evento o feature?

Sí. El sponsorship es camino común en proyectos OCA. ¿Su empresa necesita S-1299 cerrando competencia mañana? Podemos priorizar con ustedes. El código vuelve a la OCA — todo el ecosistema brasileño gana.

Diagnóstico de adopción gratuito

En 30 minutos mapeamos su escenario (volumen, eventos eSocial necesarios, ERP actual, equipo de RH) y salimos con un plan realista de adopción o recomendación de mantener el sistema actual.

Cuéntenos sobre su nómina

Cuántos colaboradores, sistema actual de nómina, eventos eSocial críticos, plazo. Respondemos en hasta 1 día hábil.

Sin spam, sin venta de listas. LGPD-compliant. Política de Privacidad.