Pular para conteúdo

Bloco 0 — Abertura, Identificação e Cadastros

Finalidade

Identificar o contribuinte, informar os participantes (clientes/fornecedores), produtos, unidades de medida, CFOPs e plano de contas contábeis utilizados nas operações do período.


Registro 0000 — Abertura do Arquivo

Campo SPED Origem no Odoo Model Regra
COD_VER 🔒 '019' (2025) / '018' (demais) Determinado pelo ano do date_fim
COD_FIN 🔒 '0' (original) Fixo
DT_INI ⚙️ self.date_ini Wizard Período informado pelo usuário
DT_FIN ⚙️ self.date_fim Wizard Período informado pelo usuário
NOME 🏢 company.l10n_br_razao_social ou company.name res.company ✅ Empresa → Razão Social
CNPJ 🏢 company.l10n_br_cnpj (sem formatação) res.company ✅ Empresa → CNPJ
UF 🏢 company.state_id.code res.company ✅ Empresa → Estado
IE 🏢 company.l10n_br_ie res.company ✅ Empresa → IE
COD_MUN 🏢 company.l10n_br_municipio_id.codigo_ibge res.company ✅ Empresa → Município
IM 🏢 company.l10n_br_im ou "" res.company ✅ Empresa → IM
IND_PERFIL 🏢 company.l10n_br_ind_perfil ou 'A' res.company ✅ Empresa → Perfil SPED
IND_ATIV 🔒 '0' Fixo (industrial/equiparado)

Método: enviar_registro_0000() — linha 510


Registro 0002 — Classificação do Estabelecimento Industrial

Campo Origem Regra
CLAS_ESTAB_IND 🔒 '00' Fixo

Registro 0005 — Dados Complementares da Entidade

Campo SPED Origem no Odoo Regra
FANTASIA 🏢 company.name ou l10n_br_razao_social ✅ Empresa → Nome
CEP 🏢 company.zip (sem formatação) ✅ Empresa → CEP
END 🏢 company.street ✅ Empresa → Endereço
NUM 🏢 company.l10n_br_endereco_numero (máx 10) ✅ Empresa → Número
COMPL 🏢 company.street2 ✅ Empresa → Complemento
BAIRRO 🏢 company.l10n_br_endereco_bairro ✅ Empresa → Bairro
FONE 🏢 company.phone (somente dígitos, sem DDI) ✅ Empresa → Telefone
EMAIL 🏢 company.email ✅ Empresa → E-mail

Registro 0100 — Dados do Contabilista

Campo SPED Origem no Odoo Regra
NOME 👤 company.l10n_br_contador_partner_id.l10n_br_razao_social ✅ Empresa → Contador
CPF 👤 contador.l10n_br_cpf ✅ Contatos → CPF
CRC 👤 contador.l10n_br_crc ✅ Contatos → CRC
CNPJ 👤 contador.l10n_br_cnpj ✅ Contatos → CNPJ
CEP / END / NUM / COMPL / BAIRRO / FONE / EMAIL / COD_MUN 👤 Dados de endereço do contador ✅ Contatos

Pré-requisito: company.l10n_br_contador_partner_id deve estar preenchido.


Registro 0150 — Participantes

Campo SPED Origem no Odoo Regra
COD_PART 👤 partner.id (numérico) 🔒 ID do registro
NOME 👤 partner.l10n_br_razao_social ou partner.name ✅ Contatos → Razão Social
COD_PAIS 👤 partner.country_id.l10n_br_codigo_bacen ✅ Contatos → País
CNPJ 👤 partner.l10n_br_cnpj (sem formatação) ✅ Contatos → CNPJ
CPF 👤 partner.l10n_br_cpf (sem formatação) ✅ Contatos → CPF
IE 👤 partner.l10n_br_ie ✅ Contatos → IE
COD_MUN 👤 partner.l10n_br_municipio_id.codigo_ibge ✅ Contatos → Município
SUFRAMA 👤 partner.l10n_br_is ✅ Contatos → SUFRAMA
END 👤 partner.street (máx 60) ✅ Contatos → Endereço
NUM 👤 partner.l10n_br_endereco_numero (máx 10) ✅ Contatos
COMPL 👤 partner.street2 (máx 60) ✅ Contatos
BAIRRO 👤 partner.l10n_br_endereco_bairro ✅ Contatos

