14. Gerar XML da NF-e
14.1. Identificação da NF-e [RTC]
14. Gerar XML da NF-e
« Anterior
14.1.1. Informações das Notas Fiscais referenciadas
Próximo »

14.1. Identificação da NF-e [RTC]

Sumário

Funcionalidade para gerar o XML do grupo do Identificação da NF-e 4.00

Assinatura

string identificadorRTC(int cUF, int cNF, string natOp, int mod, int serie, int nNF, string dhEmi, string dhSaiEnt, int tpNF, int idDest, string cMunFG, string NFref, int tpImp, int tpEmis,int cDV, int tpAmb, int finNFe, int indFinal, int indPres, int procEmi, string verProc, string dhCont, string xJust, int indIntermed_Opc, string cMunFGIBS_Opc_Opc, int tpNFDebito_Opc, string gCompraGov_Opc , string NFesPagtoAgendado_Opc)

Descrição:

Funcionalidade para gerar o XML do grupo do Identificação da NF-e da versão 4.x do leiaute da NF-e.

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
cUF inteiro - sim informar o código da UF do emitente do Documento Fiscal, utilizar a codificação do IBGE (Ex. SP->35, RS->43, etc.)
cNF inteiro - sim informar o código numérico que compõe a Chave de Acesso. Número aleatório gerado pelo emitente para cada NF-e para evitar acessos indevidos da NF-e.
natOpe string 1-60 sim informar a natureza da operação de que decorrer a saída ou a entrada, tais como: venda, compra, transferência, devolução, importação, consignação, remessa (para fins de demonstração, de industrialização outra), conforme previsto na alínea 'i', inciso I, art. 19 do CONVÊNIO S/Nº, de 15 de dezembro de 1970.
mod inteiro - sim informar o código do Modelo do Documento Fiscal, código 55 para a NF-e ou código 65 para NFC-e.
serie inteiro - sim Série do Documento Fiscal, preencher com zeros na hipótese de a NF-e não possuir série.
Série na faixa:
- [000-889]: Aplicativo do Contribuinte; Emitente=CNPJ; Assinatura pelo e-CNPJ do contribuinte (procEmi<>1,2);
- [890-899]: Emissão no site do Fisco (NFA-e - Avulsa);Emitente= CNPJ / CPF; Assinatura pelo e-CNPJ da SEFAZ (procEmi=1);
- [900-909]: Emissão no site do Fisco (NFA-e); Emitente=CNPJ; Assinatura pelo e-CNPJ da SEFAZ (procEmi=1), ou Assinatura pelo e-CNPJ do contribuinte (procEmi=2);
- [910-919]: Emissão no site do Fisco (NFA-e); Emitente=CPF; Assinatura pelo e-CNPJ da SEFAZ (procEmi=1), ou Assinatura pelo e-CPF do contribuinte (procEmi=2);
- [920-969]: Aplicativo do Contribuinte; Emitente=CPF; Assinatura pelo e-CPF do contribuinte (procEmi<>1,2);
nNF infeiro - sim informar o Número do Documento Fiscal.
dhEmi string 25 sim informar a data de emissão do Documento Fiscal no padrão UTC - Universal Coordinated Time, onde TZD pode ser -02:00 (Fernando de Noronha), -03:00 (Brasília) ou -04:00(Manaus), no horário de verão serão - 01:00, -02:00 e -03:00. Ex.: 2010-08-19T13:00:15-03:00.
Nota 1: No caso da NF-e, a informação da Hora de Emissão é opcional, podendo ser informada com zeros.
Nota 2: A emissão da NFC-e deve ocorrer de forma on-line, realtime, com uma tolerância de até 5 minutos, devido ao sincronismo de horário do servidor da Empresa e o servidor da SEFAZ.
Nota 3: A tolerância acima motivada pelo horário dos servidores, somada ao atraso permitido para a autorização da NFC-e acaba resultando em um atraso máximo de 10 minutos a ser controlado pela aplicação da SEFAZ.
dhSaiEnt string 25 não informar a data e hora de Saída ou da Entrada da Mercadoria/Produto no padrão UTC - Universal Coordinated Time, onde TZD pode ser -02:00 (Fernando de Noronha), -03:00 (Brasília) ou -04:00(Manaus), no horário de verão serão - 01:00, -02:00 e -03:00. Ex.: 2010-08-19T13:00:15-03:00.
Nota: Para a NFC-e este campo não deve existir.
tpNF inteiro - sim informar o código do tipo do Documento Fiscal:
0 - entrada;
1 - saída.
idDest inteiro - sim informar o identificador de local de destino da operação:
1 - Operação interna;
2 - Operação interestadual;
3 - Operação com exterior.
cMunFG string 7 sim informar o código do Município de Ocorrência do Fato Gerador do ICMS, que é o local onde ocorre a entrada ou saída da mercadoria, utilizar a Tabela do IBGE
NFRef string - não informar o grupo de informações NFRef dos documentos fiscais referenciados, Utilizar para referenciar um Documento Fiscal vinculado a NF-e atual. Esta informação será utilizada nas hipóteses previstas na legislação. (Ex.: Devolução de Mercadorias, Substituição de NF cancelada, Complementação de NF, etc.). Necessário montar o grupo XML do documento correspondente.
tpImp inteiro - sim informar o formato de impressão do DANFE:
0 - Sem geração de DANFE;
1 - DANFE normal, Retrato;
2 - DANFE normal, Paisagem;
3 - DANFE Simplificado;
4 - DANFE NFC-e;
5 - DANFE NFC-e em mensagem eletrônica (o envio de mensagem eletrônica pode ser feita de forma simultânea com a impressão do DANFE; usar o tpImp - 5 quando esta for a única forma de disponibilização do DANFE).
tpEmis inteiro - sim informar o código da forma de emissão:
1 - Emissão normal (não em contingência);
2 - Contingência FS-IA, com impressão do DANFE em formulário de segurança;
3 - Contingência SCAN (Sistema de Contingência do Ambiente Nacional);
4 - Contingência EPEC (Evento Prévio de Emissão em Contingência);
5 - Contingência FS-DA, com impressão do DANFE em formulário de segurança;
6 - Contingência SVC-AN (SEFAZ Virtual de Contingência do AN);
7 - Contingência SVC-RS (SEFAZ Virtual de Contingência do RS);
9 - Contingência off-line da NFC-e;
Nota 1: Para a NFC-e somente são válidas as opções de contingência 4 (EPEC) e 9 (off-line), sendo que a disponibilidade da opção de contingência depende da UF (Ex.: SP só permite a contingência EPEC).
Nota 2: SVC-AN e SVC-RS substituem o SCAN - NT 2013/007.
cDV inteiro - sim informar o código do dígito verificador - DV da Chave de Acesso da NF-e, o DV será calculado com a aplicação do algoritmo módulo 11 (base 2,9) da Chave de Acesso.
tpAmb inteiro - sim informar o código de identificação do Ambiente:
1 - Produção;
2 - Homologação
finNFe inteiro - sim informar o código da finalidade de emissão da NF-e:
1 - NF-e normal;
2 - NF-e complementar;
3 - NF-e de ajuste;
4 - Devolução;
5 - Nota de crédito;(nova finalidade - RTC)
6 - Nota de débito;(nova finalidade - RTC)
indFinal inteiro - sim informar o indicador de operação com Consumidor final:
0 - Não;
1 - Consumidor final;
indPres inteiro - sim Informar o indicador de presença do comprador no estabelecimento comercial no momento da operação:
0 - Não se aplica (por exemplo, Nota Fiscal complementar ou de ajuste);
1 - Operação presencial;
2 - Operação não presencial, pela Internet;
3 - Operação não presencial, Teleatendimento;
4 - NFC-e em operação com entrega a domicílio;
5 - Operação presencial fora do estabelecimento.
9 - Operação não presencial, outros.
(obrigatório informar a tag indIntermed_Opc quando = 2, 3, 4 e 9) [14-02-21]
procEmi inteiro - sim informar o código de identificação do processo de emissão da NF-e: Identificador do processo de emissão da NF-e:
0 - emissão de NF-e com aplicativo do contribuinte;
1 - emissão de NF-e avulsa pelo Fisco;
2 - emissão de NF-e avulsa, pelo contribuinte com seu certificado digital, através do site do Fisco;
3 - emissão NF-e pelo contribuinte com aplicativo fornecido pelo Fisco.
verProc string 1-20 sim informar a versão do processo de emissão da NF-e utilizada (aplicativo emissor de NF-e).
dhCont string 25 não informar a data e hora de entrada em contingência no padrão UTC - Universal Coordinated Time, onde TZD pode ser -02:00 (Fernando de Noronha), -03:00 (Brasília) ou -04:00(Manaus), no horário de verão serão - 01:00, -02:00 e -03:00. Ex.: 2010-08-19T13:00:15-03:00.
Importante: dhCont e xJust devem ser ambos informados ou omitidos.
xJust string 15-256 não informar a justificativa de entrada em contingência, deve ser informado sempre que tpEmis for diferente de 1.
Importante: dhCont e xJust devem ser ambos informados ou omitidos.
indIntermed_Opc inteiro - ? informar o indicador de intermediador/marketplace:
0=Operação sem intermediador (em site ou plataforma própria);
1=Operação em site ou plataforma de terceiros (intermediadores/marketplace);
(Obs.: A DLL gera somente quando indPres=1, 2, 3 4 ou 9)
[21-02-21]
cMunFGIBS_Opc string 7 não informar o código do Município de Ocorrência do Fato Gerador do IBS/CBS.
Campo preenchido somente quando “indPres = 5 (Operação presencial, fora do estabelecimento)”, e não tiver endereço do destinatário (Grupo: E05) ou local de entrega (Grupo: G01)
(campo novo RTC)
tpNFDebito_Opc inteiro - não informar o Tipo de Nota de Débito:
01=Transferência de créditos para Cooperativas;
02=Anulação de Crédito por Saídas Imunes/Isentas;
03=Débitos de notas fiscais não processadas na apuração;
04=Multa e juros;
05=Transferência de crédito de sucessão;
(campo novo RTC)
tpNFCredito_Opc inteiro - não informar o Tipo de Nota de Crédito:
A Definir.
(campo novo RTC)
gCompraGov_Opc string - não informar o grupo gCompraGov - Compra Governamental
(campo novo RTC)
gPagAntecipado_Opc string - não informar a(s) chave(s) das NFe(s) gPagAntecipado - Notas de antecipação de pagamentos
(campo novo RTC)

