Jesús Garza

Desarrollador Odoo · Monterrey, MX

Jesús Garza.

Hago que Odoo hable con el SAT.

Diseño y construyo módulos para la localización mexicana: CFDI 4.0 y sus complementos, nómina e IMSS, tesorería y conciliación bancaria, EDI e integraciones. En el último año entregué 91 módulos a 22 empresas.

Disponible para proyectos · respuesta en español o inglés

módulos entregados
91
empresas
22
líneas de Python
52,201
pruebas automatizadas
265
ya en Odoo 19
38

§ 01 Un año en números

Noventa y un módulos. Veintidós empresas. Doce meses.

Desde octubre de 2025 escribo el software que sostiene la operación de empresas mexicanas sobre Odoo 17, 18 y 19: lo que tiene que cuadrar con el SAT, pagarse a tiempo y timbrarse sin errores.

A-0091

91

módulos entregados

De octubre de 2025 a septiembre de 2026, verificados uno por uno en el historial de git.

A-0022

22

empresas en México

De uno a dieciocho módulos por empresa, en contabilidad, nómina, almacén y ventas.

A-2201

52,201

líneas de Python

78,925 contando vistas XML, OWL y estilos. Código propio, sin contar módulos de terceros.

A-0265

265

pruebas automatizadas

217 solo en Tesorería: matriz de conciliación, invariantes contables y paridad con el comportamiento nativo.

A-0038

38

módulos en Odoo 19

Además de 23 en Odoo 18 y 30 en Odoo 17, incluidas funciones que Odoo 19 eliminó y había que devolver.

A-0010

10

bancos mexicanos integrados

Banorte, BBVA, Santander, BanBajío, Banregio, Inbursa, Afirme, Bancrea, Banco Base y STP.

Ritmo de entrega

Módulos nuevos por mes y acumulado

nuevos en el mes acumulado

Empresas que usan mi código

