Módulo · Folha & Ponto

Ponto Eletrônico

Três formas de bater ponto convivem no Nodus: REP-A mobile com reconhecimento facial, agente Python pra relógios Control iD na rede da empresa, e batida manual via Portal. Tudo entra na mesma timeline e gera os mesmos relatórios.

Onde: Menu 💰 Folha & Ponto → Ponto Eletrônico / Jornada Facial
Add-on: Portaria 671/2024 (REP-A + facial)
Tabela: ponto_batidas

REP-A Mobile (Portaria 671/2024)

O REP-A é o ponto eletrônico legal homologado, executado direto no celular do colaborador. Não precisa de relógio físico. Cada batida combina:

📸 Selfie verificada

Face matching local (face-api.js) — score ≥0.7 contra o descriptor cadastrado.

📍 Geofencing

GPS validado contra lat/lng + raio da filial onde a pessoa trabalha.

🔐 Token único

Pareamento do celular gera token HMAC; sem ele, batida é rejeitada.

🔒 Criptografia

Face descriptor (128-d vector) armazenado em AES-256-CBC.

Como o colaborador cadastra o rosto

  1. Recebe link de pareamento via email/WhatsApp.
  2. Abre no celular → autoriza câmera e localização.
  3. Tira 3 selfies em ângulos diferentes (frontal, leve esquerda, leve direita).
  4. Sistema gera o face descriptor e armazena criptografado.
  5. Próxima batida: 1 selfie + match local → registro em ponto_batidas.

Como o admin habilita

Menu Jornada Facial → painel "Quem tem acesso à Jornada Facial". Toggle por colaborador, ou botão Habilitar todos visíveis em batch. Filtros: todos / habilitados / aguardando cadastro / rosto cadastrado.

Geofencing por filial

Cada unidade tem coordenadas e raio configuráveis (default 50m). Se o colab tenta bater ponto fora do raio, o sistema:

Pra configurar: ⚙️ Sistema → Unidades → editar filial → seção Geofencing. Coloque lat/lng do estabelecimento e raio. Teste no mapa antes de salvar.

Agente Python (Control iD)

Se a empresa já tem relógio Control iD instalado, o Nodus oferece um agente Python que roda na rede local da empresa. O agente:

  1. Conecta no relógio Control iD via API local.
  2. Lê batidas novas a cada N minutos (configurável).
  3. Empurra pra ?action=ponto_agent_push usando header X-Agent-Token.
  4. Bate heartbeat em ?action=ponto_agent_heartbeat pra mostrar online.

Configurar o agente: download em ⚙️ Sistema → Auditoria → painel "Agente Ponto". O token é gerado lá. Coloca em variável de ambiente do agente, roda como serviço Windows/Linux.

Anomalias detectadas automaticamente IA

Diariamente o sistema cruza batidas com escala esperada e marca como anomalia:

O gestor recebe a lista no card de anomalias. Cada item tem botão 🤖 1:1 que gera um roteiro de conversa via IA pra abordar o assunto com o colaborador — perguntas sugeridas, tom, ações esperadas.

🔒 Scope LGPD

Gestor de setor só vê anomalias dos subordinados diretos dele. Validado em cada chamada — admin/gestor_rh têm visão global.

Relatórios e exportações

Menu 📊 Análises → Relatórios → Folha de Ponto:

Retenção LGPD: selfies brutas são deletadas após 90 dias (cron biometria_retencao_cron). Face descriptors são desativados 30 dias após desligamento.