Diagrama:

DiagramaIdentificacao

Dica

Os campos com contorno tracejado podem ser omitidos se a operação não exigir a informação.

Os campos em verde são tags novas ou tags que sofreram alteração na definição na versão 3.x0 do leiaute.

Os campos do tipo data foram modificados para string e devem ser informados no formato UTC - Universal Coordinated Time, onde TZD pode ser -02:00 (Fernando de Noronha), -03:00 (Brasília) ou -04:00(Manaus), no horário de verão serão - 01:00, -02:00 e -03:00. Ex.: 2010-08-19T13:00:15-03:00

O grupo XML NFRef dos documentos fiscais referenciados e o grupo gCompraGov devem ser criado em separado se necessário.

Retorno:

Um string com o grupo XML de identificação

XML:

Exemplo de trecho do XML sem campos da RTC

<ide>
    <cUF>35</cUF>
    <cNF>00559284</cNF>
    <natOp>Venda</natOp>
    <mod>55</mod>
    <serie>0</serie>
    <nNF>1</nNF>
    <dhEmi>2021-02-10T10:12:13-02:00</dhEmi>
    <tpNF>1</tpNF>
    <idDest>1</idDest>
    <cMunFG>3550308</cMunFG>
    <tpImp>1</tpImp>
    <tpEmis>1</tpEmis>
    <cDV>3</cDV>
    <tpAmb>2</tpAmb>
    <finNFe>1</finNFe>
    <indFinal>0</indFinal>
    <indPres>0</indPres>
    <indIntermed>0</indIntermed>
    <procEmi>0</procEmi>
    <verProc>NFe_Util_2G</verProc>
