3. Gerar o XML do MDF-e
3.1. Identificação do MDF-e [24/07/19]
3. Gerar o XML do MDF-e
« Anterior
3.1.1. Informação dos Municípios de Carregamento
Próximo »

3.1. Identificação do MDF-e [24/07/19]

Sumário

Funcionalidade para gerar o XML do grupo do Identificação do MDF-e

Assinatura

string ide_v3a(int cUF, int tpAmb, int tpEmit, string tpTransp_Opc,int mod, int serie, int nMDF, int cMDF, int cDV, string modal, string dhEmi, int tpEmis, int procEmi, string verProc, string UFIni, string UFFim, string infMunCarrega_Grupo, string infPercurso_Grupo_Opc, string dhIniViagem_Opc, string indCanalVerde_Opc, string indCarregaPosterior_Opc)

Descrição:

Funcionalidade para gerar o XML do grupo do Identificação do leiaute do MDF-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.).
tpAmb inteiro 1 sim informar tipo de ambiente:
1 - Produção;
2 - Homologação.
tpEmit inteiro 1 sim informar tipo do emitente:
1 - Prestador de serviço de transporte;
2 - Transporte de Carga Própria. [20-03-13]
OBS: Deve ser preenchido com 2 por Emitentes de NF-e e pelas Transportadoras quando estiverem fazendo transporte de carga própria
NT 2013/001
tpTransp string 1 não informar o Tipo do Transportador:
1 - ETC
2 - TAC
3 - CTC
Para omitir informe ""
[campo NOVO versão 3.00]
mod inteiro 2 sim informar o código do Modelo do Documento Fiscal, código 58 para a MDF-e.
serie inteiro 1-3 sim informar a série do Documento Fiscal, informar 0 (zero) para série única.
nMDF inteiro 1-9 sim informar o Número do MDF-e.
cMDF inteiro - sim informar o código numérico que compõe a Chave de Acesso. Número aleatório gerado pelo emitente para cada MDF-e para evitar acessos indevidos ao documento.
cDV inteiro 1 sim informar o Dígito Verificador da chave de acesso do MDF-e.
modal string 1 sim informar o Modal:
1 - Rodoviário;
2 - Aéreo;
3 - Aquaviário;
4 - Ferroviário.
dhEmi string 25 sim informar a data e hora de emissão do Documento Fiscal no formato AAAA-MM-DDTHH:MM:SS-zz:zz com o fuso horário (formato UTC), exemplo: 2017-01-01T07:56:55-02:00
tipo do parâmetro alterado pra STRING.
[ALTERAÇÃO versão 3.00]
tpEmis inteiro 1 sim Forma de emissão do MDF-e:
1 - Normal;
2 - Contingência.
procEmi inteiro 1 sim informar o código de identificação do processo de emissão do MDF-e:
0 - emissão de MDF-e com aplicativo do contribuinte;
3 - emissão MDF-e pelo contribuinte com aplicativo fornecido pelo Fisco.
verProc string 1-20 sim informar a versão do processo de emissão do MDF-e utilizado (aplicativo emissor de MDF-e).
UFIni string 2 sim informar a sigla da UF de Carregamento. Informar 'EX' para operações com o exterior.
UFFim string 2 sim informar a sigla da UF de Desarregamento. Informar 'EX' para operações com o exterior.
infMunCarrega_Grupo string - sim grupo XML das informações dos municípios de carregamento, informar os municípios da UF de início do percurso onde houver carregamento da carga.
infPercurso_Grupo_Opc string - não grupo XML das informações das UF do percurso, serve para informar as UF intermediárias que são percorridas pelo veículo no percurso, não é necessário informar quando não houverem UF intermediárias no percurso.
dhIniViagem_Opc string 25 não informar a data e hora de início da viagem no formato AAAA-MM-DDTHH:MM:SS-zz:zz com o fuso horário (formato UTC), exemplo: 2017-01-01T07:56:55-02:00
Para omitir informe ""
[campo NOVO versão 3.00]
indCanalVerde string 1 não Indicador de participação do Canal Verde, valores: 0-NÃO, 1=SIM, a tag só será gerada quando informado valor="1"
[campo NOVO versão 3.00]
indCarregaPosterior string 1 não Indicador de MDF-e com inclusão da Carga posterior a emissão por evento de inclusão de DF-e
valores: 0-NÃO, 1=SIM, a tag só será gerada quando informado valor="1"
[campo NOVO versão 3.00a]

Diagrama:

DiagramaIdentificacao

Retorno:

Um string com o grupo XML de identificação

XML:

Exemplo de XML do grupo de Identificação do MDF-e


<ide>
  <cUF>35</cUF>
  <tpAmb>2</tpAmb>
  <tpEmit>1</tpEmit>
  <mod>58</mod>
  <serie>0</serie>
  <nMDF>111111111</nMDF>
  <cMDF>27025506</cMDF>
  <cDV>5</cDV>
  <modal>1</modal>
  <dhEmi>2017-02-08T01:18:11-03:00</dhEmi>
  <tpEmis>1</tpEmis>
  <procEmi>0</procEmi>
  <verProc>1.1</verProc>
  <UFIni>SP</UFIni>
  <UFFim>SP</UFFim>
  <infMunCarrega>
    <cMunCarrega>3550308</cMunCarrega>
    <xMunCarrega>Sao Paulo</xMunCarrega>
  </infMunCarrega>
</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

' inicializar variáveis
'...............................................
'
' criação dos grupos
'
'
'========grupo de identificação da MDFe==================
'
ide_cUF = 35             ' código da UF - tabela do IBGE: 35 - SP, 43 - RS, etc
ide_tpAmb = 2            ' informar tipo de ambiente:
                         ' 1 - Produção;
                         ' 2 - Homologação.
