Skip to main content

Informacional e Comandos - SPED

O SPED é um Sistema Público de Escrituração Digital, ou seja, um sistema que tem como principal objetivo facilitar o arquivamento, o envio e a validação dos deveres tributários de uma companhia.

Este arquivo auxilia no controle e gerenciamento das questões fiscais e contábeis da empresa, ele também vai fazer um controle mais assertivo dos tributos a serem recolhidos.

O governo exige que as empresas que exercem sua função nos regimes de tributação em lucro presumido e em lucro real precisam fazer a entrega desse documento. Já as organizações inseridas do Simples Nacional são isentas da entrega.


No SIEM:

Será necessário, assim como no SINTEGRA, primeiro a correção de certas informações que estão na base de dados.
Assegure que o sistema se encontra em uma versão recente e válida para a geração.

Para que a geração seja feita sem prejudicar o cliente, retire uma cópia da base de dados atuais da máquina do cliente e, se necessário, uma cópia dos arquivos XML caso o mesmo também deseje o envio destes junto ao arquivo de SPED.

As SQL que serão utilizadas na base de dados onde será feita a geração do SPED seguem a ordem abaixo:

Alteração da CFOP para códigos de entrada:
É necessário que as notas de compra registradas na Estoque_Movimento estejam com códigos de CFOP de entrada.
A SQL abaixo faz essa mudança nos códigos mais comuns. Ela é dividida em duas partes

Primeiro sendo executado:

UPDATE Estoque_Movimento SET Estoque_Movimento.CFOP = IIf([Estoque_Movimento.CFOP]="5405","1403",IIf([Estoque_Movimento.CFOP]="5403","1403",IIf([Estoque_Movimento.CFOP]="5102","1102",IIf([Estoque_Movimento.CFOP]="5101","1101",IIf([Estoque_Movimento.CFOP]="6101","2101",IIf([Estoque_Movimento.CFOP]="6102","2102",IIf([Estoque_Movimento.CFOP]="5929","1949",IIf([Estoque_Movimento.CFOP]="6929","2949",IIf([Estoque_Movimento.CFOP]="5152","1152",IIf([Estoque_Movimento.CFOP]="5409","1409",IIf([Estoque_Movimento.CFOP]="6403","2403",IIf([Estoque_Movimento.CFOP]="5910","1910",IIf([Estoque_Movimento.CFOP]="5105","1102",IIf([Estoque_Movimento.CFOP]="6105","2101"))))))))))))))
WHERE (((Estoque_Movimento.CFOP)="5405" Or (Estoque_Movimento.CFOP)="5403" Or (Estoque_Movimento.CFOP)="5102" Or (Estoque_Movimento.CFOP)="5101" Or (Estoque_Movimento.CFOP)="6101" Or (Estoque_Movimento.CFOP)="6102" Or (Estoque_Movimento.CFOP)="5929" Or (Estoque_Movimento.CFOP)="6929" Or (Estoque_Movimento.CFOP)="5152" Or (Estoque_Movimento.CFOP)="5409" Or (Estoque_Movimento.CFOP)="6403" Or (Estoque_Movimento.CFOP)="5910" Or (Estoque_Movimento.CFOP)="5105" Or (Estoque_Movimento.CFOP)="6105"));

E em seguida:

UPDATE Estoque_Movimento SET Estoque_Movimento.CFOP = IIf([Estoque_Movimento.CFOP]="5401","1401",IIf([Estoque_Movimento.CFOP]="6401","2401",IIf([Estoque_Movimento.CFOP]="5908","1901",IIf([Estoque_Movimento.CFOP]="6106","2102",IIf([Estoque_Movimento.CFOP]="6404","2403",IIf([Estoque_Movimento.CFOP]="6910","2910"))))))
WHERE (((Estoque_Movimento.CFOP)="5401" Or (Estoque_Movimento.CFOP)="6401" Or (Estoque_Movimento.CFOP)="5908" Or (Estoque_Movimento.CFOP)="6106" Or (Estoque_Movimento.CFOP)="6404" Or (Estoque_Movimento.CFOP)="6910"));

Outros códigos que comumente são utilizados são

5.108 > 1.102
5.106 > 1.102
5.123 > 1.122
5.405 > 1.403
5.655 > 1.652
5.929 > 1.949
6.409 > 2.402
6.656 > 2.653

Caso ainda tenha dúvidas de qual código poderá ser substituído, confira a tabela de CFOP. Também poderá consultar com outros técnicos especializados na geração do arquivo.

Feito o comando de correção das CFOP, lembre-se de abrir a Estoque_Movimento e validar se não ficou nenhum código de saída nas operações de compra!

Alteração CST IPI

Assim como na CFOP, os códigos de CST do IPI, PIS e COFINS também devem representar operações de entrada.
Para a correção dos códigos de IPI, siga o comando:

