EFD ICMS/IPI — SPED Fiscal
Objetivo
Gerar o arquivo digital EFD-ICMS/IPI que substitui os livros fiscais de Registro de Entradas, Registro de Saídas, Apuração do ICMS, Apuração do IPI e Inventário.
Dados do Model
| Atributo |
Valor |
| Model |
l10n_br_ciel_it_account.sped.fiscal |
| Arquivo |
account_sped_fiscal.py |
| Método de geração |
gerar_sped() |
| Constraint |
UNIQUE (company_id, date_ini, date_fim) — um registro por período/empresa |
| Menu |
Faturamento → Relatórios → Relatórios Apuração Impostos → EFD ICMS IPI |
Configuração do Registro
| Campo |
Tipo |
Descrição |
Obrigatório |
company_id |
Many2one |
Empresa |
✅ |
date_ini |
Date |
Data inicial do período |
✅ |
date_fim |
Date |
Data final do período |
✅ |
e116_icms_dia_vencimento |
Integer |
Dia de vencimento ICMS (E116) |
Default 1 |
e116_icms_codigo_receita |
Char |
Código da receita ICMS (E116) |
— |
c197_gerar_apuracao_ajustes_icms |
Boolean |
Gerar ajustes ICMS via C197 |
Default False |
x1900_indicador_apuracao |
Selection |
Indicador outra apuração ICMS (1900) |
— |
h005_dt_inv |
Date |
Data do inventário (H005) |
— |
Models Auxiliares
| Model |
Finalidade |
Relação |
sped.fiscal.uf.difal.fcp |
Apuração DIFAL/FCP por UF de destino |
line_difalfcp_ids |
sped.fiscal.uf.icmsst |
Apuração ICMS ST por UF |
line_icmsst_ids |
sped.fiscal.1921 |
Ajustes do Registro 1921 |
line_1921_ids |
sped.fiscal.e111 |
Ajustes do Registro E111 |
line_e111_ids |
Estrutura de Blocos
| Bloco |
Finalidade |
Registros Implementados |
Documentação |
| 0 |
Abertura, cadastros, participantes, produtos, contas |
0000, 0001, 0002, 0005, 0100, 0150, 0190, 0200, 0300, 0305, 0400, 0450, 0460, 0500, 0600, 0990 |
bloco-0.md |
| B |
ISS (DF) |
B001, B990 |
Stub — sem movimento |
| C |
Documentos fiscais (NF-e, NFC-e, Energia) |
C001, C100, C101, C110, C113, C120, C140, C141, C170, C190, C195, C197, C500, C590, C990 |
bloco-c.md |
| D |
Transporte (CT-e) e comunicação |
D001, D100, D190, D195, D197, D500, D590, D990 |
bloco-d.md |
| E |
Apuração ICMS, ICMS-ST, DIFAL/FCP, IPI |
E001, E100, E110, E111, E113, E116, E200, E210, E250, E300, E310, E316, E500, E510, E520, E990 |
bloco-e.md |
| G |
CIAP (Ativo imobilizado) |
G001, G110, G125, G130, G140, G990 |
bloco-h.md |
| H |
Inventário físico |
H001, H005, H010, H990 |
bloco-h.md |
| K |
Produção e estoque |
K001, K010, K100, K200, K230, K235, K990 |
bloco-k.md |
| 1 |
Informações complementares |
1001, 1010, 1105, 1900, 1910, 1920, 1921, 1990 |
bloco-1.md |
| 9 |
Encerramento |
9001, 9900, 9990 |
Automático |
Fluxo de Geração
flowchart TD
A["gerar_sped()"] --> B["Inicializa ArquivoDigital()"]
B --> C["Bloco B (ISS)"]
C --> D["Bloco C: C100 + subregs"]
D --> E["Bloco C: C140 + subregs"]
E --> F["Bloco C: C500 + subregs"]
F --> G["Bloco D: D100 + D500"]
G --> H["Bloco E: Apuração"]
H --> I["Bloco G: CIAP"]
I --> J["Bloco H: Inventário"]
J --> K["Bloco K: Produção"]
K --> L["Bloco 1: Complementares"]
L --> M["Bloco 0: Cadastros"]
M --> N["Bloco 9: Encerramento"]
N --> O["Serializa + salva base64"]
Nota: O Bloco 0 é gerado após os blocos C/D/E/K porque precisa das listas de product_ids, partner_ids e cfop_ids acumuladas durante a geração dos demais blocos.
Campos de Apuração ICMS (E110)
A apuração ICMS é montada automaticamente durante a geração dos blocos C/D via acúmulo nos campos do model. A fórmula é:
Saldo Devedor = (Débitos + Aj.Débitos + Tot.Aj.Débitos + Estornos.Créditos)
- (Créditos + Aj.Créditos + Tot.Aj.Créditos + Estornos.Débitos + Saldo.Credor.Anterior)
Se Saldo Devedor > 0 → ICMS a Recolher = Saldo Devedor - Deduções
Se Saldo Devedor < 0 → Saldo Credor a Transportar = |Saldo Devedor|
| Campo |
Origem |
Tipo |
e110_vl_tot_debitos |
Soma ICMS de saídas (C190/D190 se TIPO_NF = 1) |
🧮 Cumulativo |
e110_vl_tot_creditos |
Soma ICMS de entradas (C190/D190 se TIPO_NF = 0) |
🧮 Cumulativo |
e110_vl_aj_debitos |
Ajustes de débito via C197 (l10n_br_transf_credito) |
🧮 |
e110_vl_aj_creditos |
Ajustes de crédito via C197 |
🧮 |
e110_vl_sld_credor_ant |
search(mês anterior).e110_vl_sld_credor_transportar |
🧮 Automático |
e110_vl_tot_aj_debitos |
Ajustes manuais de débito |
✅ Manual |
e110_vl_tot_aj_creditos |
Ajustes manuais de crédito |
✅ Manual |
e110_vl_estornos_cred |
Estornos de crédito |
✅ Manual |
e110_vl_estornos_deb |
Estornos de débito |
✅ Manual |
e110_vl_tot_ded |
Deduções |
✅ Manual |
e110_deb_esp |
Débitos especiais |
✅ Manual |
Campos de Apuração IPI (E520)
Se Débitos + Outros.Débitos > Créditos.Ant + Créditos + Outros.Créditos
→ Saldo Devedor
Senão
→ Saldo Credor a transportar
| Campo |
Origem |
e520_vl_sd_ant_ipi |
search(mês anterior).e520_vl_sc_ipi |
e520_vl_deb_ipi |
Soma IPI de saídas (E510 com CFOP 5* ou 6*) |
e520_vl_cred_ipi |
Soma IPI de entradas (E510 com CFOP 1* ou 2*) |
e520_vl_od_ipi |
Outros débitos — ✅ Manual |
e520_vl_oc_ipi |
Outros créditos — ✅ Manual |
Dependências de Cadastro
| Cadastro |
Dados Usados |
Blocos Afetados |
| 🏢 Empresa |
CNPJ, UF, IE, IM, município, razão social, endereço, contador, perfil, regime |
0, E, 1 |
| 👤 Parceiro |
CNPJ/CPF, IE, município, endereço, SUFRAMA |
0 (0150) |
| 📦 Produto |
default_code, NCM, barcode, tipo, UoM SEFAZ |
0 (0200) |
| 📋 Linha de fatura |
ICMS, IPI, PIS, COFINS, CFOP, CST, Origem |
C (C170/C190) |
| 📄 Fatura |
Chave NF, série, número, valores totais, operação |
C (C100) |
| 🏦 Conta contábil |
Código, nome, grupo, nível |
0 (0500) |
| ⚙️ CFOP |
Código, descrição |
0 (0400) |
| ⚙️ UoM |
l10n_br_codigo_sefaz |
0 (0190) |
Referências