Skip to content

Registro C176 SPED ICMS/IPI - Ressarcimento de ICMS em Operações com Substituição Tributária ​

Registro C176 SPED ICMS/IPI - Ressarcimento de ICMS em Operações com Substituição Tributária

Este registro deve ser informado quando da escrituração de documento fiscal, que acoberte operação que represente desfazimento de substituição tributária realizada em operações anteriores.

O documento informado neste registro deverá ser diferente do documento informado no registro pai (C100), pois é o documento referente à(s) última(s) aquisição(ões) da mercadoria e à retenção do imposto.

Para atender todas as opções de Tipo de Remetente do registro C176 foi criada a aba “Substituto ST” dentro da Tributação Item Produto do Documento Nota Fiscal de Compra e também utilizadas as informações da aba Arrecadação Referenciado (na imagem renomeado para GNRE).

Registro de Notas Fiscais

Caminho da Tela: Compras > Notas Fiscais > Registrar Notas Fiscais de Compra

Quando o campo Chave NFe Retenção for informado as informações do Emissor, Número e Série não irão para o SPED

Definição dos campos no SPED:

NºCampoDescriçãoTipoTam.
1REGTexto fixo contendo "C176".C4
2COD_MOD_ ULT_ECódigo do modelo do documento fiscal relativa a última entrada.C2
3NUM_DOC_ ULT_ENúmero do documento fiscal relativa a última entrada.N9
4SER_ULT_ESérie do documento fiscal relativa a última entrada.C3
5DT_ULT_EData relativa a última entrada da mercadoria.N8
6COD_PART_ ULT_ECódigo do participante (emitente documento relativa a última entrada).C60
7QUANT_ULT_EQuantidade do item relativa a última entrada.N18,3
8VL_UNIT_ ULT_EValor unitário da mercadoria constante na NF relativa a última entrada inclusive despesas acessórias.N18,3
9VL_UNIT_ BC_STValor unitário da Base de Cálculo (BC) do imposto pago por substituição.N18,3
10CHAVE_NFE _ULT_ENúmero completo da chave da NFe relativo à última entrada.N44
11NUM_ITEM _ULT_ENúmero sequencial do item na NF entrada que corresponde à mercadoria objeto de pedido de ressarcimento.N3
12VL_UNIT_BC _ICMS_ULT_EValor unitário da base de cálculo da operação própria do remetente sob o regime comum de tributação.N15,2
13ALIQ_ICMS _ULT_EAlíquota do ICMS aplicável à última entrada da mercadoria.N15,2
14VL_UNIT_ LIMITE_BC _ICMS_ULT_EValor unitário da base de cálculo do ICMS relativo à última entrada da mercadoria, limitado ao valor da BC da retenção (corresponde ao menor valor entre os campos VL_UNIT_BC_ST e VL_UNIT_BC_ICMS_ULT_E ).N15,2
15VL_UNIT_ICMS _ULT_EValor unitário do crédito de ICMS sobre operações próprias do remetente, relativo à última entrada da mercadoria, decorrente da quebra da ST - equivalente a multiplicação entre os campos 13 e 14.N18,3
16ALIQ_ST_ ULT_EAlíquota do ICMS ST relativa à última entrada da mercadoria.N15,2
17VL_UNIT_RESValor unitário do ressarcimento (parcial ou completo) de ICMS decorrente da quebra da ST.N18,3
18COD_RESP _RETCódigo que indica o responsável pela retenção do ICMS-ST:                          1-Remetente Direto; 2-Remetente Indireto; 3-Próprio declarante.N1
19COD_MOT _RESCódigo do motivo do ressarcimento: 1 - Venda para outra UF; 2 - Saída amparada por isenção/não incidência; 3 - Perda ou deterioração; 4 - Furto ou roubo; 5 - Exportação; 9 - Outros.N1
20CHAVE_NFE _RETNúmero completo da chave da NF-e emitida pelo substituto, na qual consta o valor do ICMS-ST retido.N44
21COD_PART _NFE_ RETCódigo do participante do emitente da NF-e em que houve a retenção do ICMS-ST - campo 02 do Registro 0150.C60
22SER_NFE _RETSérie da NF-e em que houve a retenção do ICMSST.C3
23NUM_NFE _RETNúmero da NF-e em que houve a retenção do ICMS-ST.N9
24ITEM_NFE _RETNúmero sequencial do item na NF-e em que houve a retenção do ICMS-ST, que corresponde à mercadoria objeto de pedido de ressarcimento.N3
25COD_DACódigo do modelo do documento de arrecadação: 0 - documento estádual de arrecadação; 1 - GNRE.C1
26NUM_DANúmero do documento de arrecadação estádual, se houver.C-

