Voltar ao Blog Gestão Empresarial

FGTS no Odoo: cálculo, GRRF e GRF automatizados

Como o Odoo calcula 8% de FGTS, gera GRF mensal e GRRF rescisória, e integra o recolhimento ao eSocial via DCTFWeb e FGTS Digital.

Luis Felipe Miléo

Luis Felipe Miléo

· 5 min de leitura

FGTS é um dos cálculos mais simples da folha brasileira (8% sobre a remuneração) e um dos mais castigadores de errar: depósito a menos vira passivo trabalhista cobrável até 5 anos, depósito a maior nunca volta. Desde 2024 o recolhimento mudou: o FGTS Digital substituiu a antiga GRF/GRRF gerada pelo SEFIP, e o cálculo passa a ser feito a partir dos eventos eSocial.

A folha CLT da KMEE (PR #277) implementa cálculo de FGTS, geração da guia mensal e da guia rescisória integradas ao motor de payroll do Odoo. Este post mostra o fluxo.

A regra básica

O empregador deposita 8% da remuneração do colaborador todo mês em conta vinculada na Caixa, em nome do trabalhador. Em alguns casos o percentual é diferente:

  • 2% — Menor aprendiz (Lei 11.180/2005)
  • 8% + 4% adicional — Lei Complementar 110/2001 (LC 110), suspenso desde 2020 mas ainda referenciado em rescisões

Sobre quais verbas incide? Praticamente todas: salário base, horas extras, adicionais, 13º, comissões, gratificações, aviso prévio (trabalhado e indenizado), férias gozadas. Não incide sobre férias indenizadas, abono pecuniário e algumas verbas indenizatórias específicas.

FGTS na rescisão

Em demissão sem justa causa, o empregador paga ao colaborador 40% sobre o saldo total depositado durante todo o contrato (não só do mês corrente — todo o histórico). Esse é o famoso “saque + multa de 40%”. No acordo do art. 484-A (Lei 13.467/2017) cai para 20%. Em pedido de demissão ou justa causa, zero.

A multa rescisória não vai para a conta do trabalhador na Caixa — é paga via guia GRRF (agora FGTS Digital rescisão) e o trabalhador saca diretamente.

Mapping no Odoo

A hr.salary.rule tem um conjunto dedicado de regras de FGTS:

# Rubrica FGTS mensal
{
    "code": "FGTS",
    "name": "FGTS 8% do mes",
    "category_id": ref("hr_payroll.EMPLOYER"),
    "amount_python_compute": "result = categories.BRUT * 0.08",
    "appears_on_payslip": True,
    "register_id": ref("fgts_register"),
}

# Rubrica FGTS 13o
{
    "code": "FGTS_13",
    "name": "FGTS 8% sobre 13o",
    "amount_python_compute": "result = inputs.RUBR_13.amount * 0.08",
}

# Rubrica multa 40% rescisao
{
    "code": "FGTS_MULTA",
    "name": "Multa 40% FGTS rescisao",
    "amount_python_compute": "result = employee.fgts_saldo_total * 0.40 if contract.deslig_motivo == '02' else 0",
}

A base do cálculo (categories.BRUT na expressão) é a soma das rubricas marcadas com incidência FGTS na configuração da rubrica:

class HrSalaryRule(models.Model):
    _inherit = "hr.salary.rule"
    incidencia_fgts = fields.Selection([
        ("00", "Nao incide"),
        ("11", "Incide para FGTS"),
        ("12", "Incide para FGTS apenas no 13o"),
        ("21", "Indenizado por reclamatoria"),
    ])

Esse mesmo campo incidencia_fgts alimenta o codIncFGTS em cada itensRemun do S-1200. Centralizar a configuração na rubrica garante coerência: o que vai para a guia é o mesmo que vai para o eSocial.

GRF mensal — agora FGTS Digital

Até 2023 o recolhimento mensal era feito via SEFIP, gerando uma GRF (Guia de Recolhimento do FGTS) em formato bancário. Desde 2024, o FGTS Digital assumiu: a Caixa consome os eventos S-1200 (remuneração) e S-1210 (pagamentos) do eSocial, calcula o devido, e disponibiliza guias DAE no portal.

Na prática isso simplifica para o Odoo: a “geração” da GRF agora é a transmissão correta dos eventos eSocial. Se S-1200 estiver fechado certo e S-1299 tiver sido enviado, o FGTS Digital monta a guia automaticamente. Se houver divergência entre o que o ERP calculou e o que o FGTS Digital exibe, há um problema de incidência em rubrica.

O Odoo gera um relatório de conferência pré-fechamento que recalcula totalizadores S-5001/S-5011 antes da transmissão para detectar descasamentos cedo.

GRRF rescisória

A guia rescisória tem regra própria: vale 3 dias úteis após o desligamento (alterado pela Lei 13.467/2017 — antes era 1º dia útil), e cobre tanto os depósitos do mês corrente quanto a multa de 40%.

No Odoo, o wizard de rescisão dispara automaticamente o cálculo da GRRF assim que a hr.payslip rescisória é fechada:

def action_close_rescisao(self):
    self.compute_sheet()
    self._create_fgts_rescisao_guide()
    if self.contract_id.deslig_motivo in ("02", "23"):
        self._create_multa_fgts(self.contract_id.deslig_motivo)
    self.state = "done"

A guia GRRF no Odoo é um account.move com identificador específico, integrado ao financeiro para conciliação posterior.

Integração com S-2299 e S-1210

A mecânica do FGTS Digital é: o trabalhador só consegue sacar quando o S-2299 (desligamento) estiver processado e os totalizadores de FGTS na rescisão estiverem coerentes. Se a folha rescisória ficou no Odoo mas o S-2299 não foi enviado, o saldo aparece bloqueado no app FGTS do trabalhador.

S-1210 (pagamentos) também impacta: o FGTS Digital usa S-1210 para conciliar o que foi efetivamente pago vs. o devido. No PR #277 o S-1210 ainda está em desenvolvimento — a integração FGTS Digital plena fica pendente até essa peça entrar.

O que pode dar errado

  • Incidência diferente entre Odoo e FGTS Digital — geralmente erro em rubrica de horas extras ou prêmios.
  • Saldo total para multa de 40% — se o ERP recém-implantado não tem histórico, precisa importar saldo do FGTS Digital.
  • Aviso prévio indenizado — incide FGTS sobre o aviso, mas a guia precisa do dtProjFimAPI correto no S-2299.
  • Categoria de menor aprendiz — esquecer de mudar percentual para 2% gera depósito a maior.
  • Recibo de quitação rescisória — TRCT precisa bater com a GRRF para o trabalhador conseguir sacar.

Conclusão

FGTS no Odoo segue o motor padrão de salary rules, com a complicação adicional de que o cálculo precisa estar coerente com o que será transmitido via eSocial. A folha CLT da KMEE entrega cálculo mensal e rescisório completos; a integração total com FGTS Digital depende de S-1210 entrar — o que está em desenvolvimento ativo no PR #277.

Veja mais em folha de pagamento Odoo, eSocial Odoo e Odoo vs Senior.

#folha #esocial

Compartilhar

Sobre o autor

Luis Felipe Miléo

Luis Felipe Miléo

Desenvolvedor Odoo · KMEE

Desenvolvedor especializado em localização fiscal e projetos open source no ecossistema Odoo/OCA, com foco em integrações para o mercado latino-americano.

Ver perfil no LinkedIn