14.8.2.2. ICMS 4.00 [06-05-18]
14.8.2.2.1. ICMS 4.00-CSOSN [15-08-17]
14.8.2.2. ICMS 4.00 [06-05-18]
« Anterior
14.8.2.3. ICMS 4.00 NT2020/005 [11-07-21]
Próximo »

14.8.2.2.1. ICMS 4.00-CSOSN [15-08-17]

A partir da versão 2.00 do leiaute da NF-e, o contribuinte emissor do SIMPLES NACIONAL deve informar um dos seguintes Código de Situação da Operação - SIMPLES NACIONAL (CSOSN) em substituição ao CST:

Base legal da informação do CRT e do CSOSN

A necessidade de informar o CSOSN na NF-e está prevista o § 5º da cláusula terceira do AJUSTE SINIEF 07/05, in verbis:

"Cláusula terceira A NF-e deverá ser emitida com base em leiaute estabelecido no "Manual de Integração - Contribuinte", por meio de software desenvolvido ou adquirido pelo contribuinte ou disponibilizado pela administração tributária, observadas as seguintes formalidades:

§ 5º A partir da utilização do leiaute definido na versão 4.01 do Manual de Integração - Contribuinte deverão ser indicados na NF-e o Código de Regime Tributário - CRT e, quando for o caso, o Código de Situação da Operação no Simples Nacional - CSOSN, conforme definidos no Anexo."


ANEXO ÚNICO - CÓDIGOS DE DETALHAMENTO DO REGIME E DA SITUAÇÃO

TABELA A - Código de Regime Tributário - CRT

1 - Simples Nacional
2 - Simples Nacional - excesso de sublimite da receita bruta
3 - Regime Normal

NOTAS EXPLICATIVAS:

O código 1 será preenchido pelo contribuinte quando for optante pelo Simples Nacional.
O código 2 será preenchido pelo contribuinte optante pelo Simples Nacional mas que tiver ultrapassado o sublimite de receita bruta fixado pelo estado/DF e estiver impedido de recolher o ICMS/ISS por esse regime, conforme arts. 19 e 20 da LC 123/06.
O código 3 será preenchido pelo contribuinte que não estiver na situação 1 ou 2.

TABELA B - Código de Situação da Operação no Simples Nacional - CSOSN

101 - Tributada pelo Simples Nacional com permissão de crédito - Classificam-se neste código as operações que permitem a indicação da alíquota do ICMS devido no Simples Nacional e o valor do crédito correspondente.

102 - Tributada pelo Simples Nacional sem permissão de crédito - Classificam-se neste código as operações que não permitem a indicação da alíquota do ICMS devido pelo Simples Nacional e do valor do crédito, e não estejam abrangidas nas hipóteses dos códigos 103, 203, 300, 400, 500 e 900.

103 - Isenção do ICMS no Simples Nacional para faixa de receita bruta - Classificam-se neste código as operações praticadas por optantes pelo Simples Nacional contemplados com isenção concedida para faixa de receita bruta nos termos da Lei Complementar nº 123, de 2006.

201 - Tributada pelo Simples Nacional com permissão de crédito e com cobrança do ICMS por substituição tributária - Classificam-se neste código as operações que permitem a indicação da alíquota do ICMS devido pelo Simples Nacional e do valor do crédito, e com cobrança do ICMS por substituição tributária.

202 - Tributada pelo Simples Nacional sem permissão de crédito e com cobrança do ICMS por substituição tributária - Classificam-se neste código as operações que não permitem a indicação da alíquota do ICMS devido pelo Simples Nacional e do valor do crédito, e não estejam abrangidas nas hipóteses dos códigos 103, 203, 300, 400, 500 e 900, e com cobrança do ICMS por substituição tributária.

203 - Isenção do ICMS no Simples Nacional para faixa de receita bruta e com cobrança do ICMS por substituição tributária - Classificam-se neste código as operações praticadas por optantes pelo Simples Nacional contemplados com isenção para faixa de receita bruta nos termos da Lei Complementar nº 123, de 2006, e com cobrança do ICMS por substituição tributária.

300 - Imune - Classificam-se neste código as operações praticadas por optantes pelo Simples Nacional contempladas com imunidade do ICMS.

400 - Não tributada pelo Simples Nacional - Classificam-se neste código as operações praticadas por optantes pelo Simples Nacional não sujeitas à tributação pelo ICMS dentro do Simples Nacional.

500 - ICMS cobrado anteriormente por substituição tributária (substituído) ou por antecipação - Classificam-se neste código as operações sujeitas exclusivamente ao regime de substituição tributária na condição de substituído tributário ou no caso de antecipações.

900 - Outros - Classificam-se neste código as demais operações que não se enquadrem nos códigos 101, 102, 103, 201, 202, 203, 300, 400 e 500.

NOTA EXPLICATIVA:

O Código de Situação da Operação no Simples Nacional - CSOSN será usado na Nota Fiscal Eletrônica exclusivamente quando o Código de Regime Tributário - CRT for igual a “1”, e substituirá os códigos da Tabela B - Tributação pelo ICMS do Anexo Código de Situação Tributária - CST do Convênio s/nº de 15 de dezembro de 1970.

Tabela de Correlação CST x CSOSN

Regime de Tributação Simples Nacional excesso do sublimite da receita bruta (CRT=2)
Regime normal (CRT=3)
Simples Nacional ME
(CRT=1)
Simples Nacional EPP
ICMS sob faturamento(CRT=1)
Simples Nacional EPP
valor ICMS Fixo (CRT=1)
Tributação Normal 00 - Tributada integralmente;
20 - Com redução de base de cálculo;
90 - Outros;
103 - Isenção do ICMS no Simples Nacional para faixa de receita bruta 101 - Tributada pelo Simples Nacional com permissão de crédito 102 - Tributada pelo Simples Nacional sem permissão de crédito
Emissor responsável pela retenção do ICMS por ST 10 - Tributada e com cobrança do ICMS por substituição tributária;
30 - Isenta ou não tributada e com cobrança do ICMS por substituição tributária;
70 - Com redução de base de cálculo e cobrança do ICMS por substituição tributária;
90 - Outros;
203 - Isenção do ICMS no Simples Nacional para faixa de receita bruta e com cobrança do ICMS por substituição tributária 201 - Tributada pelo Simples Nacional com permissão de crédito e com cobrança do ICMS por substituição tributária; 202 - Tributada pelo Simples Nacional sem permissão de crédito e com cobrança do ICMS por substituição tributária
Emissor substituído (ICMS cobrado anteriormente) 60 - ICMS cobrado anteriormente por substituição tributária; 500 - ICMS cobrado anteriormente por substituição tributária (substituído) ou por antecipação; 500 - ICMS cobrado anteriormente por substituição tributária (substituído) ou por antecipação; 500 - ICMS cobrado anteriormente por substituição tributária (substituído) ou por antecipação
Importação 00 - Tributada integralmente;
20 - Com redução de base de cálculo;
90 - Outros;
900 - Outros 900 - Outros 900 - Outros
Exportação 41 - Não tributada 300 - Imune 300 - Imune 300 - Imune
Operações Isentas:
Remessa para Conserto
Demonstração
etc.
40 - Isenta;
50 - Suspensão
400 - Não tributada pelo Simples Nacional 400 - Não tributada pelo Simples Nacional 400 - Não tributada pelo Simples Nacional

