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
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
dtProjFimAPIcorreto 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.
Sobre o autor
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 LinkedInArtigos relacionados
Open Finance regulado vs APIs proprietárias: qual usar para cada caso
7 de jul. de 2026
Gestão EmpresarialDDA no Odoo: contas a pagar 100% automatizadas
30 de jun. de 2026
Gestão EmpresarialTOTVS está descontinuando sua API bancária — Odoo é a alternativa neutra
9 de jun. de 2026