- 12.10. Impostos do CT-e RT
12.10.4. Tributo cobrado anter.por ST RT - 12.10.3. Tributação Isenta, não Tributada ou diferida RT
« Anterior - 12.10.5. Tributação Outros RT
Próximo »
12.10.4. Tributo cobrado anter.por ST RT
Funcionalidade para gerar o XML do grupo de Tributação pelo ICMS 60
Assinatura
string ImpCST60(string CST, double vBCSTRet, double pICMSSTRet, double vICMSSTRet, double vCred,double vTotTrib_Opc, string infAdFisco_Opc, string ICMSUFFim_Opc, double vICMSDeson_Opc, string cBenef_Opc, string IBSCBS_Opc, double vTotDFe_Opc)
Descrição:
Funcionalidade para gerar o XML do grupo de Tributação o ICMS devido na prestação de serviço já tenha sido retido anteriormente pelo responsável pela retenção.
Atualizado para o leiaute da NT2025/001
Importante
Atualização necessária para atender os novos leiautes do CT-e, CT-e Simplificado e CT-e OS da NT 2025/001 - Reforma Tributária do Consumo
Vigência:
- ambiente de homologação: até 28/07/2025
- ambiente de produção: 06/10/2025
Versão da DLL requerida:
Histórico de atualização:
- 2025-06-30 - versão 2Gv5.00
Parâmetros:
nome | tipo | tam. | obrig. | descrição |
---|---|---|---|---|
CST | string | 2 | sim | informar a classificação Tributária do Serviço (60 - ICMS cobrado anteriormente por substituição tributária). |
vBCSTRet | double | 13,2 | sim | informar o valor da BC do ICMS ST retido (15 posições, sendo 13 inteiras e 2 decimais). |
vICMSSTRet | double | 13,2 | sim | informar o valor do ICMS ST retido (15 posições, sendo 13 inteiras e 2 decimais). |
pICMSSTRet | double | 3,2 | sim | informar o valor da Alíquota do ICMS (5 posições, sendo 3 inteiras e 2 decimais). |
vCred | double | 13,2 | sim | informar o valor do Crédito outorgado/presumido(15 posições, sendo 13 inteiras e 2 decimais). |
vTotTrib_Opc | double | 13,2 | não | informar o valor Total dos Tributos Aproximado previsto na Lei da Transparência - 12.741/12 (15 posições, sendo 13 inteiras e 2 decimais). |
infAdFisco_Opc | string | 1-2000 | não | informações adicionais de interesse do Fisco. |
ICMSUFFim_Opc | string | - | não | Informações do ICMSUFFim ICMS devido para a UF de término do serviço de transporte, nas operações interestaduais para consumidor final |
cBenef_Opc | string | 1-10 | não | informar o código do benefício fiscal na UF. |
IBSCBS_Opc | string | - | não | Informações do IBSCBS CAMPO NOVO |
vTotDFe_Opc | double | 13,2 | não | informar o Valor total do documento fiscal (vTPrest + total do IBS + total da CBS) CAMPO NOVO. |
Diagrama:
Retorno:
Um string com o grupo XML de Tributação pelo ICMS 60
XML:
Exemplo de XML
<imp> <ICMS> <ICMS60> <CST>60</CST> <vBCSTRet>1000.00</vBCSTRet> <vICMSSTRet>12.00</vICMSSTRet> <pICMSSTRet>120.00</pICMSSTRet> <vCred>0.00</vCred> </ICMS60> </ICMS> <vTotTrib>12.34</vTotTrib> <infAdFisco>Informações</infAdFisco> </imp>
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.
Exemplos de uso: Visual Basic 6.0
' ' '====== Dados do Tributação pelo ICMS 60 - ICMS cobrado por substituição tributária========== ' Dim ImpCST60 As String Dim ImpCST60_CST As String Dim ImpCST60_vBCSTRet As Double Dim ImpCST60_pICMSSTRet As Double Dim ImpCST60_vICMSSTRet As Double Dim ImpCST60_vCred As Double Dim ImpCST60_vTotTrib_Opc As Double Dim ImpCST60_infAdFisco_Opc As String Dim ImpCST60_ICMSUFFim_Opc As String Dim ImpCST60_vICMSDeson_Opc As Double Dim ImpCST60_cBenef_Opc As String Dim ImpCST60__IBSCBS_Opc As String Dim ImpCST60__vTotDFe_Opc As Double ' ' '====== instancia DLL================== ' ' ' referenciando a DLL em late binding ' não é necessário fazer o reference da DLL ' o intelisense não funciona ' Dim objCTeUtil As Object Set objCTeUtil = CreateObject("CTe_Util.Util") ' ' criação dos grupos ' '===================grupo de Tributação pelo ICMS60 - ICMS cobrado por substituição tributária======================= ' ' ImpCST60_CST = "60" ' Classificação Tributária do Serviço (60 - ICMS cobrado anteriormente por substituição tributária) ImpCST60_vBCSTRet = 1000# ' Valor da BC do ICMS ST retido (15 posições, sendo 13 inteiras e 2 decimais) ImpCST60_pICMSSTRet = 12# ' Valor do ICMS ST retido (15 posições, sendo 13 inteiras e 2 decimais) ImpCST60_vICMSSTRet = 120# ' Alíquota do ICMS (5 posições sendo 3 inteiras e 2 decimais) ImpCST60_vCred = 0 ' Valor do Crédito outorgado/Presumido (15 posições, sendo 13 inteiras e 2 decimais) ImpCST60_vTotTrib_Opc = 12.34 ' valor Total dos Tributos Aproximado ImpCST60_infAdFisco_Opc = "Informações" ' Informações adicionais de interesse do Fisco (Norma referenciada, informações complementares, etc) ImpCST60_ICMSUFFim_Opc = "" ' Informações do ICMS devido para a UF de término do serviço de transporte, nas operações interestaduais para consumidor final ImpCST60_vICMSDeson_Opc = 100 ' valor o ICMS desonerado ImpCST60_cBenef_Opc = "SP12345678" ' código do benefício fiscal na UF ImpCST60_IBSCBS_Opc = "" ' Informações do IBS e CBS ImpCST60_vTotDFe_Opc = 0 ' Valor total do documento fiscal (vTPrest + total IBS + total CBS) ' ImpCST60 = objCTeUtil.ImpCST60(ImpCST60_CST, ImpCST60_vBCSTRet, ImpCST60_pICMSSTRet, ImpCST60_vICMSSTRet, ImpCST60_vCred, ImpCST60_vTotTrib_Opc, ImpCST60_infAdFisco_Opc, ImpCST60_ICMSUFFim_Opc, ImpCST60_vICMSDeson_Opc, ImpCST60_cBenef_Opc, ImpCST60_IBSCBS_Opc, ImpCST60_vTotDFe_Opc) MsgBox "Tributação pelo ICMS60 - ICMS cobrado por substituição tributária" + ImpCST60, vbInformation, "Resultado"
Exemplos de uso: Delphi
procedure TForm1.Button11Click(Sender: TObject); var Util: OleVariant; // declarar a interface da DLL resultado : integer; msgResultado : widestring; ImpCST60 : widestring; ImpCST60_CST : widestring; ImpCST60_vBCSTRet : currency; ImpCST60_vICMSSTRet : currency; ImpCST60_pICMSSTRet : currency; ImpCST60_vCred_Opc : currency; ImpCST60_vTotTrib_Opc : currency; ImpCST60_infAdFisco_Opc : widestring; ImpCST60_ICMSUFFim_Opc : widestring; ImpCST60_vICMSDeson_Opc : currency; ImpCST60_cBenef_Opc : widestring; ImpCST60_IBSCBS_Opc : widestring; ImpCST60_vTotDFe_Opc : currency; begin ImpCST60_CST := '60'; // Classificação Tributária do Serviço ImpCST60_vBCSTRet := 1000; ImpCST60_vICMSSTRet := 120; ImpCST60_pICMSSTRet := 12; ImpCST60_vCred_Opc := 80; ImpCST60_vTotTrib_Opc := 12.34; // valor Total dos Tributos Aproximado ImpCST60_infAdFisco_Opc := 'Informações'; // Informações adicionais de interesse do Fisco (Norma referenciada, informações complementares, etc) ImpCST60_ICMSUFFim_Opc := ' '; ImpCST60_vICMSDeson_Opc :=100; ImpCST60_cBenef_Opc :='SP2345678'; ImpCST60_IBSCBS_Opc := ' '; // Informações do IBS e da CBS ImpCST60_vTotDFe_Opc := 0; // Valor total do documento fiscal (vTPrest + total IBS + total CBS) Util := CreateOleObject('CTe_Util.util'); // instância a DLL ImpCST60 := Util.ImpCST60(ImpCST60_CST, ImpCST60_vBCSTRet, ImpCST60_vICMSSTRet, ImpCST60_pICMSSTRet, ImpCST60_vCred_Opc, ImpCST60_vTotTrib_Opc, ImpCST60_infAdFisco_Opc, ImpCST60_ICMSUFFim_Opc, ImpCST60_vICMSDeson_Opc, ImpCST60_cBenef_Opc, ImpCST60_IBSCBS_Opc, ImpCST60_vTotDFe_Opc); MessageDlg( 'ICMS60: ' + chr(13) + ImpCST60, mtInformation, [mbOk], 0); end;
- 12.10.4. Tributo cobrado anter.por ST RT
12.10. Impostos do CT-e RT - « Anterior
12.10.3. Tributação Isenta, não Tributada ou diferida RT - Próximo »
12.10.5. Tributação Outros RT