14. Gerar XML da NF-e
14.7. Totais da NF-e [RTC]
14.6.4. Item da NF-e NT 2021/004 [obsoleto]
« Anterior
14.7.1. Total ICMS NT2023/001 [15-03-23]
Próximo »

14.7. Totais da NF-e [RTC]

Sumário

Funcionalidade para gerar o XML do Totais da NF-e

Assinatura

string totalRTC(string ICMSTot, string ISSQNTot, string retTrib, double vIS, string IBSCBSTot, double vNFTot)

Descrição:

Funcionalidade para gerar o XML do grupo de informações de Total da NF-e da versão 4.x

Importante

Atualização necessária para atender o novo leiaute da NF-e da NT 2025/002 - Reforma Tributária do Consumo

Vigência:

  • ambiente de homologação: a partir de 01/07/2025
  • ambiente de produção: a partir de 01/10/2025

Versão da DLL requerida:

Histórico de atualização:

Parâmetros:

nome tipo tam. obrig. descrição
ICMSTot string - sim informar o XML do grupo ICMSTot
ISSQNTot string - não informar o XML do grupo ISSQNTot
retTrib string - não informar o XML do grupo retTrib
vIS double 15,2 não informar o Valor Total do IS
(campo novo RTC)
IBSCBSTot string - não informar o XML do grupo IBSCBSTot
(grupo novo RTC)
vNFTot double 15,2 não informar o Valor total da NF-e com IBS/CBS/IS
(campo novo RTC)

Diagrama:

DiagramaTotal

Retorno:

Um string com o grupo XML Totais de Tributos

XML:

<total>
  <ICMSTot>
    <vBC>100.00</vBC>
    <vICMS>18.00</vICMS>
    <vICMSDeson>0.00</vICMSDeson>
    <vFCPUFDest>1.00</vFCPUFDest>
    <vICMSUFDest>2.40</vICMSUFDest>
    <vICMSUFRemet>3.60</vICMSUFRemet>
    <vFCP>0.00</vFCP>
    <vBCST>0.00</vBCST>
    <vST>0.00</vST>
    <vFCPST>0.00</vFCPST>
    <vFCPSTRet>0.00</vFCPSTRet>
    <vProd>100.00</vProd>
    <vFrete>0.00</vFrete>
    <vSeg>0.00</vSeg>
    <vDesc>0.00</vDesc>
    <vII>0.00</vII>
    <vIPI>0.00</vIPI>
    <vIPIDevol>0.00</vIPIDevol>
    <vPIS>0.00</vPIS>
    <vCOFINS>0.00</vCOFINS>
    <vOutro>0.00</vOutro>
    <vNF>100.00</vNF>
  </ICMSTot>
  <vISTot>
    <vIS>0.00</vIS>
  </vISTot>
  <IBSCBSTot>
    <vBIBSCBS>1234.56</vBIBSCBS>
    <gIBS>
      <gIBSUF>
        <vDif>100.00</vDif>
        <vDevTrib>10.00</vDevTrib>
        <vIBSUF>90.00</vIBSUF>
      </gIBSUF>
      <gIBSMun>
        <vDif>20.00</vDif>
        <vDevTrib>30.00</vDevTrib>
        <vIBSMun>40.00</vIBSMun>
      </gIBSMun>
      <vIBS>100.00</vIBS>
      <vCredPres>0.00</vCredPres>
      <vCredPresCondSus>0.00</vCredPresCondSus>
    </gIBS>
    <gCBS>
      <vDif>100.00</vDif>
      <vDevTrib>10.00</vDevTrib>
      <vCBS>90.00</vCBS>
      <vCredPres>0.00</vCredPres>
      <vCredPresCondSus>0.00</vCredPresCondSus>
    </gCBS>
    <gMono>
      <vIBSMono>1000.00</vIBSMono>
      <vCBSMono>2000.00</vCBSMono>
      <vIBSMonoReten>300.00</vIBSMonoReten>
      <vCBSMonoReten>400.00</vCBSMonoReten>
      <vIBSMonoRet>50.00</vIBSMonoRet>
      <vCBSMonoRet>60.00</vCBSMonoRet>
    </gMono>
  </IBSCBSTot>
  <vNFTot>123456.78</vNFTot>
</total>

Exemplos de uso:

Visual Basic 6.0

 
Private Sub Command21_Click()
 
' grupo totais da NF-e

' Declaração de variáveis

Dim totalRTC As String
Dim ICMSTot As String
Dim ISSQNTot As String
Dim retTrib As String
Dim vIS As Double
Dim IBSCBSTot As String
Dim vNFTot As Double
 
' instancia a DLL

Dim objNFeUtil As Object
 
Set objNFeUtil = CreateObject("NFe_Util_2G.Util")
 