</ide>

Exemplo de trecho do XML com campos da RTC (compra governamental)

<ide>
  <cUF>35</cUF>
  <cNF>47217327</cNF>
  <natOp>Venda</natOp>
  <mod>55</mod>
  <serie>0</serie>
  <nNF>1</nNF>
  <dhEmi>2025-06-10T10:12:13-03:00</dhEmi>
  <tpNF>1</tpNF>
  <idDest>1</idDest>
  <cMunFG>3550308</cMunFG>
  <tpImp>1</tpImp>
  <tpEmis>1</tpEmis>
  <cDV>0</cDV>
  <tpAmb>2</tpAmb>
  <finNFe>1</finNFe>
  <indFinal>0</indFinal>
  <indPres>0</indPres>
  <procEmi>0</procEmi>
  <verProc>NFe_Util_RTC</verProc>
  <!--    RTC -  grupo de compra governamental      -->
  <gCompraGov>
    <tpEnteGov>1</tpEnteGov>
    <pRedutor>10.00</pRedutor>
  </gCompraGov>
</ide>

Exemplo de trecho do XML com campos da RTC (compra governamental)

<ide>
  <cUF>35</cUF>
  <cNF>47217327</cNF>
  <natOp>Venda</natOp>
  <mod>55</mod>
  <serie>0</serie>
  <nNF>1</nNF>
  <dhEmi>2025-06-10T10:12:13-03:00</dhEmi>
  <tpNF>1</tpNF>
  <idDest>1</idDest>
  <cMunFG>3550308</cMunFG>
  <tpImp>1</tpImp>
  <tpEmis>1</tpEmis>
  <cDV>0</cDV>
  <tpAmb>2</tpAmb>
  <finNFe>1</finNFe>
  <indFinal>0</indFinal>
  <indPres>0</indPres>
  <procEmi>0</procEmi>
  <verProc>NFe_Util_RTC</verProc>
  <!--    RTC -  grupo de compra governamental      -->
  <gCompraGov>
    <tpEnteGov>1</tpEnteGov>
    <pRedutor>10.00</pRedutor>
  </gCompraGov>
  <!--    RTC -  grupo de pagamento antecipado      -->
  <gPagAntecipado>
    <refNFe>41090501234567801235500100000999999999</refNFe>
  </gPagAntecipado>