Número de módulos entregados a cada una.

    § 02 Casos explicados

    Cómo funciona, en menos de un minuto.

    Siete problemas reales, animados paso a paso con los datos y las reglas de cada módulo. Dale play, salta entre capítulos o deja que corran solos.

    01Tesorería · Odoo 19 · FGH, Ikigai, MACSA, Mager

    Diez bancos, una sola verdad.

    Cada banco exporta un formato distinto, muchos depósitos llegan sin nombre y conciliar contra facturas a mano no escala.

    • Parsers para 10 bancos con detección por nombre de archivo y reimportación sin duplicados.
    • Contraparte por CLABE, cuenta, RFC o nombre; si no aparece, extracción con IA (Gemini) con JSON validado y umbral de confianza.
    • Conciliación automática por suma de subconjuntos con poda: una combinación exacta concilia; varias se marcan como ambiguas para revisión humana.
    • Tolerancias de faltante y excedente por empresa, complemento de pago automático y proyección de flujo a 30 días.
    líneas
    14,729
    pruebas
    217
    bancos
    10

    02Integraciones · Odoo 19 · Ikigai → SAP

    Odoo avisa. El X12 viaja solo.

    Cada entrada y salida de almacén tenía que llegar a SAP como EDI X12 por AS2, sin cargarle a Odoo el protocolo y sin duplicar un solo documento.

    • Al validar un albarán se registra un aviso con llave idempotente modelo:id:documento:ready y restricción única.
    • Webhook edi.ready con token en el header; 202 y 200 cuentan como acuse.
    • El middleware consulta Odoo, arma el X12 944, 945, 947 o 852 y lo envía por AS2; Odoo guarda request, response y MDN.
    • Reintento por cron con la misma llave; los 400 y 401 no se reintentan porque requieren corrección.
    líneas
    1,296
    documentos X12
    4
    duplicados
    0

    03Facturación electrónica · CFDI 4.0 · Odoo 18 y 19

    El XML que el SAT sí acepta.

    Cada complemento del SAT llega con reglas nuevas, y un solo centavo mal redondeado basta para que el PAC rechace el timbrado.

    • Complemento de Hidrocarburos y Petrolíferos: nodo HidroYPetro por concepto, obligatorio desde el 24 de abril de 2026, con validación de permiso CNE (CCHYP107) y SubProducto (CCHYP110).
    • Leyendas fiscales para transferencias virtuales entre empresas IMMEX.
    • El 15 de septiembre de 2026 el PAC empezó a rechazar complementos de pago (CRP20268 y CRP20274). Tres días después, el módulo recalculaba BaseDR, ImporteDR y totales con los decimales de la moneda.
    • Guardas contra el timbrado accidental a XAXX010101000 cuando al cliente le falta RFC o código postal.
    módulos CFDI
    8
    días de respuesta
    3
    reglas SAT
    CCHYP

    04Nómina · IMSS y SUA · Odoo 18 y 19

    Cuotas obrero-patronales, día por día.

    Las cuotas del IMSS se calculaban fuera de Odoo y se recapturaban en el SUA: diferencias cada mes, retrabajo cada bimestre.

    • Cálculo por día con la UMA vigente, SBC topado a 25 UMA y excedente sobre 3 UMA, dividido en tramos cuando cambia el salario.
    • Cesantía y vejez patronal con la tasa que corresponde al rango del salario, desde la tabla de parámetros vigente.
    • Archivos de ancho fijo para IDSE y SUA, validando NSS, CURP y registro patronal antes de exportar.
    • Confronta contra la cédula del IMSS y contra FONACOT que marca cada diferencia por trabajador.
    líneas
    10,839
    conceptos de cuota
    13
    archivos IMSS
    IDSE·SUA

    05Nómina · PTU · Odoo 18 · Avalia

    Una persona, tres empresas, un solo reparto.

    En un grupo con varias razones sociales la misma persona aparece con registros distintos, y la PTU terminaba duplicada o partida.

    • Union-find con compresión de caminos: dos registros son la misma persona si comparten CURP, RFC o NSS, aunque sea de forma indirecta.
    • 50 % por días trabajados y 50 % por salario devengado con tope anual.
    • Ajuste de centavos al mayor reparto con salvaguarda: si la diferencia no es de redondeo, el cálculo se detiene antes de pagar.
    • Importador desde Excel, envío directo a nómina y PDF por empleado.
    líneas
    2,717
    reparto
    50/50
    identificadores
    3

    06Contabilidad · Tipo de cambio · Odoo 18

    El tipo de cambio, con la fecha correcta.

    Odoo registraba el FIX de Banxico con la fecha de aplicación y el DOF lo publica con la del día anterior. Un día de desfase basta para descuadrar CFDI y contabilidad.

    07Clientes · Direcciones · Odoo 17

    Direcciones que sí existen.

    Códigos postales de un estado con colonias de otro y ciudades con errores de dedo: direcciones que después rompen la facturación y las entregas.

    § 03 Estado de cuenta

    Todo lo que he entregado, movimiento por movimiento.

    Cada renglón es un módulo real con su fecha de alta, cliente, versión de Odoo y líneas de código. Filtra por área o versión, o busca por nombre.

    Estado de cuenta de módulos

    Banco de código · Monterrey, N.L.

    Titular
    Jesús Gerardo Garza García
    Periodo
    01 OCT 2025 — 26 SEP 2026
    Cuenta
    0091 · 0022 · 52201
    Saldo inicial
    0
    Altas del periodo
    +91
    Líneas de código
    78,925
    Pruebas
    265
    Saldo final
    91 módulos
    Fecha Concepto Cliente Ver. Líneas

    91 / 91

    Solo módulos donde soy autor principal. No incluye módulos de terceros ni mis aportaciones a módulos de otros autores.

    § 04 Perfil

    Ciencias computacionales de formación. Odoo de oficio.

    Ago 2025 — hoy

    Consultor técnico y desarrollador Odoo

    Integra Informática Administrativa · Monterrey

    • 91 módulos para 22 empresas en Odoo 17, 18 y 19: contabilidad, CFDI, nómina e IMSS, tesorería, inventario, ventas e integraciones.
    • Localización mexicana de punta a punta: CFDI 4.0 y complementos, DIOT, XML del SAT, Banxico y DOF, pedimentos, IMSS, INFONAVIT, FONACOT, SUA y PTU.
    • Integraciones con webhooks idempotentes, API REST y XML-RPC, EDI X12 por AS2 e IA (Google Gemini) con salida validada.
    • Migraciones a Odoo 19 y módulos que devuelven funciones que la versión eliminó.

    Ene — Jun 2025

    Programador full stack

    Biblioteca FCFM · Universidad Autónoma de Nuevo León

    • Tres sistemas en producción: préstamos, control de asistencia e inventario bibliográfico.
    • Flask, SQL Server y SQLite, autenticación con bcrypt, tableros con Chart.js y reportes PDF y Excel.
    • Aplicación de escritorio con escaneo de códigos de barras, empaquetada con PyInstaller.

    Lo que escribo, medido en líneas

    78,925

      Odoo

      ORM · OWL · QWeb · l10n_mx_edi · hr_payroll · account · stock · mail · ir.cron

      Backend y datos

      Python · PostgreSQL · SQL · xlsxwriter · openpyxl · requests · Flask · Pandas

      Integración

      REST · webhooks · XML-RPC · EDI X12 · AS2 · Banxico SIE · Google Gemini

      Operación

      Odoo.sh · Linux · Red Hat · Docker · Git · Ansible · JavaScript

      Demostró ser un elemento muy valioso por su gran responsabilidad y atención al detalle. Su iniciativa y compromiso superaron las expectativas, logrando mejoras significativas en los procesos internos de nuestra Biblioteca.
      Dra. Aleida Magdalena Gil González Subdirectora de Calidad e Innovación Educativa · FCFM, UANL

      § 05 Contacto

      ¿Tu Odoo tiene que cumplir con algo?

      Módulos nuevos, migraciones a Odoo 19, complementos que el PAC rechaza o una nómina que no cuadra con el IMSS. Cuéntame qué necesitas.

      Solicitud de propuesta

      Serie P · Folio 0001

      Receptor Jesús Garza

      Enviar con Ctrl+Enter