Definição e Origem dos campos no M3:

NºCampoDescrição
1REG"C176".
2COD_MOD_ ULT_EInformações do último documento de entrada do produto em informado no C170. Atualmente está filtrando apenas notas fiscais de compra.
3NUM_DOC_ ULT_E
4SER_ULT_E
5DT_ULT_E
6COD_PART_ ULT_E
7QUANT_ULT_E
8VL_UNIT_ ULT_E
9VL_UNIT_ BC_STSoma dos valores Base ICMS Retido e Base Retido Observação / Quantidade
10CHAVE_NFE _ULT_ENúmero completo da chave da NFe relativo à última entrada.
11NUM_ITEM _ULT_ENúmero sequencial do item na NF entrada.
12VL_UNIT_BC _ICMS_ULT_ESoma dos valores Base ICMS e Base ICMS Observação / Quantidade
13ALIQ_ICMS _ULT_ESe > 0, “Alíquota ICMS”, senão calcula ICMSValorOBS / BASEICMSOBS
14VL_UNIT_ LIMITE_BC _ICMS_ULT_EMenor valor entre os campos “9 - VL_UNIT_BC_ST” e ”12 -  VL_UNIT_BC_ICMS_ULT_E“.
15VL_UNIT_ICMS _ULT_EValor ICMS + Valor ICMS Observação / Quantidade da última compra
16ALIQ_ST_ ULT_EAlíquota ICMS Retido da última compra
17VL_UNIT_RES(“9 - VL_UNIT_BC_ST” X  “16 - ALIQ_ST_ULT_E”) – “15 - VL_UNIT_ICMS_ULT_E”.
18COD_RESP _RET1-Remetente Direto: Demais documentos (Verifica do 3 para o 1). 2-Remetente Indireto: Quando preenchidas informações do Substituto ST dentro do item do documento da última entrada. 3-Próprio declarante: Quando possui Arrecadação Referenciada no documento da última entrada referenciando uma Dare ou GNRE
19COD_MOT _RES1 - Venda para outra UF: Se for devolução com CFOP “5.927” ou venda normal 9 – Outros: Se for devolução com outra CFOP
20CHAVE_NFE _RETInformações do Substituto ST preenchidas na Tributação do Item Produto do último documento de entrada. Se o campo “20 - CHAVE_NFE _RET” for preenchido os campos 21, 22 e 23 nãoserão enviados.
21COD_PART _NFE_ RET
22SER_NFE _RET
23NUM_NFE _RET
24ITEM_NFE _RET
25COD_DAInformações preenchidas na parte Arrecadação Referenciada do último documento de entrada.
26NUM_DA

A lógica para geração do registro consiste na união de duas rotinas, onde a primeirá considera as notas fiscais de Devolução de Compra (Fornecedor) realizadas com as CFOPS 5.603, 6.603 ou 5.927 e que contenham na última nota de compra do produto Valor de ICMS Retido +  Valor de ICMS Retido Observação  maior que 0, Valor de ICMS + Valor de ICMS Observação > 0 e o campo Alíquota de ICMS Retido preenchido.

A segunda rotina verifica todas as Notas de Saída realizadas com CFOPs iniciadas por “6.” que contenham na última nota de compra do produto Valor de ICMS Retido +  Valor de ICMS Retido Observação  maior que 0, Valor de ICMS + Valor de ICMS Observação > 0 e o campo Alíquota de ICMS Retido preenchido.

Consultas para auxiliar na conferência dos registros gerados:

SELECT f.NRODOCTO Nota_Fiscal, f.dataemi Data_Emissao, g.codigo+' - '+g.descricao Item, c.qtde Quantidade, c.VALTOTITEM Total_Nota, c.VALICMSSUBTRIB ST_Nota,