Funcionalidade para gerar as informações do ICMS do item de produto da NF-e versão 4.00.

O preenchimento dos campos do grupo de ICMS são variáveis e dependem do CST - Código da Situação Tributária ou do CSOSN - código da Situação da operação do ICMS no Simples Nacional do item de produto.

CSOSN 101 - Tributada pelo Simples Nacional com permissão de crédito

O CSOSN 101 deve ser utilizado na situação em que o emissor optante pelo SIMPLES NACIONAL (CRT=1) promove a circulação de mercadoria com tributação normal e existe permissão de crédito do valor que o emissor paga via DAS para o destinatário da mercadoria.

Parâmetros que devem ser informador na funcionalidade ICMS400:

nome tipo tam. obrig. descrição
orig string 1 sim informar o código da origem da mercadoria:
codificação válida a partir de 01/10/2013 [28-09-13]
0 - Nacional, exceto as indicadas nos códigos 3, 4, 5 e 8;
1 - Estrangeira - Importação direta, exceto a indicada no código 6;
2 - Estrangeira - Adquirida no mercado interno, exceto a indicada no código 7;
3 - Nacional, mercadoria ou bem com Conteúdo de Importação superior a 40% e inferior ou igual a 70%;
4 - Nacional, cuja produção tenha sido feita em conformidade com os processos produtivos básicos de que tratam as legislações citadas nos Ajustes;
5 - Nacional, mercadoria ou bem com Conteúdo de Importação inferior ou igual a 40%;
6 - Estrangeira - Importação direta, sem similar nacional, constante em lista da CAMEX e gás natural;
7 - Estrangeira - Adquirida no mercado interno, sem similar nacional, constante em lista da CAMEX e gás natural.
8 - Nacional, mercadoria ou bem com Conteúdo de Importação superior a 70%;
CST string 2,3 sim informar 101.
pCredSN double 15,2 depende informar o Alíquota aplicável de cálculo do crédito (Simples Nacional)
vCredICMSSN double 15,2 depende informar o Valor crédito do ICMS que pode ser aproveitado nos termos do art. 23 da LC 123 (Simples Nacional)


Atenção

  • O pCredSN é definido na legislação do Simples Nacional e depende do faturamento dos meses anteriores;
  • O vCredICMSSN é valor que o destinatário pode tomar como crédito;
  • Os demais parâmetros devem ser informados com zero.
  • Só acumular o vProd que tenham indTot=1 no vProd do grupo ICMSTot;

Exemplo de XML para CRT=1 e CSOSN = 101

<ICMS>
   <ICMSSN101>
       <orig>0</orig>
       <CSOSN>101</CSOSN>
       <pCredSN>1.25</pCredSN>
       <vCredICMSSN>12.96</vCredICMSSN>
   </ICMSSN101>
</ICMS>


Importante

O trecho do XML foi formatado para uma melhor visualização, a mensagem original não tem formatação.

Vale observar que a formatação pode corromper a assinatura digital, além de ocupar espaço e ser desnecessária, pois os browser exibem formatado.

Exemplo Delphi

procedure TForm1.ICMSCSOSN101(Sender: TObject);
 
var
Util: Olevariant;
ICMS : widestring;
ICMS_orig : widestring;
ICMS_CST  : widestring;
ICMS_modBC: integer;
ICMS_pRedBC: currency;
ICMS_vBC : currency;
ICMS_pICMS : currency;
ICMS_vICMS : currency;
ICMS_modBCST : integer;
ICMS_pMVAST : currency;
ICMS_pRedBCST : currency;
ICMS_vBCST : currency;
ICMS_pICMSST : currency;
ICMS_vICMSST : currency;
ICMS_vBCSTRet : currency;
ICMS_vICMSSRet : currency;
ICMS_vBCSTDest : currency;
ICMS_vICMSSTDest : currency;
ICMS_motDesICMS : integer;
ICMS_pBCOp : currency;
ICMS_UFST : widestring;
ICMS_pCredSN : currency;
ICMS_vCredICMSSN : currency;
ICMS_vICMSDeson : currency;
ICMS_vICMSOp : currency;
ICMS_pDif : currency;
ICMS_vICMSDif : currency;
//
//  campos novos da versão 4.00
//
ICMS_vBCFCP : Currency;
ICMS_pFCP : Currency;
ICMS_vFCP : Currency;
ICMS_vBCFCPST : Currency;
ICMS_pFCPST : Currency;
ICMS_vFCPST : Currency;
ICMS_vBCFCPSTRet : Currency;
ICMS_pFCPSTRet : Currency;
ICMS_vFCPSTRet : Currency;
ICMS_pST : Currency;
 
begin
 
ICMS_orig := '0';                   // informar a origem do produto
ICMS_CST := '101';                  // informar o CST (emissor RPA) ou CSOSN (emissor optante do Simples Nacional)
//
//           informações do ICMS da operação própria, somente para CST  = 00, 10, 20, 51 (depende da SEFAZ exigir), 70 e 90 (depende do caso)
//                                                                 CSOSN=900
//
ICMS_modBC := 0;
ICMS_pRedBC :=0;
ICMS_vBC  :=0;
ICMS_pICMS  :=0;
ICMS_vICMS  :=0;
//
//          informações do ICMS retido por Substituição Tributária, informar somente nos casos em que o emissor
//          retem o ICMS por ST do destinatário   CST   = 10, 30, 70 e 90 (depende do caso)
//                                                CSOSN = 201, 202, 203 e 900 (depende do caso)
//
ICMS_modBCST :=0;
ICMS_pMVAST  :=0;
ICMS_pRedBCST  :=0;
ICMS_vBCST  :=0;
ICMS_pICMSST  :=0;
ICMS_vICMSST  :=0;
//
//         informações do ICMS retido anteriormente por Substituição Tributária,
//         deve ser informado se a legislação exigir para os CST=60 e CSOSN=500
//
//         É aplicável quando o emissor adquiriu o produto que já teve a retenção do ICMS devido até a venda para
//         consumidor retido anteriormente.
//
//         Também deve ser informado nos casos de CST  = ICMSST
//
ICMS_vBCSTRet  :=0;
ICMS_vICMSSRet  :=0;
//
//
ICMS_vBCSTDest  :=0;
ICMS_vICMSSTDest  :=0;
//
//      deve ser informado quando existir alguma desoneração condicional para veículos novos, CST=40
//
ICMS_motDesICMS :=0;
//
//      percentual da BC da operação própria no caso de repartição de tributo
//
ICMS_pBCOp  :=0;
//
//      informar a UF para qual é devido o ICMS ST no caso de repartição do tributo
//
ICMS_UFST := '';
//
//      informar  para o CSOSN 101, 201 e 900 (depende do caso)
//
ICMS_pCredSN  :=1.25;
ICMS_vCredICMSSN  :=12.96;
//
//   Campos novos da versão 3.10
//
ICMS_vICMSDeson := 0;               // valor do ICMS desonerado
ICMS_vICMSOp := 0;                  // valor do ICMS da Operação - grupo 51 diferimento
ICMS_pDif := 0;                     // percentual do diferimento - grupo 51 diferimento
ICMS_vICMSDif := 0;                 // valor do ICMS diferido - grupo 51 diferimento
 