UPDATE Estoque_Movimento SET Estoque_Movimento.CSTIPI = IIf([Estoque_Movimento.CSTIPI]="0","03",IIf([Estoque_Movimento.CSTIPI]="50","00",IIf([Estoque_Movimento.CSTIPI]="51","01",IIf([Estoque_Movimento.CSTIPI]="52","02",IIf([Estoque_Movimento.CSTIPI]="53","03",IIf([Estoque_Movimento.CSTIPI]="54","04",IIf([Estoque_Movimento.CSTIPI]="55","05",IIf([Estoque_Movimento.CSTIPI]="99","49"))))))))
WHERE (((Estoque_Movimento.CSTIPI)="0" Or (Estoque_Movimento.CSTIPI)="50" Or (Estoque_Movimento.CSTIPI)="51" Or (Estoque_Movimento.CSTIPI)="52" Or (Estoque_Movimento.CSTIPI)="53" Or (Estoque_Movimento.CSTIPI)="54" Or (Estoque_Movimento.CSTIPI)="55" Or (Estoque_Movimento.CSTIPI)="99"));

Comumente, os códigos alterados são os abaixo:

00 > 03
50 > 00
51 > 01
52 > 02
53 > 03
54 > 04
55 > 05
99 > 49

Sendo os valores à esquerda, saída, e na direita, entrada.

Alteração PIS e COFINS

UPDATE Estoque_Movimento SET Estoque_Movimento.CSTPIS = IIf([Estoque_Movimento.CSTPIS]="00","71",IIf([Estoque_Movimento.CSTPIS]="01","50",IIf([Estoque_Movimento.CSTPIS]="02","50",IIf([Estoque_Movimento.CSTPIS]="03","99",IIf([Estoque_Movimento.CSTPIS]="04","50",IIf([Estoque_Movimento.CSTPIS]="05","75",IIf([Estoque_Movimento.CSTPIS]="06","73",IIf([Estoque_Movimento.CSTPIS]="07","71",IIf([Estoque_Movimento.CSTPIS]="08","74",IIf([Estoque_Movimento.CSTPIS]="09","72",IIf([Estoque_Movimento.CSTPIS]="49","99"))))))))))), Estoque_Movimento.CSTCOFINS = IIf([Estoque_Movimento.CSTCOFINS]="00","71",IIf([Estoque_Movimento.CSTCOFINS]="01","50",IIf([Estoque_Movimento.CSTCOFINS]="02","50",IIf([Estoque_Movimento.CSTCOFINS]="03","99",IIf([Estoque_Movimento.CSTCOFINS]="04","50",IIf([Estoque_Movimento.CSTCOFINS]="05","75",IIf([Estoque_Movimento.CSTCOFINS]="06","73",IIf([Estoque_Movimento.CSTCOFINS]="07","71",IIf([Estoque_Movimento.CSTCOFINS]="08","74",IIf([Estoque_Movimento.CSTCOFINS]="09","72",IIf([Estoque_Movimento.CSTCOFINS]="49","99")))))))))))
WHERE (((Estoque_Movimento.CSTPIS)="00" Or (Estoque_Movimento.CSTPIS)="01" Or (Estoque_Movimento.CSTPIS)="02" Or (Estoque_Movimento.CSTPIS)="03" Or (Estoque_Movimento.CSTPIS)="04" Or (Estoque_Movimento.CSTPIS)="05" Or (Estoque_Movimento.CSTPIS)="06" Or (Estoque_Movimento.CSTPIS)="07" Or (Estoque_Movimento.CSTPIS)="08" Or (Estoque_Movimento.CSTPIS)="09" Or (Estoque_Movimento.CSTPIS)="49") AND ((Estoque_Movimento.CSTCOFINS)="00" Or (Estoque_Movimento.CSTCOFINS)="01" Or (Estoque_Movimento.CSTCOFINS)="02" Or (Estoque_Movimento.CSTCOFINS)="03" Or (Estoque_Movimento.CSTCOFINS)="04" Or (Estoque_Movimento.CSTCOFINS)="05" Or (Estoque_Movimento.CSTCOFINS)="06" Or (Estoque_Movimento.CSTCOFINS)="07" Or (Estoque_Movimento.CSTCOFINS)="08" Or (Estoque_Movimento.CSTCOFINS)="09" Or (Estoque_Movimento.CSTCOFINS)="49"));

Novamente, seguindo a mesma regra apresentada para o IPI, os códigos de PIS e COFINS geralmente utilizados nas operações de entrada são os abaixo:

00 > 71
01 > 50
02 > 50
03 > 99
04 > 50
05 > 75
06 > 73
07 > 71
08 > 74
09 > 72
49 > 99


Mudança Tipo de Estoque

Também é necessário o comando para preencher a informação de tipo de estoque valido para o SPED