</ide>

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 sendo desnecessária, pois os browser exibem formatado.

Exemplos de uso:

Visual Basic 6.0

 
 
'========grupo de identificação da NF-e - grupo B do Manual de integração - NT 2025/002-RTC

' declaração das variáveis

Dim ide As String
Dim ide_cUF As Long
Dim ide_cNF As String
Dim ide_natOp As String
Dim ide_mode As Long
Dim ide_serie As Long
Dim ide_nNF As Long
Dim ide_dhEmi As String
Dim ide_dhSaiEnt As String
Dim ide_tpNF As Long
Dim ide_cMunFG As String
Dim ide_tpImp As Long
Dim ide_cDV As Long
Dim ide_tpAmb As Long
Dim ide_finNFe As Long
Dim ide_tpEmis As Long
Dim ide_procEmi As Long
Dim ide_verProc As String
Dim ide_NFref As String
 
Dim ide_hSaiEnt As String
Dim ide_dhCont As String
Dim ide_xJust As String
Dim ide_indPres As Long
Dim ide_indFinal As Long
Dim ide_idDest As Long
 
Dim ide_indIntermed As Long
 
' novos campos RTC

Dim ide_cMunFGIBS As String
Dim ide_tpNFDebito As String
Dim ide_tpNFCredito As String
Dim ide_gCompraGov As String
Dim ide_gPagAntecipado As String
 
' inicializar variáveis

ide_cUF = 35                    ' código da UF - tabela do IBGE: 35 - SP, 43 - RS, etc
ide_natOp = "Venda"             ' naturez da operação
ide_mode = 55                   ' modelo da nota fiscal eletronica 55 NF-e ou 65 NFC-e
ide_serie = 0                   ' série única = 0
ide_nNF = 1                     ' número da NF-e
' data de emissão no formato UTC
ide_dhEmi = "2025-06-10T10:12:13-03:00"
 
ide_dhSaiEnt = ""               ' data da saída no formato UTC

ide_tpNF = 1                    ' 1 - nota fiscal de saída
                                ' 0 - nota fiscal de entrada

ide_idDest = 1                  ' 1 - Operação interna;
                                ' 2 - Operação interestadual;
                                ' 3 - Operação com exterior.

ide_cMunFG = "3550308"          ' código do município do IBGE de ocorrência do FG do ICMS

ide_tpImp = 1                   ' orientação da impressão
                                ' 0-Sem geração de DANFE;
                                ' 1-DANFE normal , Retrato;
                                ' 2-DANFE normal, Paisagem;
                                ' 3-DANFE Simplificado;
                                ' 4-DANFE NFC-e;
                                ' 5-DANFE NFC-e em mensagem eletrônica

ide_tpAmb = 2                   ' ambiente de envio da NF-e 1-produção / 2 - homologação

ide_finNFe = 1                  ' finalidade da emissão da NF-e:
                                ' 1 - NF-e normal
                                ' 2 - NF-e complementar;
                                ' 3 - NF-e de ajuste;
                                ' 4 - Devolução;
                                ' 5 - Nota de crédito;(nova finalidade - RTC)
                                ' 6 - Nota de débito;(nova finalidade - RTC)