//
//   Campos novos da versão 4.00
//
ICMS_vBCFCP := 0;                    // valor BC FCP
ICMS_pFCP := 0;                     // percentual do FCP
ICMS_vFCP := 0;                     // valor do FCP
ICMS_vBCFCPST := 0;                  // valor BC FCP ST
ICMS_pFCPST := 0;                   // percentual do FCP ST
ICMS_vFCPST := 0;                   // valor do FCP ST
ICMS_vBCFCPSTRet := 0;              // valor BC FCP retido anteriormente por ST
ICMS_pFCPSTRet := 0;                // percentual do FCP retido anteriormente por ST
ICMS_vFCPSTRet := 0;                // valor do FCP retido anteriormente por ST
ICMS_pST := 0;                      // percentual da aliquota suportada pelo consumidor final 
 
Util := CreateOleObject('NFe_util_2G.util');
 
ICMS:=Util.icms400(ICMS_orig, ICMS_CST, ICMS_modBC,  ICMS_pRedBC,  ICMS_vBC,  ICMS_pICMS,  ICMS_vICMS,
                  ICMS_modBCST,  ICMS_pMVAST,  ICMS_pRedBCST,  ICMS_vBCST,  ICMS_pICMSST, ICMS_vICMSST,
                  ICMS_vBCSTRet,  ICMS_vICMSSRet,  ICMS_vBCSTDest,  ICMS_vICMSSTDest, ICMS_motDesICMS,
                  ICMS_pBCOp, ICMS_UFST,  ICMS_pCredSN,  ICMS_vCredICMSSN, ICMS_vICMSDeson, ICMS_vICMSOp, 
                  ICMS_pDif, ICMS_vICMSDif, ICMS_vBCFCP, ICMS_pFCP, ICMS_vFCP, ICMS_vBCFCPST, ICMS_pFCPST,
                  ICMS_vFCPST,  ICMS_vBCFCPSTRet, ICMS_pFCPSTRet, ICMS_vFCPSTRet, ICMS_pST);
 
