14. Gerar XML da NF-e [23-12-13]
14.1. Identificação da NF-e NT2020/06 [21-02-21]
14. Gerar XML da NF-e [23-12-13]
« Anterior
14.2. Informações das Notas Fiscais referenciadas
Próximo »

14.1. Identificação da NF-e NT2020/06 [21-02-21]

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

Assinatura

string identificador202006(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)

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.

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
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);
(campo novo, obrigatório, a DLL gera somente quando indPres=1, 2, 3 4 ou 9)
[21-02-21]

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 deve ser criado em separado se necessário.

Retorno:

Um string com o grupo XML de identificação

XML:

Exemplo de trecho do XML

<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>

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

 
'
'   DECLARAÇÃO DAS VARIÁVEIS
'======Identificação do documento=======
'
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
 
 
' inicializar variáveis
'...............................................
'
'         criação dos grupos
'
'
'========grupo de identificação da NF-e - grupo B do Manual de integração
'

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
ide_dhEmi = "2021-02-10T10:12:13-03:00"        ' data de emissão no formato UTC
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_2G"     ' 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);

'     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
 
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.identificador202006(ide_cUF, _
                                  ide_cNF, _
                                  ide_natOp, _
                                  ide_Mod, _
                                  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)
 
MsgBox ide, vbInformation, "Informação"

Delphi

 
procedure TForm1.Button1Click(Sender: TObject);
 
var
 
Util: OleVariant;
 
ide:widestring;
ide_cUF : integer;
ide_natOp :widestring;
ide_Mod : integer;
ide_serie  : integer;
ide_nNF : integer;
ide_dhEmi :widestring;
ide_dhSaiEnt :widestring;
ide_tpNF  : integer;
ide_idDest : integer;
ide_cMunFG :widestring;
ide_tpImp : integer;
ide_tpAmb  : integer;
ide_finNFe  : integer;
ide_tpEmis  : integer;
ide_procEmi  : integer;
ide_verProc :widestring;
ide_NFref : widestring;
ide_dhCont :widestring;
ide_xJust : widestring;
ide_indFinal : integer;
ide_indPres : integer;
ide_cNF :widestring;
ide_cDV :widestring;
ide_indIntermed : integer;
 
begin
 
 
 
ide_cUF := 35;
ide_natOp := 'Venda';
ide_mod := 55;
ide_serie := 0;
ide_nNF := 1;
ide_dhEmi := '2021-02-10T10:12:13-03:00';
ide_dhSaiEnt := '';
ide_tpNF := 1;
ide_idDest := 1;
ide_cMunFG := '3550308';
ide_tpImp := 1;
ide_tpAmb := 2;
ide_finNFe := 1;
ide_tpEmis := 1;
ide_procEmi := 0;
ide_verProc := 'NFe_Util_2G';
ide_NFref := '';
ide_dhCont := '';
ide_xJust := '';
ide_idDest := 1;
ide_indFinal := 0;
ide_indPres := 0;
ide_indIntermed :=0;
ide_cNF := '0';
ide_cDV := '0';
 
//
//   gera grupo ide
//
 
Util := CreateOleObject('NFe_Util_2G.util');
 
ide := Util.identificador202006(ide_cUF,
                                  ide_cNF,
                                  ide_natOp,
                                  ide_Mod,
                                  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);
 
 
 MessageDlg( 'XML resultante: '+ide, mtInformation, [mbOk], 0);
 
 
end;
14.1. Identificação da NF-e NT2020/06 [21-02-21]
14. Gerar XML da NF-e [23-12-13]
« Anterior
14. Gerar XML da NF-e [23-12-13]
Próximo »
14.2. Informações das Notas Fiscais referenciadas