Pular para conteúdo

Apuração de Impostos

Objetivo

Documentar o módulo de apuração fiscal que consolida impostos por período (mensal/trimestral), suporta regimes de Caixa e Competência, calcula saldos credores/devedores, aplica deduções históricas e gera guias financeiras de recolhimento.


Faturamento → Configuração → Faturamento → Regra de Apuração Fiscal Faturamento → Relatórios → Relatórios Apuração Impostos (para visualizar apurações) Faturamento → Configuração → Faturamento → Saldos Credores


Implementação Técnica

Model Nome Técnico Arquivo
L10nBrCielItApuracao l10n_br_ciel_it_account.apuracao l10n_br_ciel_it_account_apuracao.py
L10nBrCielItApuracaoLine l10n_br_ciel_it_account.apuracao.line l10n_br_ciel_it_account_apuracao.py
L10nBrCielItApuracaoSummary l10n_br_ciel_it_account.apuracao.summary l10n_br_ciel_it_account_apuracao.py
L10nBrCielItApuracaoTaxBalance l10n_br_ciel_it_account.apuracao.tax.balance l10n_br_ciel_it_account_apuracao.py
L10nBrCielItApuracaoRule l10n_br_ciel_it_account.apuracao.rule l10n_br_ciel_it_account_apuracao_rule.py
L10nBrCielItApuracaoSaldo l10n_br_ciel_it_account.apuracao.saldo l10n_br_ciel_it_account_apuracao_saldo.py
L10nBrCielItApuracaoSaldoUso l10n_br_ciel_it_account.apuracao.saldo.uso l10n_br_ciel_it_account_apuracao_saldo.py

Impostos Suportados

Código Imposto Tipo
pis PIS Federal
cofins COFINS Federal
icms ICMS Estadual
icmsst ICMS ST Estadual
ipi IPI Federal
iss ISS Municipal
irpj IRPJ Federal
csll CSLL Federal
inss INSS Federal
irrf IRRF Federal
csll_retida CSLL Retida Federal
pis_retido PIS Retido Federal
cofins_retido COFINS Retido Federal
iss_retido ISS Retido Municipal
ir_retido IR Retido Federal
inss_retido INSS Retido Federal

Regras de Apuração (apuracao.rule)

Regra funcional: As regras definem QUAIS impostos serão apurados e COMO serão classificados (débito, crédito ou retenção). Cada empresa deve ter suas próprias regras configuradas.

Campos

Campo Tipo Descrição
name Char Nome descritivo da regra
tax_name Selection Imposto que esta regra apura
tipo_operacao Selection Entrada (in), Saída (out) ou Ambos (both)
natureza Selection debit (a Pagar), credit (a Recuperar) ou retention (Retenção)
state_id Many2one Filtro por UF (opcional)
city_id Many2one Filtro por município (opcional — útil para ISS)
supplier_id Many2one Fornecedor para geração de guia financeira
product_id Many2one Produto/Serviço para a linha da fatura de recolhimento

Lógica de Filtro

As regras filtram documentos por: 1. Tipo de operação: Entrada vs. Saída 2. UF do parceiro: Se state_id preenchido, só apura documentos daquela UF 3. Município: Se city_id preenchido, só apura documentos daquele município (busca em l10n_br_iss_municipio_id ou no município do parceiro)


Fluxo de Apuração

flowchart TD
    A["Criar Apuração<br/>(Período + Imposto)"] --> B{"Regime?"}
    B -->|Competência| C["Buscar faturas postadas<br/>por invoice_date"]
    B -->|Caixa| D["Buscar conciliações<br/>por max_date"]
    C --> E["Para cada linha da fatura<br/>aplicar regras"]
    D --> F["Calcular proporção<br/>pago/total"]
    F --> E
    E --> G["Criar apuracao.line"]
    G --> H["Consolidar resumo<br/>por regra"]
    H --> I["Consolidar saldo<br/>por imposto"]
    I --> J["Gerar tax_balance<br/>(Débitos - Créditos)"]
    J --> K{"Saldo > 0?"}
    K -->|Sim| L["Imposto a Pagar<br/>(pode deduzir saldos)"]
    K -->|Não| M["Saldo Credor<br/>(registrar para uso futuro)"]
    L --> N["Gerar guia financeira"]
    M --> O["Criar registro de saldo"]

Regime de Competência vs. Caixa

Competência (padrão)

Regra funcional: Apura impostos de todas as faturas postadas dentro do período, independente de terem sido pagas.

moves = account.move.search([
    company_id, state='posted',
    invoice_date >= date_start,
    invoice_date <= date_end
])

Caixa

Regra funcional: Apura impostos proporcionalmente aos pagamentos efetivamente recebidos no período. Se uma fatura de R$ 1.000 teve R$ 600 pagos no período, apenas 60% dos impostos são apurados.

Fórmula: proporção = partial.amount / move.amount_total

Os valores de base e imposto são multiplicados pela proporção: - base = base_line × proporção - valor = valor_imposto × proporção


Saldos Credores (apuracao.saldo)

Regra funcional: Quando a apuração resulta em créditos superiores aos débitos (ex: muitas compras e poucas vendas), o saldo credor é registrado para uso futuro como dedução em apurações posteriores.

Campos

Campo Descrição
tax_name Imposto do saldo
apuracao_origem_id Apuração que gerou o saldo
date Data de geração
valor_original Valor original do saldo
valor_utilizado Quanto já foi utilizado
valor_disponivel Saldo disponível (computed)

Uso de Saldos (apuracao.saldo.uso)

Registra cada utilização de saldo credor como dedução em uma apuração:

Campo Descrição
apuracao_id Apuração que consumiu o saldo
saldo_id Saldo credor que foi consumido
tax_name Imposto da dedução
valor_utilizado Valor efetivamente deduzido

Geração de Guias Financeiras

O método action_generate_financial() gera faturas de fornecedor (in_invoice) para cada imposto com saldo a pagar:

  • Fornecedor: Definido na regra de apuração (supplier_id)
  • Produto: Definido na regra (product_id)
  • Valor: imposto_a_pagar do tax_balance
  • Referência: Apuração: {nome} - {regra}

Cenários de Uso / Troubleshooting

1. "Nenhuma regra de apuração fiscal encontrada"

  • Causa: Não existem regras cadastradas para a empresa e/ou imposto
  • Solução: Criar regras em Faturamento → Configuração → Faturamento → Regra de Apuração Fiscal

2. Apuração com valores zerados

  • Verificar: As faturas do período estão postadas (state = posted)?
  • Verificar: Os campos de imposto nas linhas das faturas estão preenchidos?
  • Verificar: O tipo de operação da regra corresponde ao tipo de fatura?

3. ISS apurado sem considerar município

  • Solução: Criar regras de apuração específicas com city_id preenchido para cada município

Referências Cruzadas