ide_tpEmis = 1                  ' forma de emissão da NF-e:
                                ' 1 - Emissão normal (não em contingência);
                                ' 2 - Contingência FS-IA, com impressão do DANFE em formulário de segurança;
                                ' 4 - Contingência EPEC (Evento Prévio da Emissão em Contingência);
                                ' 5 - Contingência FS-DA, com impressão do DANFE em formulário de segurança;
                                ' 6 - Contingência SVC-AN (SEFAZ Virtual de Contingência do AN);
                                ' 7 - Contingência SVC-RS (SEFAZ Virtual de Contingência do RS);
                                ' 9 - Contingência off-line da NFC-e (somente para a NFC-e e desde que a UF permita);
                                ' Opções válidas para a NF-e: 1, 2, 4, 5, 6 e 7
                                ' Opções válidas para a NFC-e: 1, 4 ou 9, consultar UF.
ide_procEmi = 0                 ' identificação do processo de emissão da NF-e 0 - aplicação do contribuinte
ide_verProc = "NFe_Util_RTC"    ' identificação da versão do processo de emissão
ide_NFref = ""                  ' grupo XML da NF referenciada, utilizar as funcionalidade para gerar o grupo da NFRef se necessário
ide_dhCont = ""                 ' data e hora de entrada em contingência no formato UTC
ide_xJust = ""                  ' justificativa para emissão em contingência

ide_idDest = 1                  ' 1 - Operação interna;
                                ' 2 - Operação interestadual;
                                ' 3 - Operação com exterior.

ide_indFinal = 0                ' 0 - não / 1 - consumidor final

ide_indPres = 0                 ' Indicar de presença do comprado no estabelecimento comercial no momento da operação
                                ' 0 =Não se aplica (por exemplo, para a Nota Fiscal complementar ou de ajuste);
                                ' 1 - Operação presencial;
                                ' 2 - Operação não presencial, pela Internet;
                                ' 3 - Operação não presencial, Teleatendimento;
                                ' 4 - NFC-e em operação com entrega em domicílio;
                                ' 5 - Operação presencial fora do estabelecimento;
                                ' 9 - Operação não presencial, outros.
                                ' Nota: Para a NFC-e, somente são aceitas as opções 1 e 4.

ide_indIntermed = 0             ' indicador de intermediador/marketplace, obrigatório informar quando indPres =2, 3, 4 ou 9
                                ' 0=Operação sem intermediador (em site ou plataforma própria)
                                ' 1=Operação em site ou plataforma de terceiros (intermediadores/marketplace);

ide_cMunFGIBS = ""              ' informar o código do Município de Ocorrência do Fato Gerador do IBS/CBS.
                                ' Campo preenchido somente quando "indPres = 5 (Operação presencial, fora do estabelecimento)",
                                ' e não tiver endereço do destinatário (Grupo: E05) ou local de entrega (Grupo: G01)

ide_tpNFDebito = ""             ' informar o Tipo de Nota de Débito:
                                ' 01=Transferência de créditos para Cooperativas;
                                ' 02=Anulação de Crédito por Saídas Imunes/Isentas;
                                ' 03=Débitos de notas fiscais não processadas na apuração;
                                ' 04=Multa e juros;
                                ' 05=Transferência de crédito de sucessão;

ide_tpNFCredito = ""            ' informar o Tipo de Nota de Crédito:
                                ' A DEFINIR

' informar o grupo gCompraGov - Compra Governamental

ide_gCompraGov = "<gCompraGov><tpEnteGov>1</tpEnteGov><pRedutor>10.00</pRedutor></gCompraGov>"
 
' informar o grupo gPagAntecipado - Pagamento Antecipado

ide_gPagAntecipado = ""
 
 
'    gera a chave de acesso da NF-e

'    utilizar a função criaChaveNFe para gerar a chave de acesso, código da NF-e e DV

'    variáveis de trabalho

Dim resultado As Long
Dim emi_CNPJ As String
Dim cUF, ano, mes, modelo, serie, numero, tpemis, codigoseguranca As String
Dim msgResult As String
Dim cNF As String
Dim cDV As String
emi_CNPJ = "00000000000191"
cUF = Trim(Str(ide_cUF))
ano = Mid(ide_dhEmi, 3, 2)
mes = Mid(ide_dhEmi, 6, 2)
modelo = Trim(Str(ide_mode))
serie = Trim(Str(ide_serie))
numero = Trim(Str(ide_nNF))
tpemis = Trim(Str(ide_tpEmis))
msgResult = ""
codigoseguranca = "segredo"     ' informar uma expressão para garantir o sigilo da forma de cálculo do cNF
cNF = ""
cDV = ""
chaveNFe = ""
 