Regra: Somente parceiros que apareceram em documentos fiscais do período são listados (lista partner_ids_list acumulada nos blocos C/D).


Registro 0190 — Unidades de Medida

Campo SPED Origem no Odoo Regra
UNID 📦 uom.l10n_br_codigo_sefaz ✅ UoM → Código SEFAZ
DESCR 📦 Descrição da seleção do l10n_br_codigo_sefaz 🧮 Automático

Validação: Se existir UoM sem l10n_br_codigo_sefaz, gera RedirectWarning com link para corrigir.


Registro 0200 — Produtos

Campo SPED Origem no Odoo Regra
COD_ITEM 📦 product.default_code ✅ Produto → Referência Interna
DESCR_ITEM 📦 product.name (máx 110) ✅ Produto → Nome
COD_BARRA 📦 product.barcode ou '' ✅ Produto → Código de Barras
UNID_INV 📦 product.uom_id.l10n_br_codigo_sefaz ✅ UoM → Código SEFAZ
TIPO_ITEM 📦 product.l10n_br_tipo_produto → fallback: categ.l10n_br_tipo_produto ✅ Produto ou Categoria → Tipo
COD_NCM 📦 product.l10n_br_ncm_id.codigo_ncm ✅ Produto → NCM
COD_GEN 📦 NCM primeiros 2 dígitos 🧮 Derivado do NCM
ALIQ_ICMS 🔒 0.00 Fixo

Validações: - RedirectWarning se produto sem default_code - RedirectWarning se categoria sem l10n_br_tipo_produto


Registro 0300 — Bens do Ativo Imobilizado (CIAP)

Campo SPED Origem no Odoo Regra
COD_IND_BEM 📦 product.default_code ✅ Ativo → Produto
IDENT_MERC 🔒 '1' Fixo
DESCR_ITEM 📦 product.name ✅ Ativo → Nome
COD_CTA 🏦 categ.property_stock_valuation_account_id.code ✅ Categoria → Conta de valorização
NR_PARC 🧮 Número de depreciações restantes após date_fim Calculado

Condição: Gerado somente se o model account.asset existir no ambiente.


Registro 0400 — Natureza da Operação (CFOP)

Campo Origem Regra
COD_NAT ⚙️ cfop.codigo_cfop ✅ Localização BR → CFOPs
DESCR_NAT ⚙️ cfop.name ✅ CFOP → Descrição

Registro 0500 — Plano de Contas

Campo SPED Origem no Odoo Regra
DT_ALT 🏦 account.write_date (máx date_fim) 🧮 Data de alteração
COD_NAT_CC 🏦 Derivado: '0' + group.code_prefix_start[0]. Valores válidos: 01-05, 09 🧮
IND_CTA 🔒 'A' (analítica) Fixo
NIVEL 🏦 Conta de nível do grupo (percorre parent_id até a raiz) 🧮
COD_CTA 🏦 account.code.strip() ✅ Conta → Código
NOME_CTA 🏦 account.name (máx 50) ✅ Conta → Nome

Filtro: Somente contas não-archived (deprecated = False). Duplicatas de código são ignoradas.


Registros Stub

Registro Status Método
0175 pass — Não implementado enviar_registro_0175()
0205 pass — Não implementado enviar_registro_0205()
0220 pass — Não implementado enviar_registro_0220()
0600 pass — Não implementado enviar_registro_0600()

Problemas Comuns

Sintoma Causa Solução
"Unidades de Medida sem código SEFAZ" UoM usado por produto no período sem l10n_br_codigo_sefaz ✅ UoM → Código SEFAZ
"Categorias de produtos sem tipo de produto" Categoria sem l10n_br_tipo_produto ✅ Categorias → Tipo de Produto
"Produtos sem código interno" Produto sem default_code ✅ Produto → Referência Interna
Registro 0100 vazio Empresa sem l10n_br_contador_partner_id ✅ Empresa → Contador

Referências