' inicializar variáveis

totalRTC = ""
 
' informar o grupo total do ICMS

ICMSTot = "<ICMSTot><vBC>100.00</vBC><vICMS>18.00</vICMS><vICMSDeson>0.00</vICMSDeson><vFCPUFDest>1.00</vFCPUFDest><vICMSUFDest>2.40</vICMSUFDest><vICMSUFRemet>3.60</vICMSUFRemet><vFCP>0.00</vFCP><vBCST>0.00</vBCST><vST>0.00</vST><vFCPST>0.00</vFCPST><vFCPSTRet>0.00</vFCPSTRet><vProd>100.00</vProd><vFrete>0.00</vFrete><vSeg>0.00</vSeg><vDesc>0.00</vDesc><vII>0.00</vII><vIPI>0.00</vIPI><vIPIDevol>0.00</vIPIDevol><vPIS>0.00</vPIS><vCOFINS>0.00</vCOFINS><vOutro>0.00</vOutro><vNF>100.00</vNF></ICMSTot>"
 
' informar o grupo total do ISSQN

ISSQNTot = ""
 
' informar o grupo total do Tributos Retidos

retTrib = ""
 
' informar o valor do IS

vIS = 0
 
' informar o grupo total do IBS/CBS

IBSCBSTot = "<IBSCBSTot><vBIBSCBS>1234.56</vBIBSCBS><gIBS><gIBSUF><vDif>100.00</vDif><vDevTrib>10.00</vDevTrib><vIBSUF>90.00</vIBSUF></gIBSUF><gIBSMun><vDif>20.00</vDif><vDevTrib>30.00</vDevTrib><vIBSMun>40.00</vIBSMun></gIBSMun><vIBS>100.00</vIBS><vCredPres>0.00</vCredPres><vCredPresCondSus>0.00</vCredPresCondSus></gIBS><gCBS><vDif>100.00</vDif><vDevTrib>10.00</vDevTrib><vCBS>90.00</vCBS><vCredPres>0.00</vCredPres><vCredPresCondSus>0.00</vCredPresCondSus></gCBS><gMono><vIBSMono>1000.00</vIBSMono><vCBSMono>2000.00</vCBSMono><vIBSMonoReten>300.00</vIBSMonoReten><vCBSMonoReten>400.00</vCBSMonoReten><vIBSMonoRet>50.00</vIBSMonoRet><vCBSMonoRet>60.00</vCBSMonoRet></gMono></IBSCBSTot>"
 
' informar o valor total da NF-e

vNFTot = 123456.78
 
' gera XML de totais da NF-e

totalRTC = objNFeUtil.totalRTC(ICMSTot, _
                               ISSQNTot, _
                               retTrib, _
                               vIS, _
                               IBSCBSTot, _
                               vNFTot)
 
MsgBox totalRTC, vbInformation, "Informação"
 
End Sub

Delphi

procedure TForm1.Button10Click(Sender: TObject);
var
//  grupo totais da NF-e
 
// declarar a interface da DLL
 
objNFeUtil: OleVariant;
 
// Declaração de variáveis
 
totalRTC : widestring;
ICMSTot : widestring;
ISSQNTot : widestring;
retTrib  : widestring;
vIS  : double;
IBSCBSTot : widestring;
vNFTot  : double;
 
begin
 
// inicializar variáveis
 
totalRTC := '';
 
// informar o grupo total do ICMS
 
ICMSTot := '<ICMSTot><vBC>100.00</vBC><vICMS>18.00</vICMS><vICMSDeson>0.00</vICMSDeson><vFCPUFDest>1.00</vFCPUFDest><vICMSUFDest>2.40</vICMSUFDest><vICMSUFRemet>3.60</vICMSUFRemet><vFCP>0.00</vFCP>' + '<vBCST>0.00</vBCST><vST>0.00</vST><vFCPST>0.00</vFCPST><vFCPSTRet>0.00</vFCPSTRet><vProd>100.00</vProd><vFrete>0.00</vFrete><vSeg>0.00</vSeg><vDesc>0.00</vDesc><vII>0.00</vII><vIPI>0.00</vIPI>'+'<vIPIDevol>0.00</vIPIDevol><vPIS>0.00</vPIS><vCOFINS>0.00</vCOFINS><vOutro>0.00</vOutro><vNF>100.00</vNF></ICMSTot>';
 
// informar o grupo total do ISSQN
 
ISSQNTot := '';
 
// informar o grupo total do Tributos Retidos
 
retTrib := '';
 
// informar o valor do IS
 
vIS := 0;
 
// informar o grupo total do IBS/CBS
 