Dim objNFeUtil As Object    ' instancia DLL - late binding

Set objNFeUtil = CreateObject("NFe_Util_2G.Util")
 
resultado = objNFeUtil.CriaChaveNFe2G(cUF, ano, mes, emi_CNPJ, modelo, serie, numero, tpemis, codigoseguranca, msgResult, cNF, cDV, chaveNFe)
 
If resultado <> 5601 Then
   MsgBox "Ocorreu um erro ao gerar a chave de acesso " + msgResult, vbInformation, "Resultado"
End If
 
ide_cNF = Val(cNF)                     ' código numérico que compõe a chave de acesso
ide_cDV = Val(cDV)                     ' DV da chave de acesso da NF-e

'   gera grupo ide

ide = objNFeUtil.identificadorRTC(ide_cUF, _
                                  ide_cNF, _
                                  ide_natOp, _
                                  ide_Mode, _
                                  ide_serie, _
                                  ide_nNF, _
                                  ide_dhEmi, _
                                  ide_dhSaiEnt, _
                                  ide_tpNF, _
                                  ide_idDest, _
                                  ide_cMunFG, _
                                  ide_NFref, _
                                  ide_tpImp, _
                                  ide_tpEmis, _
                                  ide_cDV, _
                                  ide_tpAmb, _
                                  ide_finNFe, _
                                  ide_indFinal, _
                                  ide_indPres, _
                                  ide_procEmi, _
                                  ide_verProc, _
                                  ide_dhCont, _
                                  ide_xJust, _
                                  ide_indIntermed, _
                                  ide_cMunFGIBS, ide_tpNFDebito, ide_tpNFCredito, ide_gCompraGov, , ide_gPagAntecipado)
 
MsgBox ide, vbInformation, "Informação"

Delphi

 
procedure TForm1.Button3Click(Sender: TObject);
var
 
objNFeUtil: OleVariant;                       // declarar a interface da DLL
 
//    variáveis de trabalho
 
cStat : integer;
emi_CNPJ  : widestring;
cUF, ano, mes, modelo, serie, numero, tpemis, codigoseguranca  : widestring;
msgResultado  : widestring;
cNF  : widestring;
cDV  : widestring;
chaveNFe  : widestring;
 
//========grupo de identificação da NF-e - grupo B do Manual de integração - NT 2025/002-RTC
 
// declaração das variáveis
 
ide : widestring;
ide_cUF : integer;
ide_cNF : integer;
ide_natOp : widestring;
ide_mode : integer;
ide_serie : integer;
ide_nNF : integer;
ide_dhEmi : widestring;
ide_dhSaiEnt : widestring;
ide_tpNF : integer;
ide_cMunFG : widestring;
ide_tpImp : integer;
ide_cDV : integer;
ide_tpAmb : integer;
ide_finNFe : integer;
ide_tpEmis : integer;
ide_procEmi : integer;
ide_verProc : widestring;
ide_NFref : widestring;
 
ide_hSaiEnt : widestring;
ide_dhCont : widestring;
ide_xJust : widestring;
ide_indPres : integer;
ide_indFinal : integer;
ide_idDest : integer;
 
ide_indIntermed : integer;
 
// novos campos RTC
 
ide_cMunFGIBS : widestring;
ide_tpNFDebito : widestring;
ide_tpNFCredito : widestring;
ide_gCompraGov : widestring;
ide_gPagAntecipado : widestring;
 
begin
// inicializar variáveis
 
ide_cUF := 35;                    // código da UF - tabela do IBGE: 35 - SP, 43 - RS, etc
ide_natOp := 'Venda';             // naturez da operação
ide_mode := 55;                   // modelo da nota fiscal eletronica 55 NF-e ou 65 NFC-e
ide_serie := 0;                   // série única := 0
ide_nNF := 1;                     // número da NF-e
// data de emissão no formato UTC
ide_dhEmi := '2025-06-10T10:12:13-03:00';
ide_dhSaiEnt := '';               // data da saída no formato UTC
ide_tpNF := 1;                    // 1 - nota fiscal de saída
                                  // 0 - nota fiscal de entrada
ide_idDest := 1;                  // 1 - Operação interna;
                                  // 2 - Operação interestadual;
                                  // 3 - Operação com exterior.