ide_tpEmit = 1           'informar tipo do emitente:"
                         ' 1 - Prestador de serviço de transporte;
                         ' 2 - Transporte de Carga Própria. [20-03-13]
                         ' OBS: Deve ser preenchido com 2 por Emitentes de NF-e e pelas Transportadoras quando estiverem fazendo transporte de carga própria NT 2013/001
ide_tpTransp_Opc = ""    ' informar o Tipo do Transportador: 1 - ETC 2 - TAC 3 - CTC Para omitir informe ""
ide_mod = 58             ' informar o código do Modelo do Documento Fiscal, código 58 para a MDF-e.
ide_serie = 0            'informar a série do Documento Fiscal, informar 0 (zero) para série única.
ide_nMDF = 111111111     'informar o Número do MDF-e."
ide_cMDF = 12345678      'informar o código numérico que compõe a Chave de Acesso. Número aleatório gerado pelo emitente para cada MDF-e para evitar acessos indevidos ao documento.
ide_cDV = 1              'informar o Dígito Verificador da chave de acesso do MDF-e.
ide_modal = "1"          'informar o Modal:"
                         ' 1 - Rodoviário;
                         ' 2 - Aéreo;
                         ' 3 - Aquaviário;
                         ' 4 - Ferroviário.

                         ' informar a data e hora de emissão do Documento Fiscal no formato AAAA-MM-DDTHH:MM:SS-zz:zz com o fuso horário (formato UTC)

ide_dhEmi = Format$(Now, "yyyy-mm-ddThh:mm:ss-03:00")
 
ide_tpEmis = 1           'Forma de emissão do MDF-e:
                         ' 1 - Normal;
                         ' 2 - Contingência.
ide_procEmi = 0          ' informar o código de identificação do processo de emissão do MDF-e:
                         '  0 - emissão de MDF-e com aplicativo do contribuinte;
                         '  3 - emissão MDF-e pelo contribuinte com aplicativo fornecido pelo Fisco.
ide_verProc = "1.1"      'informar a versão do processo de emissão do MDF-e utilizado (aplicativo emissor de MDF-e).
ide_UFIni = "SP"         'informar a sigla da UF de Carregamento. Informar 'EX' para operações com o exterior.
ide_UFFim = "SP"         'informar a sigla da UF de Desarregamento. Informar 'EX' para operações com o exterior.
ide_infMunCarrega_Grupo = "<infMunCarrega><cMunCarrega>3550308</cMunCarrega><xMunCarrega>Sao Paulo</xMunCarrega></infMunCarrega>"
' grupo XML das informações dos municípios de carregamento, informar os municípios da UF de início do percurso onde houver carregamento da carga.
ide_infPercurso_Grupo_Opc = "" 'grupo XML das informações das UF do percurso, serve para informar as UF intermediárias que são percorridas pelo veículo no percurso, não é necessário
'informar quando não houverem UF intermediárias no percurso.

ide_hdIniViagem_Opc = ""    ' informar a data e hora de início da viagem no formato AAAA-MM-DDTHH:MM:SS-zz:zz com o fuso horário (formato UTC)

ide_indCanalVerde_Opc ="0"
ide_indCarregaPosterior_Opc = "0"
 
Dim objMDFeUtil As Object
 
Set objMDFeUtil = CreateObject("MDFe_Util.Util")
 
'

 
' gera a chave de acesso da MDF-e
'
' utilizar a função criaChaveDFe para gerar a chave de acesso, código da MDF-e e DV
'
'=========variáveis de trabalho
'
'
Dim resultado As Long
Dim CNPJ As String
Dim cUF, ano, mes, modelo, serie, numero, tpemis, codigoseguranca As String
Dim msgResultado As String
Dim cDFe As String
Dim cDV As String
CNPJ = "00000000000191"
cUF = Trim(Str(ide_cUF))
ano = Format(Now, "YY")
mes = Format(Now, "mm")
modelo = Trim(Str(ide_mod))
serie = Trim(Str(ide_serie))
numero = Trim(Str(ide_nMDF))
tpemis = Trim(Str(ide_tpEmis))
msgResultado = ""
codigoseguranca = "segredo" ' informar uma expressão para garantir o sigilo da forma de cálculo do cDFe
cDFe = ""
cDV = ""
chave = ""
 
resultado = objMDFeUtil.CriaChaveDFe(cUF, ano, mes, CNPJ, modelo, serie, numero, tpemis, codigoseguranca, msgResultado, cDFe, cDV, chave)
 
If resultado <> 5601 Then
MsgBox "Ocorreu um erro ao gerar a chave de acesso " + msgResult, vbInformation, "Resultado"
End If
 
ide_cDV = Val(cDV)          ' utilizar o que foi gerado no criachaveDFe
ide_cMDF = Val(cDFe)        ' utilizar o que foi gerado no criachaveDFe

 
ide = objMDFeUtil.ide_v3a(ide_cUF, ide_tpAmb, ide_tpEmit, ide_tpTransp_Opc, ide_mod, ide_serie, ide_nMDF, ide_cMDF, ide_cDV, ide_modal, ide_dhEmi, ide_tpEmis, ide_procEmi, ide_verProc, ide_UFIni, ide_UFFim, ide_infMunCarrega_Grupo, ide_infPercurso_Grupo_Opc, ide_dhIniViagem_Opc, ide_indCanalVerde_Opc, ide_indCarregaPosterior_Opc)
 
MsgBox ide, vbInformation, "Informação"
3.1. Identificação do MDF-e [24/07/19]
3. Gerar o XML do MDF-e
« Anterior
3. Gerar o XML do MDF-e
Próximo »
3.1.1. Informação dos Municípios de Carregamento