IBSCBSTot := '<IBSCBSTot><vBIBSCBS>1234.56</vBIBSCBS><gIBS><gIBSUF><vDif>100.00</vDif><vDevTrib>10.00</vDevTrib><vIBSUF>90.00</vIBSUF></gIBSUF>'+'<gIBSMun><vDif>20.00</vDif><vDevTrib>30.00</vDevTrib><vIBSMun>40.00</vIBSMun></gIBSMun><vIBS>100.00</vIBS><vCredPres>0.00</vCredPres><vCredPresCondSus>0.00</vCredPresCondSus></gIBS>'+'<gCBS><vDif>100.00</vDif><vDevTrib>10.00</vDevTrib><vCBS>90.00</vCBS><vCredPres>0.00</vCredPres><vCredPresCondSus>0.00</vCredPresCondSus></gCBS><gMono><vIBSMono>1000.00</vIBSMono><vCBSMono>2000.00</vCBSMono>'+'<vIBSMonoReten>300.00</vIBSMonoReten><vCBSMonoReten>400.00</vCBSMonoReten><vIBSMonoRet>50.00</vIBSMonoRet><vCBSMonoRet>60.00</vCBSMonoRet></gMono></IBSCBSTot>';
 
// informar o valor total da NF-e
 
vNFTot := 123456.78;
 
//   instancia DLL - late binding
 
objNFeUtil := CreateOleObject('NFe_Util_2G.util');
 
// gera XML de totais da NF-e
 
totalRTC := objNFeUtil.totalRTC(ICMSTot,
                               ISSQNTot,
                               retTrib,
                               vIS,
                               IBSCBSTot,
                               vNFTot);
 
MessageDlg( 'XML resultante: '+totalRTC, mtInformation, [mbOk], 0);
 
end;

c#

 
// grupo totais da NF-e
 
// instancia a DLL
 
NFe_Util_2G.Util util = new NFe_Util_2G.Util();
 
// inicializar variáveis
 
string totalRTC = "";
 
// informar o grupo total do ICMS
 
string ICMSTot = "<ICMSTot><vBC>100.00</vBC><vICMS>18.00</vICMS><vICMSDeson>0.00</vICMSDeson><vFCPUFDest>1.00</vFCPUFDest><vICMSUFDest>2.40</vICMSUFDest><vICMSUFRemet>3.60</vICMSUFRemet><vFCP>0.00</vFCP><vBCST>0.00</vBCST><vST>0.00</vST><vFCPST>0.00</vFCPST><vFCPSTRet>0.00</vFCPSTRet><vProd>100.00</vProd><vFrete>0.00</vFrete><vSeg>0.00</vSeg><vDesc>0.00</vDesc><vII>0.00</vII><vIPI>0.00</vIPI><vIPIDevol>0.00</vIPIDevol><vPIS>0.00</vPIS><vCOFINS>0.00</vCOFINS><vOutro>0.00</vOutro><vNF>100.00</vNF></ICMSTot>";
 
// informar o grupo total do ISSQN
 
string ISSQNtot = "";
 
// informar o grupo total do Tributos Retidos
 
string retTrib = "";
 
// informar o valor do IS
 
double vIS = 0;
 
// informar o grupo total do IBS/CBS
 
string IBSCBSTot = "<IBSCBSTot><vBIBSCBS>1234.56</vBIBSCBS><gIBS><gIBSUF><vDif>100.00</vDif><vDevTrib>10.00</vDevTrib><vIBSUF>90.00</vIBSUF></gIBSUF><gIBSMun><vDif>20.00</vDif><vDevTrib>30.00</vDevTrib><vIBSMun>40.00</vIBSMun></gIBSMun><vIBS>100.00</vIBS><vCredPres>0.00</vCredPres><vCredPresCondSus>0.00</vCredPresCondSus></gIBS><gCBS><vDif>100.00</vDif><vDevTrib>10.00</vDevTrib><vCBS>90.00</vCBS><vCredPres>0.00</vCredPres><vCredPresCondSus>0.00</vCredPresCondSus></gCBS><gMono><vIBSMono>1000.00</vIBSMono><vCBSMono>2000.00</vCBSMono><vIBSMonoReten>300.00</vIBSMonoReten><vCBSMonoReten>400.00</vCBSMonoReten><vIBSMonoRet>50.00</vIBSMonoRet><vCBSMonoRet>60.00</vCBSMonoRet></gMono></IBSCBSTot>";
 
// informar o valor total da NF-e
 
double vNFTot = 123456.78;
 
// gera XML de totais da NF-e
 
totalRTC = util.totalRTC(ICMSTot, ISSQNtot, retTrib, vIS, IBSCBSTot, vNFTot);
14.7. Totais da NF-e [RTC]
14. Gerar XML da NF-e
« Anterior
14.6.4. Item da NF-e NT 2021/004 [obsoleto]
Próximo »
14.7.1. Total ICMS NT2023/001 [15-03-23]