ide_cMunFG := '3550308';          // código do município do IBGE de ocorrência do FG do ICMS
ide_tpImp := 1;                   // orientação da impressão
                                  // 0-Sem geração de DANFE;
                                  // 1-DANFE normal , Retrato;
                                  // 2-DANFE normal, Paisagem;
                                  // 3-DANFE Simplificado;
                                  // 4-DANFE NFC-e;
                                  // 5-DANFE NFC-e em mensagem eletrônica
ide_tpAmb := 2;                   // ambiente de envio da NF-e 1-produção / 2 - homologação
ide_finNFe := 1;                  // finalidade da emissão da NF-e 1- NF-e normal
ide_tpEmis := 1;                  // forma de emissão da NF-e:
                                  // 1 - Emissão normal (não em contingência);
                                  // 2 - Contingência FS-IA, com impressão do DANFE em formulário de segurança;
                                  // 4 - Contingência EPEC (Evento Prévio da Emissão em Contingência);
                                  // 5 - Contingência FS-DA, com impressão do DANFE em formulário de segurança;
                                  // 6 - Contingência SVC-AN (SEFAZ Virtual de Contingência do AN);
                                  // 7 - Contingência SVC-RS (SEFAZ Virtual de Contingência do RS);
                                  // 9 - Contingência off-line da NFC-e (somente para a NFC-e e desde que a UF permita);
                                  // Opções válidas para a NF-e: 1, 2, 4, 5, 6 e 7
                                  // Opções válidas para a NFC-e: 1, 4 ou 9, consultar UF.
ide_procEmi := 0;                 // identificação do processo de emissão da NF-e 0 - aplicação do contribuinte
ide_verProc := 'NFe_Util_RTC';    // identificação da versão do processo de emissão
ide_NFref := '';                  // grupo XML da NF referenciada, utilizar as funcionalidade para gerar o grupo da NFRef se necessário
ide_dhCont := '';                 // data e hora de entrada em contingência no formato UTC
ide_xJust := '' ;                 // justificativa para emissão em contingência
 
ide_idDest := 1;                  // 1 - Operação interna;
                                  // 2 - Operação interestadual;
                                  // 3 - Operação com exterior.
 
ide_indFinal := 0;                // 0 - não / 1 - consumidor final
 
ide_indPres := 0;                 // Indicar de presença do comprado no estabelecimento comercial no momento da operação
                                  // 0 :=Não se aplica (por exemplo, para a Nota Fiscal complementar ou de ajuste);
                                  // 1 - Operação presencial;
                                  // 2 - Operação não presencial, pela Internet;
                                  // 3 - Operação não presencial, Teleatendimento;
                                  // 4 - NFC-e em operação com entrega em domicílio;
                                  // 5 - Operação presencial fora do estabelecimento;
                                  // 9 - Operação não presencial, outros.
                                  // Nota: Para a NFC-e, somente são aceitas as opções 1 e 4.
 
ide_indIntermed := 0;             // indicador de intermediador/marketplace, obrigatório informar quando indPres :=2, 3, 4 ou 9
                                  // 0:=Operação sem intermediador (em site ou plataforma própria)
                                  // 1:=Operação em site ou plataforma de terceiros (intermediadores/marketplace);
 
ide_cMunFGIBS := '';              // informar o código do Município de Ocorrência do Fato Gerador do IBS/CBS.
                                  // Campo preenchido somente quando 'indPres := 5 (Operação presencial, fora do estabelecimento)',
                                  // e não tiver endereço do destinatário (Grupo: E05) ou local de entrega (Grupo: G01)
 
ide_tpNFDebito := '';             // informar o Tipo de Nota de Débito:
                                  // 01:=Transferência de créditos para Cooperativas;
                                  // 02:=Anulação de Crédito por Saídas Imunes/Isentas;
                                  // 03:=Débitos de notas fiscais não processadas na apuração;
                                  // 04:=Multa e juros;
                                  // 05:=Transferência de crédito de sucessão;
 
ide_tpNFCredito := '';            // informar o Tipo de Nota de Crédito:
                                  // A DEFINIR
 
// informar o grupo gCompraGov - Compra Governamental
 
ide_gCompraGov := '<gCompraGov><tpEnteGov>1</tpEnteGov><pRedutor>10.00</pRedutor></gCompraGov>';
 
' informar o grupo gPagAntecipado - Pagamento Antecipado
 
ide_gPagAntecipado := '';
 
//    gera a chave de acesso da NF-e
 
//    utilizar a função criaChaveNFe para gerar a chave de acesso, código da NF-e e DV
 
