- 4. Web Service do MDF-e 07-09-18
4.6. ConsultaMDFe - 4.5. EncerraMDFe 07-09-18
« Anterior - 4.7. ConsultaStatus
Próximo »
4.6. ConsultaMDFe
Consulta a situação de um MDF-e
Assinatura
int ConsultaMDFe(string siglaWS, int tipoAmbiente, string nomeCertificado, string versao, out string msgDados, out string msgRetWS, out string msgResultado, string chaveMDFe, string proxy, string usuario, string senha)
Descrição:
Consulta a situação atual de um MDF-e no Web Services onde foi autorizado.
A consulta pode ser realizada por qualquer interessado que conheça a chave de acesso do MDF-e e possua um certificado digital válido.
Certificado Digital
Informar o Nome do titular (campo Assunto) do certificado digital a ser utilizado na conexão SSL.
Para consultar o status de um MDF-e é necessário possuir um certificado digital válido para estabelecer a conexão SSL com o WS.
Parâmetros da chamada:
nome | tipo | fluxo | descrição |
---|---|---|---|
siglaWS | string | entrada | informar a sigla "RS" |
ambiente | inteiro | entrada | informar o código do ambiente a ser consultado: 1- produção ou 2-homologação |
nomeCertificado | string | entrada | informar nome do titular do certificado a ser utilizado na assinatura e conexão SSL com o WS: 1. informar o assunto do certificado digital que deve existir no repositório MY do current user, ex.: "CN=NFe - Associacao NF-e:99999090910270, C=BR, L=PORTO ALEGRE, O=Teste Projeto NFe RS, OU=Teste Projeto NFe RS, S=RS". 2. informar: NUMEROSERIE|[número de série] quando não seja possível localizar o certificado digital pelo assunto; 3. informar: ARQUIVO | [nome do arquivo pfx com caminho completo] | [senha do arquivo] para uso do certificado digital em arquivo pfx, ex.: "ARQUIVO|c:\certificado.pfx|senha". 4. informar: CERTIFICADO | [string base64 do arquivo pfx] | [senha do arquivo] no parâmetro NomeCertificado para passar uma string contendo um certificado digital em base64, ex.:"CERTIFICADO|MIIGoDCCBYigAwIBAgIQep(arquivo pfx do certificado digital convertido em base64...)QQDExNBQy|senha". |
versao | string | entrada | informar a versão da mensagem XML do WS - "1.00" ou "3.00" |
msgDados | string | saída | retorna a mensagem XML enviada para o WS |
msgRetWS | string | saída | retorna a mensagem XML de resposta do WS |
msgResultado | string | saída | retorna a literal do resultado da chamada do WS |
chaveMDFe | string | entrada | informar a chave de acesso do MDF-e que se deseja consultar |
proxy | string | entrada | informar 'http://proxyserver:port' quando existir uso de proxy no ambiente. verificar com o cliente qual é o endereço do servidor proxy e a porta https, a porta padrão do https é 443, assim teríamos algo do tipo 'http://192.168.15.1:443' |
usuario | string | entrada | informar o usuário para autenticação no proxy, se necessário |
senha | string | entrada | informar a senha de autenticação no proxy, se necessário |
Retorno da chamada:
O resultado da chamada da Consulta Status de um MDF-e é um código numérico com os seguintes significados:
código | Mensagem | origem | regra |
---|---|---|---|
5101 | Erro: A mensagem de retorno do WS não é um XML válido: [mensagem de retorno] | DLL | - |
5102 | Erro: Tag cStat inexistente na mensagem de retorno [mensagem de erro] | DLL | - |
5103 | Erro: Tag xMotivo inexistente na mensagem de retorno [mensagem de erro] | DLL | - |
5104 | Erro: Tag [nome tag] inexistente na mensagem de retorno [mensagem de erro] | DLL | - |
5105 | Erro: O WS não devolveu nenhum resultado | DLL | - |
5201 | Erro: O código do tipo de ambiente [tipo de ambiente recebido pela DLL] informado diferente de 1 - produção e 2 - homologação | DLL | - |
5202 | Erro: A sigla da UF [sigla recebida pela DLL] informada é inválida | DLL | - |
5203 | Erro: Inexiste url para a UF [sigla UF] informada no ambiente [ambiente informado] desejado, verifique se existe atualização do arquivo [nome arquivo] disponível. | DLL | - |
5204 | Erro: Arquivo que contem a URL do WS não localizado em [caminho da aplicação] | DLL | - |
5205 | Erro: Ocorreu um erro inesperado no processamento da URL (URL) : [mensagem de ERRO DO WINDOWS] | DLL | - |
5206 | Erro: Ocorreu um erro de validação do XML (nome XML) : [mensagem de ERRO DO WINDOWS] | DLL | - |
5403 | Erro: Falha ao acessar certificado digital [mensagem de ERRO DO WINDOWS] | DLL | - |
5404 | Erro: Nenhum certificado digital selecionado | DLL | |
5405 | Erro: Nenhum certificado válido foi encontrado com o nome [NomeCertificado] informado no repositório [MY do CurrentUser] | DLL | - |
5406 | Erro: Falha no tratamento do parâmetro nome: [nome informado] | DLL | - |
5407 | Erro: Quantidade de parâmetros inválido: [nome informado] | DLL | - |
5408 | Erro: Falha na criação do objeto certificate: [mensagem do ERRO DO WINDOWS] | DLL | - |
6201 | Erro: O parâmetro versao não foi informado | DLL | - |
6202 | Erro: O conteúdo do parâmetro versao informado é inválido: [conteúdo informado], a DLL espera: [conteúdo esperado] | DLL | - |
6203 | Erro: O parâmetro chaveMDFe não informado | DLL | - |
6204 | Erro: O tamanho [tamanho da chave] do parâmetro chaveMDFe informado não tem 44 caracteres | DLL | - |
6205 | Erro: As posições correspondentes (1,2) ao código da UF [UF informada] do parâmetro chaveMDFe não é um código de UF válido | DLL | - |
6206 | Erro: O nome do titular do certificado deve ser informado | DLL | - |
6207 | Erro: O parâmetro tipoAmbiente deve ser informado | DLL | - |
6208 | Erro: O parâmetro tipoAmbiente [ambiente informado] deve ser 1 ou 2 | DLL | - |
6209 | Erro: O parâmetro siglaWS deve ser informado | DLL | - |
100 | Autorizado o uso do MDF-e | WS | - |
101 | Cancelamento de MDF-e homologado | WS | - |
132 | Encerramento de MDF-e homologado | WS | - |
108 | Serviço Paralisado Momentaneamente (curto prazo) | WS | B03 |
109 | Serviço Paralisado sem Previsão | WS | B04 |
214 | Rejeição: Tamanho da mensagem excedeu o limite estabelecido | WS | B01 |
215 | Rejeição: Falha no schema XML | WS | D01 |
216 | Rejeição: Chave de Acesso difere da cadastrada | WS | H10 |
217 | Rejeição: MDF-e não consta na base de dados da SEFAZ | WS | H09 |
226 | Rejeição: Código da UF do Emitente diverge da UF autorizadora | WS | H02 |
236 | Rejeição: Chave de Acesso com dígito verificador inválido | WS | H03 |
238 | Rejeição: Cabeçalho - Versão do arquivo XML superior a Versão vigente | WS | C05 |
239 | Rejeição: Cabeçalho - Versão do arquivo XML não suportada | WS | C06 |
242 | Rejeição: Elemento mdfeCabecMsg inexistente no SOAP Header | WS | C01 |
243 | Rejeição: XML Mal Formado | WS | B02 |
252 | Rejeição: Ambiente informado diverge do Ambiente de recebimento | WS | G001 |
280 | Rejeição: Certificado Transmissor inválido | WS | A01 |
281 | Rejeição: Certificado Transmissor Data Validade | WS | A02 |
282 | Rejeição: Certificado Transmissor sem CNPJ | WS | A07 |
283 | Rejeição: Certificado Transmissor - erro Cadeia de Certificação | WS | A03 |
284 | Rejeição: Certificado Transmissor revogado | WS | A05 |
285 | Rejeição: Certificado Transmissor difere ICP-Brasil | WS | A06 |
286 | Rejeição: Certificado Transmissor erro no acesso a LCR | WS | A04 |
402 | Rejeição: XML da área de dados com codificação diferente de UTF-8 | WS | D03 |
404 | Rejeição: Uso de prefixo de namespace não permitido | WS | D02 |
409 | Rejeição: Campo cUF inexistente no elemento mdfeCabecMsg do SOAP Header | WS | C02 |
410 | Rejeição: UF informada no campo cUF não é atendida pelo WebService | WS | C03 |
411 | Rejeição: Campo versaoDados inexistente no elemento mdfeCabecMsg do SOAP Header | WS | C04 |
592 | Rejeição: Chave de acesso inválida (Ano < 2012 ou Ano maior que Ano corrente) | WS | H04 |
593 | Rejeição: Chave de acesso inválida (Mês = 0 ou Mês > 12) | WS | H05 |
594 | Rejeição: Chave de acesso inválida (CNPJ zerado ou digito inválido) | WS | H06 |
595 | Rejeição: Chave de acesso inválida (modelo diferente de 58) | WS | H07 |
596 | Rejeição: Chave de acesso inválida (numero MDFe = 0) | WS | H08 |
598 | Rejeicao: Usar somente o namespace padrao do MDF-e | WS | D02 |
599 | Rejeicao: Nao eh permitida a presenca de caracteres de edicao no inicio/fim da mensagem ou entre as tags da mensagem | WS | D03 |
600 | Rejeição: Chave de Acesso difere da existente em BD | WS | H11 |
Tratamento de Erro:
Caso ocorra algum erro na chamada do WS (5001-6209) ou a requisição não seja atendida pelo WS (214-999), será gravado um log na pasta log, com as seguintes informações que devem ser úteis para identificação do problema:
- Timestamp - data e hora da ocorrência do erro
- WS - nome do WS acessado
- URL - URL do WS acessado
- ambiente - código do ambiente
- certificado - nome do titular (assunto) do certificado digital utilizado
- erro - código e descrição do erro
- msgDados - mensagem gerada pela DLL enviada ao WS
- msgRetWS - conteúdo do retorno do WS
Os erros com código > 5000 são erros tratados pela DLL e ocorrem nas seguintes situações:
- 5001 - 5017 - falha na tentativa de consumir o WS (problema de conexão/rede)
- 5101 - 5105 - falha no tratamento do XML de resposta do WS (problema na resposta do WS)
- 5201 - 5206 - falha na recuperação da URL do WS desejado (problema no arquivo de configuração da URL)
- 5403 - 5408 - falha no acesso ao certificado digital
- 6201 - 6209 - falha no tratamento dos parâmetros da chamada da DLL
Histórico de atualização:
- Versão inicial.
- 2012-10-09 - Acréscimo do código exemplo em VB 6.0.
Exemplo de XML da Consulta o situação de um MDF-e
<?xml version="1.0" encoding="UTF-8"?> <consSitMDFe xmlns="http://www.portalfiscal.inf.br/mdfe" versao="1.00"> <tpAmb>2</tpAmb> <xServ>CONSULTAR</xServ> <chMDFe>35121010142785000190580010000000011491283029</chMDFe> </consSitMDFe>
Exemplo de XML da resposta: 100 - Autorizado o uso do MDF-e
<retConsSitMDFe xmlns="http://www.portalfiscal.inf.br/mdfe" versao="1.00"> <tpAmb>2</tpAmb> <verAplic>RS20120203153602</verAplic> <cStat>100</cStat> <xMotivo>Autorizado o uso do MDF-e</xMotivo> <cUF>35</cUF> <protMDFe versao="1.00" xmlns="http://www.portalfiscal.inf.br/mdfe"> <infProt Id="MDFe935120000000020"> <tpAmb>2</tpAmb> <verAplic>RS20121001094405</verAplic> <chMDFe>35121010142785000190580010000000011491283029</chMDFe> <dhRecbto>2012-10-01T15:03:57</dhRecbto> <nProt>935120000000020</nProt> <digVal>tl8XoXHE+pMJ5hCZUl3PshBCQrc=</digVal> <cStat>100</cStat> <xMotivo>Autorizado o uso do MDF-e</xMotivo> </infProt> </protMDFe> </retConsSitMDFe>
Exemplo de XML da resposta: 101 - Cancelamento de MDF-e homologado
<retConsSitMDFe xmlns="http://www.portalfiscal.inf.br/mdfe" versao="1.00"> <tpAmb>2</tpAmb> <verAplic>RS20120203153602</verAplic> <cStat>101</cStat> <xMotivo>Cancelamento de MDF-e homologado</xMotivo> <cUF>35</cUF> <protMDFe versao="1.00" xmlns="http://www.portalfiscal.inf.br/mdfe"> <infProt Id="MDFe935120000000021"> <tpAmb>2</tpAmb> <verAplic>RS20121001094405</verAplic> <chMDFe>35121010142785000190580010000000021491283026</chMDFe> <dhRecbto>2012-10-06T20:26:17</dhRecbto> <nProt>935120000000021</nProt> <digVal>4jS69q9fSMW7Cmdd3oNGIXZZkNE=</digVal> <cStat>100</cStat> <xMotivo>Autorizado o uso do MDF-e</xMotivo> </infProt> </protMDFe> <procEventoMDFe versao="1.00" xmlns="http://www.portalfiscal.inf.br/mdfe"> <eventoMDFe xmlns="http://www.portalfiscal.inf.br/mdfe" versao="1.00"> <infEvento Id="ID1101113512101014278500019058001000000002149128302601"> <cOrgao>35</cOrgao> <tpAmb>2</tpAmb> <CNPJ>10142785000190</CNPJ> <chMDFe>35121010142785000190580010000000021491283026</chMDFe> <dhEvento>2012-10-07T09:58:35</dhEvento> <tpEvento>110111</tpEvento> <nSeqEvento>1</nSeqEvento> <detEvento versaoEvento="1.00"> <evCancMDFe> <descEvento>Cancelamento</descEvento> <nProt>935120000000021</nProt> <xJust>Teste de cancelamento</xJust> </evCancMDFe> </detEvento> </infEvento> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /> <Reference URI="#ID1101113512101014278500019058001000000002149128302601"> <Transforms> <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <DigestValue>59sBLXkpJdlr9qHBMrpD7ivA/iw=</DigestValue> </Reference> </SignedInfo> <SignatureValue>Tned2WTOTdeeNwmltpJLMOFikdSLR(...)xUT0je9YbhtsCndcde0x0bThhkj/Ivzs=</SignatureValue> <KeyInfo> <X509Data> <X509Certificate>MIIFtDCCBJygAwIBAgIIG1mv0X(...)6q4AxkHNUQBimd6HAhA0oDjO/oaDeEC</X509Certificate> </X509Data> </KeyInfo> </Signature> </eventoMDFe> <retEventoMDFe xmlns="http://www.portalfiscal.inf.br/mdfe" versao="1.00"> <infEvento Id="ID935120000000022"> <tpAmb>2</tpAmb> <verAplic>RS20120720150954</verAplic> <cOrgao>35</cOrgao> <cStat>135</cStat> <xMotivo>Evento registrado e vinculado ao MDF-e</xMotivo> <chMDFe>35121010142785000190580010000000021491283026</chMDFe> <tpEvento>110111</tpEvento> <xEvento>Cancelamento</xEvento> <nSeqEvento>1</nSeqEvento> <dhRegEvento>2012-10-07T12:58:58</dhRegEvento> <nProt>935120000000022</nProt> </infEvento> </retEventoMDFe> </procEventoMDFe> </retConsSitMDFe>
Exemplo de XML da resposta: 132 - Encerramento de MDF-e homologado
<retConsSitMDFe xmlns="http://www.portalfiscal.inf.br/mdfe" versao="1.00"> <tpAmb>2</tpAmb> <verAplic>RS20120203153602</verAplic> <cStat>132</cStat> <xMotivo>Encerramento de MDF-e homologado</xMotivo> <cUF>35</cUF> <protMDFe versao="1.00" xmlns="http://www.portalfiscal.inf.br/mdfe"> <infProt Id="MDFe935120000000020"> <tpAmb>2</tpAmb> <verAplic>RS20121001094405</verAplic> <chMDFe>35121010142785000190580010000000011491283029</chMDFe> <dhRecbto>2012-10-01T15:03:57</dhRecbto> <nProt>935120000000020</nProt> <digVal>tl8XoXHE+pMJ5hCZUl3PshBCQrc=</digVal> <cStat>100</cStat> <xMotivo>Autorizado o uso do MDF-e</xMotivo> </infProt> </protMDFe> <procEventoMDFe versao="1.00" xmlns="http://www.portalfiscal.inf.br/mdfe"> <eventoMDFe xmlns="http://www.portalfiscal.inf.br/mdfe" versao="1.00"> <infEvento Id="ID1101123512101014278500019058001000000001149128302901"> <cOrgao>35</cOrgao> <tpAmb>2</tpAmb> <CNPJ>10142785000190</CNPJ> <chMDFe>35121010142785000190580010000000011491283029</chMDFe> <dhEvento>2012-10-07T03:20:28</dhEvento> <tpEvento>110112</tpEvento> <nSeqEvento>1</nSeqEvento> <detEvento versaoEvento="1.00"> <evEncMDFe> <descEvento>Encerramento</descEvento> <nProt>935120000000020</nProt> <dtEnc>2012-10-07</dtEnc> <cUF>43</cUF> <cMun>4314902</cMun> </evEncMDFe> </detEvento> </infEvento> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /> <Reference URI="#ID1101123512101014278500019058001000000001149128302901"> <Transforms> <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <DigestValue>adrwO1ItqeEpMsPgDJakFIklq+E=</DigestValue> </Reference> </SignedInfo> <SignatureValue>Ck4Er17njiJYm49YQb2BSD(...)J6CFTekhOlBT0MOKk08Hk6Tno+WiIA=</SignatureValue> <KeyInfo> <X509Data> <X509Certificate>MIIFtDCCBJygAwIBA(...)xkHNUQBimd6HAhA0oDjO/oaDeEC</X509Certificate> </X509Data> </KeyInfo> </Signature> </eventoMDFe> <retEventoMDFe xmlns="http://www.portalfiscal.inf.br/mdfe" versao="1.00"> <infEvento Id="ID935120000000023"> <tpAmb>2</tpAmb> <verAplic>RS20120720150954</verAplic> <cOrgao>35</cOrgao> <cStat>135</cStat> <xMotivo>Evento registrado e vinculado ao MDF-e</xMotivo> <chMDFe>35121010142785000190580010000000011491283029</chMDFe> <tpEvento>110112</tpEvento> <xEvento>Encerramento</xEvento> <nSeqEvento>1</nSeqEvento> <dhRegEvento>2012-10-07T18:20:45</dhRegEvento> <nProt>935120000000023</nProt> </infEvento> </retEventoMDFe> </procEventoMDFe> </retConsSitMDFe>
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
' EM BREVE
- 4.6. ConsultaMDFe
4. Web Service do MDF-e 07-09-18 - « Anterior
4.5. EncerraMDFe 07-09-18 - Próximo »
4.7. ConsultaStatus