- 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
- 3.1.1. Informação dos Municípios de Carregamento
- 3.1.2. Informação do Percurso
- 3.1.3. Cria chave de Acesso do MDF-e
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:
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