- 12.10. Impostos do CT-e RT
12.10.5. Tributação Outros RT - 12.10.4. Tributo cobrado anter.por ST RT
« Anterior - 12.10.6. Tributação para Outra UF RT
Próximo »
12.10.5. Tributação Outros RT
Assinatura
string ImpCST90(string CST, double pRedBC_Opc, double vBC, double pICMS, double vICMS, 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 ICMS 90 - ICMS Outros.
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 | Classificação Tributária do Serviço (90 - ICMS Outros). |
pRedBC_Opc | double | 3,2 | não | Percentual de redução da BC (5 posições, sendo 3 inteiras e 2 decimais). |
vBC | double | 13,2 | sim | Valor da BC do ICMS (15 posições, sendo 13 inteiras e 2 decimais). |
pICMS | double | 3,2 | sim | Valor da Alíquota do ICMS (5 posições, sendo 3 inteiras e 2 decimais). |
vICMS | double | 13,2 | sim | Valor do ICMS (15 posições, sendo 13 inteiras e 2 decimais). |
vCred | double | 13,2 | sim | 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 |
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 de ICMS 90 - ICMS Outros
XML:
Exemplo de XML
<imp> <ICMS> <ICMS90> <CST>90</CST> <pRedBC>10.00</pRedBC> <vBC>1000.00</vBC> <pICMS>12.00</pICMS> <vICMS>120.00</vICMS> <vCred>0.00</vCred> </ICMS90> </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 ICMS 90 - ICMS Outros========== ' Dim ImpCST90 As String Dim ImpCST90_CST As String Dim ImpCST90_pRedBC As Double Dim ImpCST90_vBC As Double Dim ImpCST90_pICMS As Double Dim ImpCST90_vICMS As Double Dim ImpCST90_vCred As Double Dim ImpCST90_vTotTrib_Opc As Double Dim ImpCST90_infAdFisco_Opc As String Dim ImpCST90_ICMSUFFim_Opc As String Dim ImpCST90_vICMSDeson_Opc As Double Dim ImpCST90_cBenef_Opc As String Dim ImpCST90_IBSCBS_Opc As String Dim ImpCST90_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 ICMS 90 - ICMS Outros======================= ' ' ImpCST90_CST = "90" ' Classificação Tributária do Serviço (90 - ICMS outros) ImpCST90_pRedBC = 5.12 ' Percentual de redução da BC (5 posições sendo 3 inteiras e 2 decimais) ImpCST90_vBC = 1235.48 ' Valor da BC do ICMS (15 posições, sendo 13 inteiras e 2 decimais) ImpCST90_pICMS = 11.52 ' Alíquota do ICMS (5 posições sendo 3 inteiras e 2 decimais) ImpCST90_vICMS = 1235.36 ' Valor da BC do ICMS (15 posições, sendo 13 inteiras e 2 decimais) ImpCST90_vCred = 1585.44 ' Valor do Crédito outorgado/Presumido (15 posições, sendo 13 inteiras e 2 decimais) ImpCST90_vTotTrib_Opc = 12.34 ' valor Total dos Tributos Aproximado ImpCST90_infAdFisco_Opc = "Informações" ' Informações adicionais de interesse do Fisco (Norma referenciada, informações complementares, etc) ImpCST90_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 ImpCST90_vICMSDeson_Opc = 100 ' valor o ICMS desonerado ImpCST90_cBenef_Opc = "SP12345678" ' código do benefício fiscal na UF ImpCST90_IBSCBS_Opc = "" ' Informações do IBS e CBS ImpCST90_vTotDFe_Opc = 0 ' Valor total do documento fiscal (vTPrest + total IBS + total CBS) ' ImpCST90 = objCTeUtil.ImpCST90(ImpCST90_CST, ImpCST90_pRedBC, ImpCST90_vBC, ImpCST90_pICMS, ImpCST90_vICMS, ImpCST90_vCred, ImpCST90_vTotTrib_Opc, ImpCST90_infAdFisco_Opc, ImpCST90_ICMSUFFim_Opc, ImpICMS60_vICMSDeson_Opc, ImpICMS60_cBenef_Opc, ImpCST90_IBSCBS_Opc, ImpCST90_vTotDFe_Opc) MsgBox "ICMS 90 - ICMS Outros" + ImpCST90, vbInformation, "Resultado"
Exemplos de uso: Delphi
procedure TForm1.Button12Click(Sender: TObject); var Util: OleVariant; // declarar a interface da DLL ImpCST90 : widestring; ImpCST90_CST : widestring; ImpCST90_pRedBC_Opc : currency; ImpCST90_vBC : currency; ImpCST90_pICMS : currency; ImpCST90_vICMS : currency; ImpCST90_vCred_Opc : currency; ImpCST90_vTotTrib_Opc : currency; ImpCST90_infAdFisco_Opc : widestring; ImpCST90_ICMSUFFim_Opc : widestring; ImpCST90_vICMSDeson_Opc : currency; ImpCST90_cBenef_Opc : widestring; ImpCST90_IBSCBS_Opc : widestring; ImpCST90_vTotDFe_Opc : currency; begin ImpCST90_CST := '90'; // Classificação Tributária do Serviço ImpCST90_pRedBC_Opc := 5.12; // Percentual de redução da BC (5 posições sendo 3 inteiras e 2 decimais) ImpCST90_vBC := 1235.02; // Valor da BC do ICMS (15 posições, sendo 13 inteiras e 2 decimais) ImpCST90_pICMS := 11; // Alíquota do ICMS (5 posições sendo 3 inteiras e 2 decimais) ImpCST90_vICMS := 1235.43; // Valor da BC do ICMS (15 posições, sendo 13 inteiras e 2 decimais) ImpCST90_vCred_Opc := 1585.44; // Valor do Crédito outorgado/Presumido (15 posições, sendo 13 inteiras e 2 decimais) ImpCST90_vTotTrib_Opc := 12.34; // valor Total dos Tributos Aproximado ImpCST90_infAdFisco_Opc := 'Informações'; // Informações adicionais de interesse do Fisco (Norma referenciada, informações complementares, etc) ImpCST90_ICMSUFFim_Opc := ' '; ImpCST90_vICMSDeson_Opc :=1000; ImpCST90_cBenef_Opc :='SP2345678'; ImpCST90_IBSCBS_Opc := ' '; // Informações do IBS e da CBS ImpCST90_vTotDFe_Opc := 0; // Valor total do documento fiscal (vTPrest + total IBS + total CBS) Util := CreateOleObject('CTe_Util.util'); // instância a DLL ImpCST90 := Util.ImpCST90(ImpCST90_CST, ImpCST90_pRedBC_Opc, ImpCST90_vBC, ImpCST90_pICMS, ImpCST90_vICMS, ImpCST90_vCred_Opc, ImpCST90_vTotTrib_Opc, ImpCST90_infAdFisco_Opc, ImpCST90_ICMSUFFim_Opc, ImpCST90_vICMSDeson_Opc, ImpCST90_cBenef_Opc, ImpCST90_IBSCBS_Opc, ImpCST90_vTotDFe_Opc); MessageDlg( 'ICMS90: ' + chr(13) + ImpCST90, mtInformation, [mbOk], 0); end;
- 12.10.5. Tributação Outros RT
12.10. Impostos do CT-e RT - « Anterior
12.10.4. Tributo cobrado anter.por ST RT - Próximo »
12.10.6. Tributação para Outra UF RT