emi_CNPJ := '00000000000191';
Str(ide_cUF,cUF);
ano := copy(ide_dhEmi, 3, 2);
mes := copy(ide_dhEmi, 6, 2);
Str(ide_mode,modelo);
Str(ide_serie, serie);
Str(ide_nNF, numero);
Str(ide_tpEmis, tpemis);
msgResultado := '';
codigoseguranca := 'segredo';     // informar uma expressão para garantir o sigilo da forma de cálculo do cNF
cNF := '';
cDV := '';
chaveNFe := '';
 
objNFeUtil := CreateOleObject('NFe_Util_2G.util');            // instancia a DLL late binding
 
cStat:= objNFeUtil.CriaChaveNFe2G(cUF, ano, mes, emi_CNPJ, modelo, serie, numero, tpemis, codigoseguranca, msgResultado, cNF, cDV, chaveNFe);
 
 
if cStat <> 5601 then
     MessageDlg( 'Erro na criação da chave da NF-e! ', mtError, [mbOk], 0)
else
begin
 
ide_cNF := StrToInt(cNF);                     // código numérico que compõe a chave de acesso
ide_cDV := StrToInt(cDV);                     // DV da chave de acesso da NF-e
 
//   gera grupo ide
 
ide := objNFeUtil.identificadorRTC(ide_cUF,
                                  ide_cNF,
                                  ide_natOp,
                                  ide_Mode,
                                  ide_serie,
                                  ide_nNF,
                                  ide_dhEmi,
                                  ide_dhSaiEnt,
                                  ide_tpNF,
                                  ide_idDest,
                                  ide_cMunFG,
                                  ide_NFref,
                                  ide_tpImp,
                                  ide_tpEmis,
                                  ide_cDV,
                                  ide_tpAmb,
                                  ide_finNFe,
                                  ide_indFinal,
                                  ide_indPres,
                                  ide_procEmi,
                                  ide_verProc,
                                  ide_dhCont,
                                  ide_xJust,
                                  ide_indIntermed,
                                  ide_cMunFGIBS,
                                  ide_tpNFDebito,
                                  ide_tpNFCredito,
                                  ide_gCompraGov,
                                  ide_gPagAntecipado);
 
 
 MessageDlg( 'XML resultante: '+ide, mtInformation, [mbOk], 0);
 
end;
 
end;

c#

 
//========grupo de identificação da NF-e - grupo B do Manual de integração - NT 2025/002-RTC
 
 
string identificadorRTC = "";
int cUF = 0;
int cNF = 0;
string natOp = "Venda";
int mod = 55;
int serie = 1;
int nNF = 1;
string dhEmi = "2025-06-10T10:12:13-03:00";
string dhSaiEnt = "";
int tpNF = 1;
int idDest = 1;
string cMunFG = "3550308";
string NFref_Opc = "";
int tpImp = 1;
int tpEmis = 1;
int cDV = 0;
int tpAmb = 2;
int finNFe = 1;
int indFinal = 2;
int indPres = 1;
int procEmi = 0;
string verProc = "RTC-500";
string dhCont = "";
string xJust = "";
int indIntermed_Opc = 0;
string cMunFGIBS_Opc = "3550308";
string tpNFDebito_Opc = "";
string tpNFCredito_Opc = "";
string gCompraGov_Opc = "<gCompraGov><tpEnteGov>0</tpEnteGov><pRedutor>10.00</pRedutor></gCompraGov>";
string gPagAntecipado_Opc = "";
 
// instancia DLL
 
NFe_Util_2G.Util util = new NFe_Util_2G.Util();
 
// gera grupo ide
 
identificadorRTC = util.identificadorRTC(cUF,
                      cNF,
                      natOp,
                      mod,
                      serie,
                      nNF,
                      dhEmi,
                      dhSaiEnt,
                      tpNF,
                      idDest,
                      cMunFG,
                      NFref_Opc,
                      tpImp,
                      tpEmis,
                      cDV,
                      tpAmb,
                      finNFe,
                      indFinal,
                      indPres,
                      procEmi,
                      verProc,
                      dhCont,
                      xJust,
                      indIntermed_Opc,
                      cMunFGIBS_Opc,
                      tpNFDebito_Opc,
                      tpNFCredito_Opc,
                      gCompraGov_Opc,
                      gPagAntecipado_Opc);
 
// mostra XML gerado
 
MessageBox.Show( identificadorRTC);
14.1. Identificação da NF-e [RTC]
14. Gerar XML da NF-e
« Anterior
14. Gerar XML da NF-e
Próximo »
14.1.1. Informações das Notas Fiscais referenciadas