8.6 KiB
Cruce de Cuentas GLM — República Dominicana (RD)
Objetivo
Dejar República Dominicana integrada al Portal de Cruce de Cuentas con una lógica reutilizable cada quincena, todos los meses y años, usando la misma arquitectura multi-país ya existente.
Configuración RD:
- Código:
RD - Moneda:
DOP - Locale:
es-DO - Zona horaria:
America/Santo_Domingo - RRHH destinataria de reportes: Noralmy Laureano —
nlaureano@gomezleemarketing.com - Bandera:
https://dbit.digitalcompass.agency/storage/v1/object/public/public-assets/Flag_of_the_Dominican_Republic.svg.webp
Archivos incluidos
n8n
Importar desde workflows_n8n/:
Portal de Verificación de Nómina - República Dominicana.jsonPortal de Verificación de Nómina República Dominicana - Históricos.jsonPortal de Verificación de Nómina República Dominicana - Envío de Reporte.jsonPortal de Verificación de Nómina - Analizar Nómina con Gemini GT TT PA SV HN PR RD.jsonPortal de Verificación de Nómina - Reportar corrección BambooHR a RRHH - GT TT PA SV HN PR RD.json
Los workflows se entregan inactivos para que puedan importarse/configurarse sin disparar una ejecución accidental. Los dos workflows compartidos (Gemini y correcciones BambooHR) sustituyen las versiones equivalentes sin RD una vez validados.
Supabase
Ejecutar:
SUPABASE_Republica_Dominicana_READY.sql
Este script habilita RD en las restricciones multi-país, accesos, alias BambooHR e históricos/RPC existentes. La tabla cruces_cuentas_gt_reportes conserva su nombre legado, pero funciona como tabla multi-país.
Webhooks RD
- Cruce principal:
/webhook/nominard-bamboo-test - Históricos:
/webhook/cruce-cuentas-rd-historicos - Marcar resuelto:
/webhook/cruce-cuentas-rd-marcar-resuelto - Analizar nómina con Gemini: webhook compartido
/webhook/cruce-cuentas-analizar-nomina - Reportar corrección BambooHR: webhook compartido
/webhook/cruce-cuentas-bamboo-correccion
La app ya contiene las variables VITE_N8N_REPUBLICA_DOMINICANA_WEBHOOK_URL, VITE_HISTORICOS_RD_URL y VITE_MARCAR_RESUELTO_RD_URL.
Entrada esperada cada quincena
Nómina
RD requiere exactamente un Excel de nómina (.xlsx, .xls o .xlsm) por período. El flujo valida que el archivo tenga filas de empleados cuyo campo PERÍODO corresponda al rango seleccionado en la app; si detecta empleados de otro período, se detiene para evitar cruzar una nómina equivocada.
Hojas operativas observadas y soportadas tras analizar las 16 nóminas de enero a agosto de 2026:
GLM RDWhirlpoolBiceP&GKRAFTMotorolaPMICaribeLatamPurinaClaroEssity
Se excluyen hojas auxiliares como Resumen, Validacion TSS, Validacion ISR, ISR, Calculo Horas extras, NVScriptsProperties, AutoCrat, copias auxiliares como Copia de Latam y hojas genéricas que no forman parte de la nómina operativa.
Campos utilizados: nombre, cuenta, NETO A PAGAR, PERÍODO y, cuando existen, cédula, referencia y correo.
Banco
Se aceptan uno o varios archivos CSV y/o PDF de la misma quincena. Esto es indispensable en RD porque una quincena puede incluir lotes normales, temporales, suplementos y ACH separados.
El parser CSV soporta los formatos observados en 2026 y nombres de archivos como:
- BICE
- CLARO
- GLM
- Kraft
- LATAM
- Motorola
- P&G
- PMI
- Purina
- Temp Purina
- Temp Moto
- Whirlpool
- Essity / Temp Essity
- Bono BICE / Bono BICE inactivos
También admite sufijos de lote como .1.csv y normaliza el texto N#U00f3minas que aparece en algunos nombres exportados.
Los PDF BHD se interpretan como ACH complementarios. El flujo extrae beneficiario, cuenta, fecha efectiva, monto, estado, motivo, número de instrucción y descripción. La fecha de cada CSV/PDF se valida contra el período seleccionado.
Reglas de conciliación RD
La lógica final está construida a partir de los cuatro reportes de entrenamiento de junio/julio 2026.
- Se normalizan cuentas eliminando formato visual/ceros iniciales solo para comparación; el valor visible se conserva cuando corresponde.
- La prioridad de match es cuenta + monto.
- Cuando nómina no trae cuenta, se permite match por nombre fuerte + monto, evitando forzar coincidencias ambiguas.
- Se usa tolerancia monetaria de RD$0.05 por transacción.
- Un pago rechazado se conserva como hallazgo y puede explicar una discrepancia Nómina > Banco.
- Antes de clasificar
Banco sin Nómina, se hace una segunda búsqueda para detectar una posible cuenta mal digitada usando nombre/referencia/correo + monto. - Los suplementos
Bono BICEse integran como pago esperado adicional para que formen parte del total de nómina de conciliación, igual que en el reporte patrón de 15-jun-2026. Banco sin Bambooes una revisión paralela y no se suma aPendientes cruce principal, tal como muestran los reportes oficiales de entrenamiento.- Las diferencias de nombre bancario se mantienen como
Pendiente revisión; no se fuerzan como identidad confirmada. - Diferencias agregadas insignificantes de centavos no generan una discrepancia si todas las transacciones individuales conciliaron dentro de tolerancia.
- Las transacciones bancarias duplicadas exactas entre dos archivos/lotes provocan error para evitar doble contabilización.
BambooHR
La consulta usa:
/api/v1/reports/custom?format=JSON&onlyCurrent=false
Esto permite validar también empleados históricos que pudieron participar en una quincena anterior. El filtro RD reconoce país/localización como RD, República Dominicana, Dominican Republic y variantes de localización dominicana.
El flujo usa Employee Number cuando está disponible y trabaja con alias de nombres. Las correcciones manuales confirmadas pueden persistirse en Supabase mediante el workflow compartido de correcciones.
Reporte de salida
El Google Sheet conserva siempre las seis pestañas patrón de RD:
01 Nómina vs Banco02 Banco sin Nómina03 Banco sin Bamboo04 Diferencias nombre banco05 Cuenta Mal Digitada06 Resumen
La pestaña 05 se crea incluso cuando no existen casos, para que el formato sea estable entre quincenas.
Las hojas se protegen para preservar datos calculados. La columna Resolución queda reservada para RRHH/administración autorizada; Noralmy Laureano está incluida entre las personas autorizadas para RD. El reporte también se comparte automáticamente con los accesos internos configurados.
Correo RD
El correo automático del reporte generado se envía a:
nlaureano@gomezleemarketing.com
Utiliza branding GLM, bandera RD y muestra los indicadores relevantes del cruce. El workflow de Marcar resuelto también está adaptado a RD y utiliza la zona horaria de Santo Domingo.
Históricos
Los históricos se guardan con country = RD y una identidad de período del tipo:
RD-2026-06-quincena_15
Si se vuelve a procesar el mismo período, la arquitectura reutiliza/actualiza el reporte existente y conserva resoluciones compatibles en lugar de crear duplicados innecesarios.
Detección automática de período
Se actualizó el analizador compartido Gemini y el detector local de la app. Para RD se reconocen:
- día 15 →
quincena_15 - día 30/31 →
quincena_30 - último día real del mes →
quincena_30(por ejemplo, 28/29 de febrero)
Se validaron correctamente los 16 nombres reales de nómina de enero a agosto de 2026.
Orden de despliegue recomendado
- Hacer respaldo de los workflows actualmente publicados.
- Ejecutar
SUPABASE_Republica_Dominicana_READY.sql. - Importar el workflow principal RD.
- Importar Históricos RD.
- Importar Envío de Reporte RD.
- Reemplazar/actualizar el analizador compartido por la versión
... PR RD. - Reemplazar/actualizar el workflow de correcciones BambooHR por la versión
... PR RD. - Confirmar que las credenciales de BambooHR, Google Sheets/Drive y Gmail quedaron asociadas tras la importación.
- Desplegar el frontend desde el código fuente actualizado (
npm ci && npm run build). - Activar los cinco workflows una vez revisados los paths de webhook.
- Ejecutar una prueba controlada con una de las cuatro quincenas conocidas y comparar con
VALIDACION_REPUBLICA_DOMINICANA_FINAL.md. - Ejecutar después una quincena nueva/no entrenada antes de declararlo operación mensual definitiva.
Nota de despliegue frontend
El dist heredado del ZIP original no debe usarse porque fue generado antes de incorporar RD. El entregable final de RD se prepara sin ese dist antiguo; el servidor de despliegue debe instalar dependencias y generar un dist nuevo desde el código fuente actualizado.