MessageDlg('O fragmento XML gerado é: '+#13+#13+ICMS, mtInformation, [mbOk], 0);
 
end;

CSOSN 201 - Tributada pelo Simples Nacional com permissão de crédito e com cobrança do ICMS por substituição tributária

O CSOSN 201 deve ser utilizado na situação em que o emissor optante pelo SIMPLES NACIONAL (CRT=1), quando for responsável pela retenção do ICMS incidente nas operações subsequentes por Substituição Tributária e exista permissão de crédito do valor que o emissor paga via DAS para o destinatário da mercadoria.

Parâmetros que devem ser informador na funcionalidade ICMS400:

nome tipo tam. obrig. descrição
orig string 1 sim informar o código da origem da mercadoria:
codificação válida a partir de 01/10/2013 [28-09-13]
0 - Nacional, exceto as indicadas nos códigos 3, 4, 5 e 8;
1 - Estrangeira - Importação direta, exceto a indicada no código 6;
2 - Estrangeira - Adquirida no mercado interno, exceto a indicada no código 7;
3 - Nacional, mercadoria ou bem com Conteúdo de Importação superior a 40% e inferior ou igual a 70%;
4 - Nacional, cuja produção tenha sido feita em conformidade com os processos produtivos básicos de que tratam as legislações citadas nos Ajustes;
5 - Nacional, mercadoria ou bem com Conteúdo de Importação inferior ou igual a 40%;
6 - Estrangeira - Importação direta, sem similar nacional, constante em lista da CAMEX e gás natural;
7 - Estrangeira - Adquirida no mercado interno, sem similar nacional, constante em lista da CAMEX e gás natural.
8 - Nacional, mercadoria ou bem com Conteúdo de Importação superior a 70%;
CST string 2,3 sim informar 201.
modBCST inteiro 1 depende informar a modalidade de determinação da BC do ICMS ST:
0 - Preço tabelado ou máximo sugerido;
1 - Lista Negativa (valor);
2 - Lista Positiva (valor);
3 - Lista Neutra (valor);
4 - Margem Valor Agregado (%);
5 - Pauta (valor).
pMVAST double 5,2-4 depende informar o Percentual da Margem de Valor Adicionado ICMS ST
pRedBCST double 5,2-4 depende informar o Percentual de redução da BC ICMS ST
vBCST double 15,2 depende informar o Valor da BC do ICMS ST
pICMSST double 5,2-4 depende informar a Alíquota do ICMS ST
vICMSST double 15,2 depende informar o Valor do ICMS ST
pCredSN double 15,2 depende informar o Alíquota aplicável de cálculo do crédito (Simples Nacional)
vCredICMSSN double 15,2 depende informar o Valor crédito do ICMS que pode ser aproveitado nos termos do art. 23 da LC 123 (Simples Nacional)
vBCFCPST double 15,2 depende informar o Valor da Base de Cálculo do FCP retido por Substituição Tributária.
(campo novo)
PFCPST double 1,2-4 depende informar o Percentual do FCP retido por Substituição Tributária.
Nota: Percentual máximo de 2%, conforme a legislação. (campo novo)
VFCPST double 15,2 depende informar o Valor do FCP retido por Substituição Tributária.
(campo novo)


Atenção

  • Os valores informados em vBCST e vICMSST devem ser acumulados nos campos vBCST e vST do grupo ICMSTot.
  • O pCredSN é definido na legislação do Simples Nacional e depende do faturamento dos meses anteriores;
  • O vCredICMSSN é valor que o destinatário pode tomar como crédito;
  • Os demais parâmetros devem ser informados com zero.
  • Só acumular o vProd que tenham indTot=1 no vProd do grupo ICMSTot;

Consulte o responsável pela área tributária da empresa para identificar a fórmula de cálculo do ICMS ST.

Exemplo de XML para CRT=1 e CSOSN = 201

<ICMS>
   <ICMSSN201>
       <orig>0</orig>
       <CSOSN>201</CSOSN>
       <modBCST>4</modBCST>
       <pMVAST>100.00</pMVAST>
       <pRedBCST>10.00</pRedBCST>
       <vBCST>162.00</vBCST>
       <pICMSST>18.00</pICMSST>
       <vICMSST>12.96</vICMSST>
       <pCredSN>1.25</pCredSN>
       <vCredICMSSN>12.96</vCredICMSSN>
   </ICMSSN201>
</ICMS>


Importante

O trecho do XML foi formatado para uma melhor visualização, a mensagem original não tem formatação.

Vale observar que a formatação pode corromper a assinatura digital, além de ocupar espaço e ser desnecessária, pois os browser exibem formatado.

Exemplo Delphi

procedure TForm1.ICMSCSOSN201(Sender: TObject);
 
var
Util: Olevariant;
ICMS : widestring;
ICMS_orig : widestring;
ICMS_CST  : widestring;
ICMS_modBC: integer;
ICMS_pRedBC: currency;
ICMS_vBC : currency;
ICMS_pICMS : currency;
ICMS_vICMS : currency;
ICMS_modBCST : integer;
ICMS_pMVAST : currency;
ICMS_pRedBCST : currency;
ICMS_vBCST : currency;
ICMS_pICMSST : currency;
ICMS_vICMSST : currency;
ICMS_vBCSTRet : currency;
ICMS_vICMSSRet : currency;
ICMS_vBCSTDest : currency;
ICMS_vICMSSTDest : currency;
ICMS_motDesICMS : integer;
ICMS_pBCOp : currency;
ICMS_UFST : widestring;
ICMS_pCredSN : currency;
ICMS_vCredICMSSN : currency;
ICMS_vICMSDeson : currency;
ICMS_vICMSOp : currency;
ICMS_pDif : currency;
ICMS_vICMSDif : currency;
//
//  campos novos da versão 4.00
//
ICMS_vBCFCP : Currency;
ICMS_pFCP : Currency;
ICMS_vFCP : Currency;
ICMS_vBCFCPST : Currency;
ICMS_pFCPST : Currency;
ICMS_vFCPST : Currency;
ICMS_vBCFCPSTRet : Currency;
ICMS_pFCPSTRet : Currency;
ICMS_vFCPSTRet : Currency;
ICMS_pST : Currency;
 
begin
 
ICMS_orig := '0';                   // informar a origem do produto
ICMS_CST := '201';                  // informar o CST (emissor RPA) ou CSOSN (emissor optante do Simples Nacional)
//
//           informações do ICMS da operação própria, somente para CST  = 00, 10, 20, 51 (depende da SEFAZ exigir), 70 e 90 (depende do caso)
//                                                                 CSOSN=900
//
ICMS_modBC := 0;
ICMS_pRedBC :=0;
ICMS_vBC  :=0;
ICMS_pICMS  :=0;
ICMS_vICMS  :=0;
//
//          informações do ICMS retido por Substituição Tributária, informar somente nos casos em que o emissor
//          retem o ICMS por ST do destinatário   CST   = 10, 30, 70 e 90 (depende do caso)
//                                                CSOSN = 201, 202, 203 e 900 (depende do caso)
//
ICMS_modBCST :=4;
ICMS_pMVAST  :=100;
ICMS_pRedBCST  :=10;
ICMS_vBCST  :=162;
ICMS_pICMSST  :=18;
ICMS_vICMSST  :=12.96;
//
//         informações do ICMS retido anteriormente por Substituição Tributária,
//         deve ser informado se a legislação exigir para os CST=60 e CSOSN=500
//
//         É aplicável quando o emissor adquiriu o produto que já teve a retenção do ICMS devido até a venda para
//         consumidor retido anteriormente.
//
//         Também deve ser informado nos casos de CST  = ICMSST
//
ICMS_vBCSTRet  :=0;
ICMS_vICMSSRet  :=0;
//
//
ICMS_vBCSTDest  :=0;
ICMS_vICMSSTDest  :=0;
//
//      deve ser informado quando existir alguma desoneração condicional para veículos novos, CST=40
//
ICMS_motDesICMS :=0;
//
//      percentual da BC da operação própria no caso de repartição de tributo
//
ICMS_pBCOp  :=0;
//
//      informar a UF para qual é devido o ICMS ST no caso de repartição do tributo
//
ICMS_UFST := '';
//
//      informar  para o CSOSN 101, 201 e 900 (depende do caso)
//
ICMS_pCredSN  :=1.25;
ICMS_vCredICMSSN  :=12.96;
 
//
//   Campos novos da versão 3.10
//
ICMS_vICMSDeson := 0;               // valor do ICMS desonerado
ICMS_vICMSOp := 0;                  // valor do ICMS da Operação - grupo 51 diferimento
ICMS_pDif := 0;                     // percentual do diferimento - grupo 51 diferimento
ICMS_vICMSDif := 0;                 // valor do ICMS diferido - grupo 51 diferimento
 
//
//   Campos novos da versão 4.00
//
ICMS_vBCFCP := 0;                    // valor BC FCP
ICMS_pFCP := 0;                     // percentual do FCP
ICMS_vFCP := 0;                     // valor do FCP
ICMS_vBCFCPST := 0;                  // valor BC FCP ST
ICMS_pFCPST := 0;                   // percentual do FCP ST
ICMS_vFCPST := 0;                   // valor do FCP ST
ICMS_vBCFCPSTRet := 0;              // valor BC FCP retido anteriormente por ST
ICMS_pFCPSTRet := 0;                // percentual do FCP retido anteriormente por ST
ICMS_vFCPSTRet := 0;                // valor do FCP retido anteriormente por ST
ICMS_pST := 0;                      // percentual da aliquota suportada pelo consumidor final 
 
Util := CreateOleObject('NFe_util_2G.util');
 
ICMS:=Util.icms400(ICMS_orig, ICMS_CST, ICMS_modBC,  ICMS_pRedBC,  ICMS_vBC,  ICMS_pICMS,  ICMS_vICMS,
                  ICMS_modBCST,  ICMS_pMVAST,  ICMS_pRedBCST,  ICMS_vBCST,  ICMS_pICMSST, ICMS_vICMSST,
                  ICMS_vBCSTRet,  ICMS_vICMSSRet,  ICMS_vBCSTDest,  ICMS_vICMSSTDest, ICMS_motDesICMS,
                  ICMS_pBCOp, ICMS_UFST,  ICMS_pCredSN,  ICMS_vCredICMSSN, ICMS_vICMSDeson, ICMS_vICMSOp, 
                  ICMS_pDif, ICMS_vICMSDif, ICMS_vBCFCP, ICMS_pFCP, ICMS_vFCP, ICMS_vBCFCPST, ICMS_pFCPST,
                  ICMS_vFCPST,  ICMS_vBCFCPSTRet, ICMS_pFCPSTRet, ICMS_vFCPSTRet, ICMS_pST);
 
MessageDlg('O fragmento XML gerado é: '+#13+#13+ICMS, mtInformation, [mbOk], 0);
 
end;

CSOSN 300 - Imune

O CSOSN 300 deve ser utilizado quando o emissor optante pelo SIMPLES NACIONAL (CRT=1), promove operação que tenha imunidade como é o caso da exportação, venda de livros, etc.

Parâmetros que devem ser informador na funcionalidade ICMS400:

nome tipo tam. obrig. descrição
orig string 1 sim informar o código da origem da mercadoria:
codificação válida a partir de 01/10/2013 [28-09-13]
0 - Nacional, exceto as indicadas nos códigos 3, 4, 5 e 8;
1 - Estrangeira - Importação direta, exceto a indicada no código 6;
2 - Estrangeira - Adquirida no mercado interno, exceto a indicada no código 7;
3 - Nacional, mercadoria ou bem com Conteúdo de Importação superior a 40% e inferior ou igual a 70%;
4 - Nacional, cuja produção tenha sido feita em conformidade com os processos produtivos básicos de que tratam as legislações citadas nos Ajustes;
5 - Nacional, mercadoria ou bem com Conteúdo de Importação inferior ou igual a 40%;
6 - Estrangeira - Importação direta, sem similar nacional, constante em lista da CAMEX e gás natural;
7 - Estrangeira - Adquirida no mercado interno, sem similar nacional, constante em lista da CAMEX e gás natural.
8 - Nacional, mercadoria ou bem com Conteúdo de Importação superior a 70%;
CST string 2,3 sim informar 300.


Atenção

  • Os demais parâmetros devem ser informados com zero.
  • Só acumular o vProd que tenham indTot=1 no vProd do grupo ICMSTot;

Exemplo de XML para CRT=1 e CSOSN = 300

<ICMS>
   <ICMSSN102>
       <orig>0</orig>
       <CSOSN>300</CSOSN>
   </ICMSSN102>
</ICMS>


Importante

O trecho do XML foi formatado para uma melhor visualização, a mensagem original não tem formatação.

Vale observar que a formatação pode corromper a assinatura digital, além de ocupar espaço e ser desnecessária, pois os browser exibem formatado.

Exemplo Delphi

procedure TForm1.ICMSCSOSN300(Sender: TObject);
var
Util: Olevariant;
ICMS : widestring;
ICMS_orig : widestring;
ICMS_CST  : widestring;
ICMS_modBC: integer;
ICMS_pRedBC: currency;
ICMS_vBC : currency;
ICMS_pICMS : currency;
ICMS_vICMS : currency;
ICMS_modBCST : integer;
ICMS_pMVAST : currency;
ICMS_pRedBCST : currency;
ICMS_vBCST : currency;
ICMS_pICMSST : currency;
ICMS_vICMSST : currency;
ICMS_vBCSTRet : currency;
ICMS_vICMSSRet : currency;
ICMS_vBCSTDest : currency;
ICMS_vICMSSTDest : currency;
ICMS_motDesICMS : integer;
ICMS_pBCOp : currency;
ICMS_UFST : widestring;
ICMS_pCredSN : currency;
ICMS_vCredICMSSN : currency;
ICMS_vICMSDeson : currency;
ICMS_vICMSOp : currency;
ICMS_pDif : currency;
ICMS_vICMSDif : currency;
//
//  campos novos da versão 4.00
//
ICMS_vBCFCP : Currency;
ICMS_pFCP : Currency;
ICMS_vFCP : Currency;
ICMS_vBCFCPST : Currency;
ICMS_pFCPST : Currency;
ICMS_vFCPST : Currency;
ICMS_vBCFCPSTRet : Currency;
ICMS_pFCPSTRet : Currency;
ICMS_vFCPSTRet : Currency;
ICMS_pST : Currency;
 
begin
 
ICMS_orig := '0';                   // informar a origem do produto
ICMS_CST := '300';                  // informar o CST (emissor RPA) ou CSOSN (emissor optante do Simples Nacional)
//
//           informações do ICMS da operação própria, somente para CST  = 00, 10, 20, 51 (depende da SEFAZ exigir), 70 e 90 (depende do caso)
//                                                                 CSOSN=900
//
ICMS_modBC := 0;
ICMS_pRedBC :=0;
ICMS_vBC  :=0;
ICMS_pICMS  :=0;
ICMS_vICMS  :=0;
//
//          informações do ICMS retido por Substituição Tributária, informar somente nos casos em que o emissor
//          retem o ICMS por ST do destinatário   CST   = 10, 30, 70 e 90 (depende do caso)
//                                                CSOSN = 201, 202, 203 e 900 (depende do caso)
//
ICMS_modBCST :=0;
ICMS_pMVAST  :=0;
ICMS_pRedBCST  :=0;
ICMS_vBCST  :=0;
ICMS_pICMSST  :=0;
ICMS_vICMSST  :=0;
//
//         informações do ICMS retido anteriormente por Substituição Tributária,
//         deve ser informado se a legislação exigir para os CST=60 e CSOSN=500
//
//         É aplicável quando o emissor adquiriu o produto que já teve a retenção do ICMS devido até a venda para
//         consumidor retido anteriormente.
//
//         Também deve ser informado nos casos de CST  = ICMSST
//
ICMS_vBCSTRet  :=0;
ICMS_vICMSSRet  :=0;
//
//
ICMS_vBCSTDest  :=0;
ICMS_vICMSSTDest  :=0;
//
//      deve ser informado quando existir alguma desoneração condicional para veículos novos, CST=40
//
ICMS_motDesICMS :=0;
//
//      percentual da BC da operação própria no caso de repartição de tributo
//
ICMS_pBCOp  :=0;
//
//      informar a UF para qual é devido o ICMS ST no caso de repartição do tributo
//
ICMS_UFST := '';
//
//      informar  para o CSOSN 101, 201 e 900 (depende do caso)
//
ICMS_pCredSN  :=0;
ICMS_vCredICMSSN  :=0;
 
//
//   Campos novos da versão 3.10
//
ICMS_vICMSDeson := 0;               // valor do ICMS desonerado
ICMS_vICMSOp := 0;                  // valor do ICMS da Operação - grupo 51 diferimento
ICMS_pDif := 0;                     // percentual do diferimento - grupo 51 diferimento
ICMS_vICMSDif := 0;                 // valor do ICMS diferido - grupo 51 diferimento
 
//
//   Campos novos da versão 4.00
//
ICMS_vBCFCP := 0;                    // valor BC FCP
ICMS_pFCP := 0;                     // percentual do FCP
ICMS_vFCP := 0;                     // valor do FCP
ICMS_vBCFCPST := 0;                  // valor BC FCP ST
ICMS_pFCPST := 0;                   // percentual do FCP ST
ICMS_vFCPST := 0;                   // valor do FCP ST
ICMS_vBCFCPSTRet := 0;              // valor BC FCP retido anteriormente por ST
ICMS_pFCPSTRet := 0;                // percentual do FCP retido anteriormente por ST
ICMS_vFCPSTRet := 0;                // valor do FCP retido anteriormente por ST
ICMS_pST := 0;                      // percentual da aliquota suportada pelo consumidor final 
 
Util := CreateOleObject('NFe_util_2G.util');
 
ICMS:=Util.icms400(ICMS_orig, ICMS_CST, ICMS_modBC,  ICMS_pRedBC,  ICMS_vBC,  ICMS_pICMS,  ICMS_vICMS,
                  ICMS_modBCST,  ICMS_pMVAST,  ICMS_pRedBCST,  ICMS_vBCST,  ICMS_pICMSST, ICMS_vICMSST,
                  ICMS_vBCSTRet,  ICMS_vICMSSRet,  ICMS_vBCSTDest,  ICMS_vICMSSTDest, ICMS_motDesICMS,
                  ICMS_pBCOp, ICMS_UFST,  ICMS_pCredSN,  ICMS_vCredICMSSN, ICMS_vICMSDeson, ICMS_vICMSOp, 
                  ICMS_pDif, ICMS_vICMSDif, ICMS_vBCFCP, ICMS_pFCP, ICMS_vFCP, ICMS_vBCFCPST, ICMS_pFCPST,
                  ICMS_vFCPST,  ICMS_vBCFCPSTRet, ICMS_pFCPSTRet, ICMS_vFCPSTRet, ICMS_pST);
 
MessageDlg('O fragmento XML gerado é: '+#13+#13+ICMS, mtInformation, [mbOk], 0);
 
end;

CSOSN 500 - ICMS cobrado anteriormente por substituição tributária (substituído) ou por antecipação

O CSOSN 500 deve ser utilizado quando o emissor optante pelo SIMPLES NACIONAL (CRT=1), promove dá a saída de mercadorias que já tiveram o ICMS retido anteriormente por Substituição Tributária.

É a situação tributário em que o emissor optante pelo SIMPLES NACIONAL (CRT=1) comercializa a mercadoria que já teve retenção antecipada do ICMS devido por Substituição Tributária.

Este CSOSN equivale ao CST=60 do Regime Normal.

Parâmetros que devem ser informador na funcionalidade ICMS400:

nome tipo tam. obrig. descrição
orig string 1 sim informar o código da origem da mercadoria:
codificação válida a partir de 01/10/2013 [28-09-13]
0 - Nacional, exceto as indicadas nos códigos 3, 4, 5 e 8;
1 - Estrangeira - Importação direta, exceto a indicada no código 6;
2 - Estrangeira - Adquirida no mercado interno, exceto a indicada no código 7;
3 - Nacional, mercadoria ou bem com Conteúdo de Importação superior a 40% e inferior ou igual a 70%;
4 - Nacional, cuja produção tenha sido feita em conformidade com os processos produtivos básicos de que tratam as legislações citadas nos Ajustes;
5 - Nacional, mercadoria ou bem com Conteúdo de Importação inferior ou igual a 40%;
6 - Estrangeira - Importação direta, sem similar nacional, constante em lista da CAMEX e gás natural;
7 - Estrangeira - Adquirida no mercado interno, sem similar nacional, constante em lista da CAMEX e gás natural.
8 - Nacional, mercadoria ou bem com Conteúdo de Importação superior a 70%;
CST string 2,3 sim informar 500.
vBCSTRet double 15,2 depende informar o Valor da BC do ICMS ST retido
vICMSSTRet double 15,2 depende informar o Valor do ICMS ST retido
pST double 5,2-4 depende informar Alíquota suportada pelo Consumidor Final.
Deve ser informada a alíquota do cálculo do ICMS-ST, já incluso o FCP caso incida sobre a mercadoria.
Exemplo: alíquota da mercadoria na venda ao consumidor final = 18% e 2% de FCP. A alíquota a ser informada no campo pST deve ser 20%. (campo novo)
vBCFCPSTRet double 15,2 depende informar o Valor da Base de Cálculo do FCP retido anteriormente por Substituição Tributária.
(campo novo)
PFCPSTRet double 1,2-4 depende informar o Percentual do FCP retido anteriormente por Substituição Tributária.
Nota: Percentual máximo de 2%, conforme a legislação. (campo novo)
VFCPSTRet double 15,2 depende informar o Valor do FCP retido anteriormente por Substituição Tributária.
(campo novo)


Atenção

  • O vBCSTRet e vICMSRet nem sempre precisam ser informados, verificar a necessidade de informar os valores com o contador.
  • Os demais parâmetros devem ser informados com zero.
  • Só acumular o vProd que tenham indTot=1 no vProd do grupo ICMSTot;

Exemplo de XML para CRT=1 e CSOSN = 500

<ICMS>
   <ICMSSN500>
       <orig>0</orig>
       <CSOSN>500</CSOSN>
       <vBCSTRet>162.00</vBCSTRet>
       <vICMSSTRet>12.96</vICMSSTRet>
   </ICMSSN500>
</ICMS>


Importante

O trecho do XML foi formatado para uma melhor visualização, a mensagem original não tem formatação.

Vale observar que a formatação pode corromper a assinatura digital, além de ocupar espaço e ser desnecessária, pois os browser exibem formatado.

Exemplo Delphi

 
procedure TForm1.ICMSCSOSN500(Sender: TObject);
 
 
 
var
Util: Olevariant;
ICMS : widestring;
ICMS_orig : widestring;
ICMS_CST  : widestring;
ICMS_modBC: integer;
ICMS_pRedBC: currency;
ICMS_vBC : currency;
ICMS_pICMS : currency;
ICMS_vICMS : currency;
ICMS_modBCST : integer;
ICMS_pMVAST : currency;
ICMS_pRedBCST : currency;
ICMS_vBCST : currency;
ICMS_pICMSST : currency;
ICMS_vICMSST : currency;
ICMS_vBCSTRet : currency;
ICMS_vICMSSRet : currency;
ICMS_vBCSTDest : currency;
ICMS_vICMSSTDest : currency;
ICMS_motDesICMS : integer;
ICMS_pBCOp : currency;
ICMS_UFST : widestring;
ICMS_pCredSN : currency;
ICMS_vCredICMSSN : currency;
ICMS_vICMSDeson : currency;
ICMS_vICMSOp : currency;
ICMS_pDif : currency;
ICMS_vICMSDif : currency;
//
//  campos novos da versão 4.00
//
ICMS_vBCFCP : Currency;
ICMS_pFCP : Currency;
ICMS_vFCP : Currency;
ICMS_vBCFCPST : Currency;
ICMS_pFCPST : Currency;
ICMS_vFCPST : Currency;
ICMS_vBCFCPSTRet : Currency;
ICMS_pFCPSTRet : Currency;
ICMS_vFCPSTRet : Currency;
ICMS_pST : Currency;
 
begin
 
ICMS_orig := '0';                   // informar a origem do produto
ICMS_CST := '500';                  // informar o CST (emissor RPA) ou CSOSN (emissor optante do Simples Nacional)
//
//           informações do ICMS da operação própria, somente para CST  = 00, 10, 20, 51 (depende da SEFAZ exigir), 70 e 90 (depende do caso)
//                                                                 CSOSN=900
//
ICMS_modBC := 0;
ICMS_pRedBC :=0;
ICMS_vBC  :=0;
ICMS_pICMS  :=0;
ICMS_vICMS  :=0;
//
//          informações do ICMS retido por Substituição Tributária, informar somente nos casos em que o emissor
//          retem o ICMS por ST do destinatário   CST   = 10, 30, 70 e 90 (depende do caso)
//                                                CSOSN = 201, 202, 203 e 900 (depende do caso)
//
ICMS_modBCST :=0;
ICMS_pMVAST  :=0;
ICMS_pRedBCST  :=0;
ICMS_vBCST  :=0;
ICMS_pICMSST  :=0;
ICMS_vICMSST  :=0;
//
//         informações do ICMS retido anteriormente por Substituição Tributária,
//         deve ser informado se a legislação exigir para os CST=60 e CSOSN=500
//
//         É aplicável quando o emissor adquiriu o produto que já teve a retenção do ICMS devido até a venda para
//         consumidor retido anteriormente.
//
//         Também deve ser informado nos casos de CST  = ICMSST
//
ICMS_vBCSTRet  :=162;
ICMS_pST := 18;                       // percentual da aliquota suportada pelo consumidor final (campo novo)
ICMS_vICMSSRet  :=12.96;
//
//
ICMS_vBCSTDest  :=0;
ICMS_vICMSSTDest  :=0;
//
//      deve ser informado quando existir alguma desoneração condicional para veículos novos, CST=40
//
ICMS_motDesICMS :=0; 
//
//      percentual da BC da operação própria no caso de repartição de tributo
//
ICMS_pBCOp  :=0;
//
//      informar a UF para qual é devido o ICMS ST no caso de repartição do tributo
//
ICMS_UFST := '';
//
//      informar  para o CSOSN 101, 201 e 900 (depende do caso)
//
ICMS_pCredSN  :=0;
ICMS_vCredICMSSN  :=0;
 
//
//   Campos novos da versão 3.10
//
ICMS_vICMSDeson := 0;               // valor do ICMS desonerado
ICMS_vICMSOp := 0;                  // valor do ICMS da Operação - grupo 51 diferimento
ICMS_pDif := 0;                     // percentual do diferimento - grupo 51 diferimento
ICMS_vICMSDif := 0;                 // valor do ICMS diferido - grupo 51 diferimento
 
//
//   Campos novos da versão 4.00
//
ICMS_vBCFCP := 0;                   // valor BC FCP
ICMS_pFCP := 0;                     // percentual do FCP
ICMS_vFCP := 0;                     // valor do FCP
ICMS_vBCFCPST := 0;                 // valor BC FCP ST
ICMS_pFCPST := 0;                   // percentual do FCP ST
ICMS_vFCPST := 0;                   // valor do FCP ST
ICMS_vBCFCPSTRet := 0;              // valor BC FCP retido anteriormente por ST
ICMS_pFCPSTRet := 0;                // percentual do FCP retido anteriormente por ST
ICMS_vFCPSTRet := 0;                // valor do FCP retido anteriormente por ST
ICMS_vBCFCPSTRet := 0;              // valor BC FCP retido anteriormente por ST
ICMS_pFCPSTRet := 0;                // percentual do FCP retido anteriormente por ST
ICMS_vFCPSTRet := 0;                // valor do FCP retido anteriormente por ST
ICMS_pST := 0;                      // percentual da aliquota suportada pelo consumidor final 
 
Util := CreateOleObject('NFe_util_2G.util');
 
ICMS:=Util.icms400(ICMS_orig, ICMS_CST, ICMS_modBC,  ICMS_pRedBC,  ICMS_vBC,  ICMS_pICMS,  ICMS_vICMS,
                  ICMS_modBCST,  ICMS_pMVAST,  ICMS_pRedBCST,  ICMS_vBCST,  ICMS_pICMSST, ICMS_vICMSST,
                  ICMS_vBCSTRet,  ICMS_vICMSSRet,  ICMS_vBCSTDest,  ICMS_vICMSSTDest, ICMS_motDesICMS,
                  ICMS_pBCOp, ICMS_UFST,  ICMS_pCredSN,  ICMS_vCredICMSSN, ICMS_vICMSDeson, ICMS_vICMSOp, 
                  ICMS_pDif, ICMS_vICMSDif, ICMS_vBCFCP, ICMS_pFCP, ICMS_vFCP, ICMS_vBCFCPST, ICMS_pFCPST,
                  ICMS_vFCPST,  ICMS_vBCFCPSTRet, ICMS_pFCPSTRet, ICMS_vFCPSTRet, ICMS_pST);
 
  MessageDlg('O fragmento XML gerado é: '+#13+#13+ICMS, mtInformation, [mbOk], 0);
 
end;

CSOSN 900 - Outros

O CSOSN 900 deve ser utilizado quando o emissor optante pelo SIMPLES NACIONAL (CRT=1), pratica uma operação que não se enquadra nos demais CSOSN como é o caso da importação.

Parâmetros que devem ser informador na funcionalidade ICMS400:

nome tipo tam. obrig. descrição
orig string 1 sim informar o código da origem da mercadoria:
codificação válida a partir de 01/10/2013 [28-09-13]
0 - Nacional, exceto as indicadas nos códigos 3, 4, 5 e 8;
1 - Estrangeira - Importação direta, exceto a indicada no código 6;
2 - Estrangeira - Adquirida no mercado interno, exceto a indicada no código 7;
3 - Nacional, mercadoria ou bem com Conteúdo de Importação superior a 40% e inferior ou igual a 70%;
4 - Nacional, cuja produção tenha sido feita em conformidade com os processos produtivos básicos de que tratam as legislações citadas nos Ajustes;
5 - Nacional, mercadoria ou bem com Conteúdo de Importação inferior ou igual a 40%;
6 - Estrangeira - Importação direta, sem similar nacional, constante em lista da CAMEX e gás natural;
7 - Estrangeira - Adquirida no mercado interno, sem similar nacional, constante em lista da CAMEX e gás natural.
8 - Nacional, mercadoria ou bem com Conteúdo de Importação superior a 70%;
CST string 2,3 sim informar 500.
modBC inteiro 1 depende informar a modalidade de determinação da BC do ICMS:
0 - Margem Valor Agregado (%);
1 - Pauta (valor);
2 - Preço Tabelado Máximo (valor);
3 - Valor da Operação.
pRedBC double 5,2-4 depende informar o Percentual de redução da BC do ICMS da operação própria
vBC double 15,2 depende informar o Valor da BC do ICMS do ICMS da operação própria
pICMS double 5,2-4 depende informar a Alíquota do ICMS do ICMS da operação própria
vICMS double 15,2 depende informar o Valor do ICMS do ICMS da operação própria
modBCST inteiro 1 depende informar a modalidade de determinação da BC do ICMS ST:
0 - Preço tabelado ou máximo sugerido;
1 - Lista Negativa (valor);
2 - Lista Positiva (valor);
3 - Lista Neutra (valor);
4 - Margem Valor Agregado (%);
5 - Pauta (valor).
pMVAST double 5,2-4 depende informar o Percentual da Margem de Valor Adicionado ICMS ST
pRedBCST double 5,2-4 depende informar o Percentual de redução da BC ICMS ST
vBCST double 15,2 depende informar o Valor da BC do ICMS ST
pICMSST double 5,2-4 depende informar a Alíquota do ICMS ST
vICMSST double 15,2 depende informar o Valor do ICMS ST
pCredSN double 15,2 depende informar o Alíquota aplicável de cálculo do crédito (Simples Nacional)
vCredICMSSN double 15,2 depende informar o Valor crédito do ICMS que pode ser aproveitado nos termos do art. 23 da LC 123 (Simples Nacional)
vBCFCPST double 15,2 depende informar o Valor da Base de Cálculo do FCP retido por Substituição Tributária.
(campo novo)
PFCPST double 1,2-4 depende informar o Percentual do FCP retido por Substituição Tributária.
Nota: Percentual máximo de 2%, conforme a legislação. (campo novo)
VFCPST double 15,2 depende informar o Valor do FCP retido por Substituição Tributária.
(campo novo)


Atenção

  • Os prenchimento dos parâmetros depende da situação fática, no caso de importação devemos preencher os valores relacionados com o operação própria do ICMS e os demais campos devem ser informados com zero.
  • Só acumular o vProd que tenham indTot=1 no vProd do grupo ICMSTot;
  • Os campos vBC, vICMS, vBCICMSST e vICMSST devem ser acumulados no campos vBC, vICMS, vBCST e vST do grupo ICMSTot.

Exemplo de XML para CRT=1 e CSOSN = 900 - Importação

<ICMS>
   <ICMSSN900>
       <orig>0</orig>
       <CSOSN>900</CSOSN>
       <modBC>3</modBC>
       <pRedBC>10.00</pRedBC>
       <vBC>90.00</vBC>
       <pICMS>7.00</pICMS>
       <vICMS>6.30</vICMS>
</ICMSSN900></ICMS>


Importante

O trecho do XML foi formatado para uma melhor visualização, a mensagem original não tem formatação.

Vale observar que a formatação pode corromper a assinatura digital, além de ocupar espaço e ser desnecessária, pois os browser exibem formatado.

Exemplo Delphi

 
procedure TForm1.ICMSCSOSN900(Sender: TObject);
 
 
 
var
Util: Olevariant;
ICMS : widestring;
ICMS_orig : widestring;
ICMS_CST  : widestring;
ICMS_modBC: integer;
ICMS_pRedBC: currency;
ICMS_vBC : currency;
ICMS_pICMS : currency;
ICMS_vICMS : currency;
ICMS_modBCST : integer;
ICMS_pMVAST : currency;
ICMS_pRedBCST : currency;
ICMS_vBCST : currency;
ICMS_pICMSST : currency;
ICMS_vICMSST : currency;
ICMS_vBCSTRet : currency;
ICMS_vICMSSRet : currency;
ICMS_vBCSTDest : currency;
ICMS_vICMSSTDest : currency;
ICMS_motDesICMS : integer;
ICMS_pBCOp : currency;
ICMS_UFST : widestring;
ICMS_pCredSN : currency;
ICMS_vCredICMSSN : currency;
ICMS_vICMSDeson : currency;
ICMS_vICMSOp : currency;
ICMS_pDif : currency;
ICMS_vICMSDif : currency;
//
//  campos novos da versão 4.00
//
ICMS_vBCFCP : Currency;
ICMS_pFCP : Currency;
ICMS_vFCP : Currency;
ICMS_vBCFCPST : Currency;
ICMS_pFCPST : Currency;
ICMS_vFCPST : Currency;
ICMS_pST : Currency;
 
begin
 
ICMS_orig := '0';                   // informar a origem do produto
ICMS_CST := '900';                  // informar o CST (emissor RPA) ou CSOSN (emissor optante do Simples Nacional)
//
//           informações do ICMS da operação própria, somente para CST  = 00, 10, 20, 51 (depende da SEFAZ exigir), 70 e 90 (depende do caso)
//                                                                 CSOSN=900
//
ICMS_modBC := 3;
ICMS_pRedBC :=10;
ICMS_vBC  :=90;
ICMS_pICMS  :=7;
ICMS_vICMS  :=6.3;
//
//          informações do ICMS retido por Substituição Tributária, informar somente nos casos em que o emissor
//          retem o ICMS por ST do destinatário   CST   = 10, 30, 70 e 90 (depende do caso)
//                                                CSOSN = 201, 202, 203 e 900 (depende do caso)
//
ICMS_modBCST :=0;
ICMS_pMVAST  :=0;
ICMS_pRedBCST  :=0;
ICMS_vBCST  :=0;
ICMS_pICMSST  :=0;
ICMS_vICMSST  :=0;
//
//         informações do ICMS retido anteriormente por Substituição Tributária,
//         deve ser informado se a legislação exigir para os CST=60 e CSOSN=500
//
//         É aplicável quando o emissor adquiriu o produto que já teve a retenção do ICMS devido até a venda para
//         consumidor retido anteriormente.
//
//         Também deve ser informado nos casos de CST  = ICMSST
//
ICMS_vBCSTRet  :=0;
ICMS_vICMSSRet  :=0;
//
//
ICMS_vBCSTDest  :=0;
ICMS_vICMSSTDest  :=0;
//
//      deve ser informado quando existir alguma desoneração condicional para veículos novos, CST=40
//
ICMS_motDesICMS :=0; 
//
//      percentual da BC da operação própria no caso de repartição de tributo
//
ICMS_pBCOp  :=0;
//
//      informar a UF para qual é devido o ICMS ST no caso de repartição do tributo
//
ICMS_UFST := '';
//
//      informar  para o CSOSN 101, 201 e 900 (depende do caso)
//
ICMS_pCredSN  :=0;
ICMS_vCredICMSSN  :=0;
//
//   Campos novos da versão 3.10
//
ICMS_vICMSDeson := 0;               // valor do ICMS desonerado
ICMS_vICMSOp := 0;                  // valor do ICMS da Operação - grupo 51 diferimento
ICMS_pDif := 0;                     // percentual do diferimento - grupo 51 diferimento
ICMS_vICMSDif := 0;                 // valor do ICMS diferido - grupo 51 diferimento
 
//
//   Campos novos da versão 4.00
//
ICMS_vBCFCP := 0;                    // valor BC FCP
ICMS_pFCP := 0;                     // percentual do FCP
ICMS_vFCP := 0;                     // valor do FCP
ICMS_vBCFCPST := 0;                  // valor BC FCP ST
ICMS_pFCPST := 0;                   // percentual do FCP ST
ICMS_vFCPST := 0;                   // valor do FCP ST
ICMS_vBCFCPSTRet := 0;              // valor BC FCP retido anteriormente por ST
ICMS_pFCPSTRet := 0;                // percentual do FCP retido anteriormente por ST
ICMS_vFCPSTRet := 0;                // valor do FCP retido anteriormente por ST
ICMS_pST := 0;                      // percentual da aliquota suportada pelo consumidor final 
 
Util := CreateOleObject('NFe_util_2G.util');
 
ICMS:=Util.icms400(ICMS_orig, ICMS_CST, ICMS_modBC,  ICMS_pRedBC,  ICMS_vBC,  ICMS_pICMS,  ICMS_vICMS,
                  ICMS_modBCST,  ICMS_pMVAST,  ICMS_pRedBCST,  ICMS_vBCST,  ICMS_pICMSST, ICMS_vICMSST,
                  ICMS_vBCSTRet,  ICMS_vICMSSRet,  ICMS_vBCSTDest,  ICMS_vICMSSTDest, ICMS_motDesICMS,
                  ICMS_pBCOp, ICMS_UFST,  ICMS_pCredSN,  ICMS_vCredICMSSN, ICMS_vICMSDeson, ICMS_vICMSOp, 
                  ICMS_pDif, ICMS_vICMSDif, ICMS_vBCFCP, ICMS_pFCP, ICMS_vFCP, ICMS_vBCFCPST, ICMS_pFCPST,
                  ICMS_vFCPST,  ICMS_vBCFCPSTRet, ICMS_pFCPSTRet, ICMS_vFCPSTRet, ICMS_pST);
 
  MessageDlg('O fragmento XML gerado é: '+#13+#13+ICMS, mtInformation, [mbOk], 0);
 
end;
14.8.2.2.1. ICMS 4.00-CSOSN [15-08-17]
14.8.2.2. ICMS 4.00 [06-05-18]
« Anterior
14.8.2.2. ICMS 4.00 [06-05-18]
Próximo »
14.8.2.3. ICMS 4.00 NT2020/005 [11-07-21]