UPDATE Estoque_Itens SET Estoque_Itens.TipoEstoqueSPED = "00"
WHERE (((Estoque_Itens.TipoEstoqueSPED)="" Or (Estoque_Itens.TipoEstoqueSPED) Is Null));

NCM com menos de 8 dígitos

E para a correção da quantidade de caracteres no NCM

UPDATE Estoque_Itens SET Estoque_Itens.NCM = "00000000"
WHERE (((Len([Estoque_Itens]![NCM]))<>8));

Ajustar IE com dígitos faltantes: MG

Para ajustar o cadastro de clientes PJ que sejam de Minas Gerais e os quais a IE está com dígitos faltantes.

UPDATE (Cad_Estado INNER JOIN Cad_Cidade ON Cad_Estado.Código = Cad_Cidade.Região) INNER JOIN Cad_Cliente ON Cad_Cidade.Código = Cad_Cliente.Cidade SET Cad_Cliente.RG = "00" & [Cad_Cliente]![RG]
WHERE (((Cad_Cliente.RG) Is Not Null And (Cad_Cliente.RG)<>"ISENTO") AND ((Cad_Estado.Estado)="MG") AND ((Cad_Cliente.TPessoa)=2) AND ((Len([Cad_Cliente]![RG]))=11));

Ajustar IE com dígitos faltantes: ES

Para ajustar o cadastro de clientes PJ que sejam do Espirito Santo e os quais a IE está com dígitos faltantes.

UPDATE Cad_Estado INNER JOIN (Cad_Cidade INNER JOIN Cad_Cliente ON Cad_Cidade.Código = Cad_Cliente.Cidade) ON Cad_Estado.Código = Cad_Cidade.Região SET Cad_Cliente.RG = "0" & [Cad_Cliente]![RG]
WHERE (((Cad_Cliente.RG) Is Not Null And (Cad_Cliente.RG)<>"ISENTO") AND ((Cad_Estado.Estado)="ES") AND ((Cad_Cliente.TPessoa)=2) AND ((Len([Cad_Cliente]![RG]))=8));

Ajustar IE com dígitos faltantes: RS

Para ajustar o cadastro de clientes PJ que sejam do Rio Grande do Sul e os quais a IE está com dígitos faltantes.

UPDATE Cad_Estado INNER JOIN (Cad_Cidade INNER JOIN Cad_Cliente ON Cad_Cidade.Código = Cad_Cliente.Cidade) ON Cad_Estado.Código = Cad_Cidade.Região SET Cad_Cliente.RG = "0" & [Cad_Cliente]![RG]
WHERE (((Cad_Cliente.RG) Is Not Null And (Cad_Cliente.RG)<>"ISENTO") AND ((Cad_Estado.Estado)="RS") AND ((Cad_Cliente.TPessoa)=2) AND ((Len([Cad_Cliente]![RG]))=9));

Bloco K

O bloco K é a versão digital em substituição ao Livro Registro de Controle de Produção e Estoque.
Ele tem o objetivo de prestar informações mensais da produção e respectivo consumo de insumos, bem como do estoque escriturado, com obrigatoriedade para os estabelecimentos industriais ou a eles equiparados pela legislação federal. Além disso, para os estabelecimentos atacadistas, podendo, a critério do Fisco, ser exigida de estabelecimento de contribuintes de outros setores

Caso o cliente precise do bloco K, realize os seguintes comandos:

Na Estoque_Itens é preciso marcar todas as linhas na coluna SPED_ProdFinal.
Os comandos abaixo fazem o preenchimento de acordo com a marcação do tipo de estoque do item:

UPDATE Estoque_Itens SET Estoque_Itens.SPED_ProdFInal = 1;
UPDATE Estoque_Itens SET Estoque_Itens.TipoEstoqueSPED = "00"
WHERE (((Estoque_Itens.Mercadoria)=True));
UPDATE Estoque_Itens SET Estoque_Itens.TipoEstoqueSPED = "04"
WHERE (((Estoque_Itens.Produto)=True));

Também será necessário entrar no SIEM e habilitar as Config. II:

  • SPED: OMITIR REG ORDEM PRODUCAO (K200)
  • SPED: K230 SOMENTE PRODUTO FINAL SEM ORDEM PRODUCAO

Com o valor 1 - Sim.


Bloco H

O Bloco H é um dos registros transmitido como um dos módulos da EFD, sendo o registro destinado a informar para a Receita Federal tudo sobre o inventário físico das empresas.

Se for realizada a geração do arquivo com o Bloco H, realize o comando abaixo

Inserir o mesmo código do produto na coluna SPEDContaContabil

UPDATE Estoque_Itens SET Estoque_Itens.SPEDContaContabil = [Estoque_Itens]![Código]
WHERE (((Estoque_Itens.SPEDContaContabil)="" Or (Estoque_Itens.SPEDContaContabil) Is Null));