a.nrodoculten Ultima_Compra, a.DATAULTEN Data_Compra, coalescE(h.CNPJ, h.cpf) CNPJ_Emissor, a.QTDEULTENT Quantidade_Entrada, A.VALUNITULTEN Val_UNit_Ult_Ent,

a.VALBCULTENT Base_Ult_ent, A.ALIQICMSULTENT Aliq_ICMS_ULT_ENT, a.VALICMSULTENT ICMS_Unit_Ult_Ent,

A.BASECALCSUBTRIB, A.ALIQICMSSTULTENT Aliq_ST_ULT_Ent, A.VALUNIBC Base_Unitario, A.VALRESSARC Val_Ressarc_Uni, A.VALICMSULTENT*c.qtde Recuperacao_ICMS, A.VALRESSARC*C.qtde Ressarcimento_ST

FROM M3_REGEFDC176 A INNER JOIN M3_REGEFD B ON A.IDA = B.ID inner join m3_regefdc170 c on a.idf_regefdc170 = c.id

inner join m3_regefdc100 f on c.IDF_REGEFDC100 = f.id

inner join M3_BLOCOSEFD d on b.IDF_BLOCOSEFD = d.id inner join m3_efd e on d.idf_efd = e.id

inner join m3_regefd0200 g on c.coditem = g.codigo inner join m3_regefd g1 on g.ida = g1.id inner join M3_BLOCOSEFD g2 on g1.IDF_BLOCOSEFD = g2.id and g2.IDF_EFD = e.id

inner join m3_regefd0150 h on a.CODPARTULTEN = h.codigo inner join m3_regefd h1 on h.ida = h1.id inner join M3_BLOCOSEFD h2 on h1.IDF_BLOCOSEFD = h2.id and h2.IDF_EFD = e.id

left join m3_regefd0150 i on a.CODPARNFERET = i.codigo left join m3_regefd i1 on i.ida = i1.id left join M3_BLOCOSEFD i2 on i1.IDF_BLOCOSEFD = i2.id and i2.IDF_EFD = e.id

WHERE e.id = (select maX(x.id) from m3_efd x where x.datainicio = '28/09/2017' and x.datafim = '28/09/2017');

SELECT a.CODMODULTEN, a.NRODOCULTEN, a.SERIEULTEN, a.DATAULTEN, coalescE(h.CNPJ, h.cpf) CNPJ_Emissor_Ult_Comp, h.nome Nome_Emissor_Ult_comp, a.QTDEULTENT, a.VALUNITULTEN,

a.VALUNIBC, a.CHVDOCULTENT, a.NUMITEMDOC, a.VALBCULTENT, a.ALIQICMSULTENT, a.VALUNIBC, a.VALICMSULTENT, a.ALIQICMSSTULTENT, a.VALRESSARC, a.CODRESPRET, a.CODMOTRESSARC,

a.CHVDOCRET, a.CODPARNFERET, a.SERDOCRET, a.NUMDOCRET, a.SERDOCRET, a.CODMODDOCARR, a.NUMDOCARREC

FROM M3_REGEFDC176 A INNER JOIN M3_REGEFD B ON A.IDA = B.ID inner join m3_regefdc170 c on a.idf_regefdc170 = c.id

inner join m3_regefdc100 f on c.IDF_REGEFDC100 = f.id

inner join M3_BLOCOSEFD d on b.IDF_BLOCOSEFD = d.id inner join m3_efd e on d.idf_efd = e.id

inner join m3_regefd0200 g on c.coditem = g.codigo inner join m3_regefd g1 on g.ida = g1.id inner join M3_BLOCOSEFD g2 on g1.IDF_BLOCOSEFD = g2.id and g2.IDF_EFD = e.id

inner join m3_regefd0150 h on a.CODPARTULTEN = h.codigo inner join m3_regefd h1 on h.ida = h1.id inner join M3_BLOCOSEFD h2 on h1.IDF_BLOCOSEFD = h2.id and h2.IDF_EFD = e.id

left join m3_regefd0150 i on a.CODPARNFERET = i.codigo left join m3_regefd i1 on i.ida = i1.id left join M3_BLOCOSEFD i2 on i1.IDF_BLOCOSEFD = i2.id and i2.IDF_EFD = e.id

WHERE e.id = (select maX(x.id) from m3_efd x where x.datainicio = '28/09/2017' and x.datafim = '28/09/2017');