- 12.10. Impostos do CT-e RT
12.10.2. Tributação BC Reduzida RT - 12.10.1. Tributação Normal RT
« Anterior - 12.10.3. Tributação Isenta, não Tributada ou diferida RT
Próximo »
12.10.2. Tributação BC Reduzida RT
Assinatura
string ImpCST20(string CST, double pRedBC, double vBC, double pICMS, double vICMS, 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 do ICMS20 - Prestação sujeito à tributação com redução da BC do ICMS do leiaute do CT-e.
Este grupo deve ser informando quando a prestação de serviço tiver tributação do ICMS com redução da Base de Cálculo e o prestador seja o responsável pelo seu pagamento.
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-27 - 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 (20 - tributação com BC reduzida do ICMS). |
pRedBC | double | 3,2 | sim | informar o percentual de redução da BC (5 posições, sendo 3 inteiras e 2 decimais). |
vBC | double | 13,2 | sim | informar o valor da BC do ICMS (15 posições, sendo 13 inteiras e 2 decimais). |
pICMS | double | 3,2 | sim | informar o valor da Alíquota do ICMS (5 posições, sendo 3 inteiras e 2 decimais). |
vICMS | double | 13,2 | sim | informar o valor do ICMS (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 |
vICMSDeson_Opc | double | 13,2 | não | informar o valor do ICMS desonerado. |
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 do ICMS20 - Prestação sujeito à tributação com redução da BC do ICMS, a responsabilidade do pagamento do ICMS devido é do prestador do serviço.
XML:
Exemplo de XML
Valor da Prestação = 1.000,00 percentual de redução da BC = 66,67% BC reduzida = 583,33 Alíquota ICMS = 12,00% Valor do ICMS = 70,00
<imp> <ICMS> <ICMS20> <CST>20</CST> <pRedBC>66.67</pRedBC> <vBC>583.33</vBC> <pICMS>12.00</pICMS> <vICMS>70.00</vICMS> </ICMS20> </ICMS> <vTotTrib>12.34</vTotTrib> <infAdFisco>Redução da BC do ICMS de 66.67%</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 ICMS20 - Prestação sujeito à tributação com redução da BC do ICMS========== ' Dim ImpCST20 As String Dim ImpCST20_CST As String Dim ImpCST20_pRedBC As Double Dim ImpCST20_vBC As Double Dim ImpCST20_pICMS As Double Dim ImpCST20_vICMS As Double Dim ImpCST20_vTotTrib_Opc As Double Dim ImpCST20_infAdFisco_Opc As String Dim ImpCST20_ICMSUFFim_Opc As String Dim ImpCST20_vICMSDeson_Opc As Double Dim ImpCST20_cBenef_Opc As String Dim ImpCST20_IBSCBS_Opc As String Dim ImpCST20_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 do ICMS20 - Prestação sujeito à tributação com redução da BC do ICMS======================= ' ' ImpCST20_CST = "20" ' Classificação Tributária do Serviço (20 - tributação com BC reduzida do ICMS) ImpCST20_pRedBC = 66.67 ' Percentual da redução da BC (5 posições sendo 3 inteiras e 2 decimais) ImpCST20_vBC = 583.33 ' Valor da BC do ICMS (15 posições, sendo 13 inteiras e 2 decimais) ImpCST20_pICMS = 12# ' Alíquota do ICMS (5 posições sendo 3 inteiras e 2 decimais)" ImpCST20_vICMS = 70# ' Valor do ICMS (15 posições, sendo 13 inteiras e 2 decimais)" ImpCST20_vTotTrib_Opc = 12.34 ' valor Total dos Tributos Aproximado ImpCST20_infAdFisco_Opc = "Informações" ' Informações adicionais de interesse do Fisco (Norma referenciada, informações complementares, etc) ImpCST20_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 ImpCST20_vICMSDeson_Opc = 100 ' valor o ICMS desonerado ImpCST20_cBenef_Opc = "SP12345678" ' código do benefício fiscal na UF ImpCST20_IBSCBS_Opc = "" ' Informações do IBS e CBS ImpCST20_vTotDFe_Opc = 0 ' Valor total do documento fiscal (vTPrest + total IBS + total CBS) ' ImpCST20 = objCTeUtil.ImpCST20(ImpCST20_CST, ImpCST20_pRedBC, ImpCST20_vBC, ImpCST20_pICMS, ImpCST20_vICMS, ImpCST20_vTotTrib_Opc, ImpCST20_infAdFisco_Opc, ImpCST20_ICMSUFFim_Opc, ImpCST20_vICMSDeson_Opc, ImpCST20_cBenef_Opc, ImpCST20_IBSCBS_Opc, ImpCST20_vTotDFe_Opc) MsgBox "CST20 - Prestação sujeito à tributação com redução da BC do ICMS" + ImpCST20, vbInformation, "Resultado"
Exemplos de uso: Delphi
procedure TForm1.Button9Click(Sender: TObject); var Util: OleVariant; // declarar a interface da DLL ImpCST20 : widestring; ImpCST20_CST : widestring; ImpCST20_pRedBC : currency; ImpCST20_vBC : currency; ImpCST20_pICMS : currency; ImpCST20_vICMS : currency; ImpCST20_vTotTrib_Opc : currency; ImpCST20_infAdFisco_Opc : widestring; ImpCST20_ICMSUFFim_Opc : widestring; ImpCST20_vICMSDeson_Opc : currency; ImpCST20_cBenef_Opc : widestring; ImpCST20_IBSCBS_Opc : widestring; ImpCST20_vTotDFe_Opc : currency; begin ImpCST20_CST := '20'; // Classificação Tributária do Serviço ImpCST20_pRedBC := 5.12; // Percentual de redução da BC (5 posições sendo 3 inteiras e 2 decimais) ImpCST20_vBC := 1235.02; // Valor da BC do ICMS (15 posições, sendo 13 inteiras e 2 decimais) ImpCST20_pICMS := 11; // Alíquota do ICMS (5 posições sendo 3 inteiras e 2 decimais) ImpCST20_vICMS := 1235.43; // Valor da BC do ICMS (15 posições, sendo 13 inteiras e 2 decimais) ImpCST20_vTotTrib_Opc := 12.34; // valor Total dos Tributos Aproximado ImpCST20_infAdFisco_Opc := 'Informações'; // Informações adicionais de interesse do Fisco (Norma referenciada, informações complementares, etc) ImpCST20_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 ImpCST20_vICMSDeson_Opc :=1000; // valor o ICMS desonerado ImpCST20_cBenef_Opc :='SP2345678'; // código do benefício fiscal na UF ImpCST20_IBSCBS_Opc := ' '; // Informações do IBS e da CBS ImpCST20_vTotDFe_Opc : =0; // Valor total do documento fiscal (vTPrest + total IBS + total CBS) Util := CreateOleObject('CTe_Util.util'); // instância a DLL ImpCST20 := Util.ImpCST20(ImpCST20_CST, ImpCST20_pRedBC, ImpCST20_vBC, ImpCST20_pICMS, ImpCST20_vICMS, ImpCST20_vTotTrib_Opc, ImpCST20_infAdFisco_Opc, ImpCST20_ICMSUFFim_Opc, ImpCST20_vICMSDeson_Opc, ImpCST20_cBenef_Opc, ImpCST20_IBSCBS_Opc, ImpCST20_vTotDFe_Opc); MessageDlg( 'CST20: ' + chr(13) + ImpCST20, mtInformation, [mbOk], 0); end;
- 12.10.2. Tributação BC Reduzida RT
12.10. Impostos do CT-e RT - « Anterior
12.10.1. Tributação Normal RT - Próximo »
12.10.3. Tributação Isenta, não Tributada ou diferida RT