- 4. Web Service do MDF-e 07-09-18
4.13. Consulta MDF-e não Encerrada 07-09-18 - 4.12. Inclui Pgto Operação 09-03-22
« Anterior - 4.14. Distribuição de DF-e
Próximo »
4.13. Consulta MDF-e não Encerrada 07-09-18
Consultar MDF-e emitidas por um CNPJ e ainda não encerradas.
Atualizado para aceitar emissor PF (NT 2018/002)
Agora é possível que Pessoa Física com Inscrição Estadual emita o MDF-e.
Assinatura
string ConsMDFeNaoEnc(string siglaWS, string siglaUF, int tipoAmbiente, string nomeCertificado, string versao, out string msgDados, out string msgRetWS, out int resultado, out string msgResultado, string CNPJ, string cUF, int qtdeMDFe, string proxy, string usuario, string senha, string licenca)
Descrição:
Funcionalidade para Consultar MDF-e emitidas por um CNPJ e ainda não encerradas.
O Web Service permite consultar os MDF-e que ainda não foram encerrados para um CNPJ emissor, o Web Service respode se existem MDF-e não encerrados, devolvendo uma lista de chave de acesso do MDF-e e respectivos nProt.
Parâmetros da chamada:
nome | tipo | fluxo | descrição |
---|---|---|---|
siglaWS | string | entrada | informar a sigla "RS". |
siglaUF | string | entrada | informar a sigla da UF de localização do emissor do MDF-e. |
tipoAmbiente | inteiro | entrada | informar o código do ambiente que será processado o evento de inclusao de condutor: 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: É permitido o uso do certificado digital que tenha o mesmo CNPJ base (oito primeiros dígitos do CNPJ) do emissor do MDF-e. 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 do WS: "1.00" ou "3.00" |
msgDados | string | saída | retorna a mensagem XML do evento de inclusão de condutor que foi enviado ao WS. |
msgRetWS | string | saída | retorna a mensagem XML de resposta do WS |
resultado | inteiro | saída | retorna o resultado do processamento do evento de inclusão de condutor, veja a tabela de retorno. Teremos o retorno do código 112 quando não exitirem MDF-e não encerrados e código 111 quando existirem MDF-e não encerrados que serão devolvidos como resposta da chamada. O retorno de código diferente de 111 e 112 significa que houve algum problema no processamento da consulta de MDF-e não encerrados. |
msgResultado | string | saída | retorna a literal do resultado da chamada do WS |
CNPJ | string | entrada | informar o CNPJ ou CPF do emissor do MDF-e que desejamos consultar, deve ser informado com 14 ou 11 dígitos07-09-18 |
cUF | string | saída | retorna o cUF (código da UF) da UF que atendeu a solicitação. |
qtdeMDFe | inteiro | saída | retorna a quantidade de MDF-e que não estão encerrados. |
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 |
licenca | string | entrada | informar a chave da licenca de uso ou registro, esta funcionalidade pode ser utilizada sem qualquer restrição no ambiente de homologação. O uso em ambiente de produção requer o licenciamento ou registro, para maiores detalhes veja as condições de uso |
XML do Retorno da chamada:
Quando existirem MDF-e não encerrados para o CNPJ consultado (resultado=111), a DLL vai devolver um TXT com uma linha por MDF-e contendo a chave de acesso do MDF-e e respectivo protocolo autorização de uso.
Exemplo de retorno, um MDF-e por linha, cada linha tem uma chave de acesso e protocolo de autorização de uso separado por pipe (|)
35140110142785000190580010000000121880044007|935140000005944
35140110142785000190580010000000131880055005|935140000005945
35140110142785000190580010000000141880066003|935140000005946
Tabela de códigos de Retorno do parâmetro resultado:
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 | - |
6801 | Erro: O parâmetro siglaWS deve ser informado | DLL | - |
6802 | Erro: O parâmetro tipoAmbiente deve ser informado | DLL | - |
6803 | Erro: O parâmetro tipoAmbiente [valor Informado] deve ser 1 ou 2 | DLL | - |
6804 | Erro: O nome do titular do certificado deve ser informado | DLL | - |
6805 | Erro: O parâmetro siglaUF deve ser informado | DLL | - |
6806 | Erro: O conteúdo do parâmetro CNPJ: [] deve ser informado | DLL | - |
6807 | Erro: O conteúdo do parâmetro CNPJ: [valor Informado] deve ter 14 digitos | DLL | - |
6808 | Erro: O parâmetro versao não foi informado | DLL | - |
6809 | Erro: O conteúdo do parâmetro versao informado é inválido: [valor Informado], a DLL espera: [valor Esperado] | DLL | - |
6810 | Erro: O conteúdo do parâmetro sigla da UF: [valor Informado] é inválido | DLL | - |
7001 | Erro: A licença não foi informada [Identificação da versão da DLL em uso] | DLL | - |
7002 | Erro: A licença informada: [valor informado] tem tamanho:[tamanho] diferente de 128 - [Identificação da versão da DLL em uso] | DLL | - |
7003 | Erro: A licença informada: [valor informado] não pertence ao CNPJ:[valor informado] [Identificação da versão da DLL em uso] | DLL | - |
111 | MDF-e não encerrados localizados | WS | - |
112 | MDF-e não encerrados não localizados | WS | - |
108 | Serviço Paralisado Momentaneamente (curto prazo) | WS | B03 |
109 | Serviço Paralisado sem Previsão | WS | B04 |
203 | Rejeição: Emissor nao habilitado para emissao do MDF-e | WS | L05 |
213 | Rejeição: CNPJ-Base do Emitente difere do CNPJ-Base do Certificado Digital | WS | F03 |
214 | Rejeição: Tamanho da mensagem excedeu o limite estabelecido | WS | B01 |
215 | Rejeição: Falha no schema XML | WS | D01 |
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: Tipo do Ambiente informado diverge do Ambiente do Web Service | WS | L01 |
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 |
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 |
Tratamento de Erro:
Caso ocorra algum erro na chamada do WS (5001-7003) 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
- 6801 - 6810 - falha no tratamento dos parâmetros da chamada da DLL
- 7001 - 7003 - falha na validação da licença de uso
Histórico de atualização:
- 2015-01-03 - versão inicial
Exemplo de XML de Evento de Consulta de MDF-e não encerrado
<?xml version="1.0" encoding="UTF-8"?> <consMDFeNaoEnc xmlns="http://www.portalfiscal.inf.br/mdfe" versao="1.00"> <tpAmb>2</tpAmb> <xServ>CONSULTAR NÃO ENCERRADOS</xServ> <CNPJ>10142785000190</CNPJ> </consMDFeNaoEnc>
Exemplo de XML de Retornos
111 - Consulta não encerrados localizou MDF-e nessa situação
<?xml version="1.0" encoding="UTF-8"?> <retConsMDFeNaoEnc xmlns="http://www.portalfiscal.inf.br/mdfe" versao="1.00"> <tpAmb>2</tpAmb> <verAplic>RS20150102093257</verAplic> <cStat>111</cStat> <xMotivo>Consulta não encerrados localizou MDF-e nessa situação</xMotivo> <cUF>35</cUF> <infMDFe> <chMDFe>35140110142785000190580010000000121880044007</chMDFe> <nProt>935140000005944</nProt> </infMDFe> </retConsMDFeNaoEnc>
112 - Consulta não encerrados não localizou MDF-e nessa situação
<?xml version="1.0" encoding="UTF-8"?> <retConsMDFeNaoEnc xmlns="http://www.portalfiscal.inf.br/mdfe" versao="1.00"> <tpAmb>2</tpAmb> <verAplic>RS20150102093257</verAplic> <cStat>112</cStat> <xMotivo>Consulta não encerrados não localizou MDF-e nessa situação</xMotivo> <cUF>35</cUF> </retConsMDFeNaoEnc>
203 - Rejeição: Emissor nao habilitado para emissao do MDF-e
<retConsMDFeNaoEnc xmlns="http://www.portalfiscal.inf.br/mdfe" versao="1.00"> <tpAmb>1</tpAmb> <verAplic>RS20150102140934</verAplic> <cStat>203</cStat> <xMotivo>Rejeição: Emissor nao habilitado para emissao do MDF-e</xMotivo> <cUF>35</cUF> </retConsMDFeNaoEnc>
Exemplos de uso:
Visual Basic 6.0
' ' declaração das variáveis que serão utilizadas na passagem de parâmetros da DLL ' Dim msgDados As String ' retorna a mensagem XML do evento de inclusao de condutor criado pela DLL que foi enviado ao WS Dim msgRetWS As String ' retorna a mensagem XML de resposta do WS Dim msgResultado As String ' retorna a literal do resultado da chamada do WS Dim siglaWS As String ' informar a sigla do WS Dim nomeCertificado As String ' informar o Nome do titular (campo Assunto) do certificado digital a ser utilizado na conexão SSL. Ex.: "CN=NFe - Associacao NF-e:99999090910270, C=BR, L=PORTO ALEGRE, O=Teste Projeto NFe RS, OU=Teste Projeto NFe RS, S=RS" ' ' importante: indicar aqui assunto do certificado digital válido, este da associacao trata-se apenas de um exemplo para testes ' ' EXEMPLO PARA USO DE ARQUIVO PFX ' 'nomeCertificado = "ARQUIVO|c:\certificado.pfx|associacao" ' ' onde: ' ARQUIVO --> indica opção de uso de arquivo PFX ' c:\certificado.pfx --> nome e caminho do arquivo PFX ' associacao --> senha do arquivo PFX ' ' ' EXEMPLO PARA USO DE ARQUIVO PFX EM STRING BASE64 ' 'nomeCertificado = "CERTIFICADO|MIIGoDCCBYigAwIBAgIQep(arquivo pfx do certificado digital convertido em base64...)QQDExNBQy|senha" ' ' onde: ' CERTIFICADO --> indica opção de uso de arquivo PFX em base64 ' MIIGoDCCBYigAwIBAgIQep(arquivo pfx do certificado digital convertido em base64...)QQDExNBQy --> arquivo PFX em base64 ' senha --> senha do arquivo PFX ' Dim tipoAmbiente As Integer ' informar o código do ambiente a ser consultado: 1- produção ou 2-homologação Dim versao As String ' informar a versão da mensagem do evento: 1.00 ' ' Informações da MDF-e e do condutor que será incluido ' Dim siglaUF As String ' informar a sigla do UF do emissor Dim CNPJ As String ' informar o CNPJ do condutor com 14 digitos ' ' Retorno da DLL ' Dim cStat As Long ' retorna o resultado da chamada do WS Dim qtdeMDFe ' retorna a quantide de MDF-e não encerrados localizados pelo Web Serviço Dim cUF ' retorna o código da UF do WS que atendeu a solicitação Dim txtMDFe ' retorna uma lista com as chaves de acesso dos MDF-e não encerrados e respectivo protocolo de autorizao de uso ' ' exemplo de retorno, um MDF-e por linha, cada linha tem uma chave de acesso e protocolo de autorização de uso separado por pipe (|) ' 35140110142785000190580010000000121880044007|935140000005944 ' 35140110142785000190580010000000131880055005|935140000005945 ' 35140110142785000190580010000000141880066003|935140000005946 ' ' As variáveis do proxy devem ser informadas se necessário ' ' proxy deve ser informado com o endereço da url : porta, ex: 192.168.15.1:443 ' Dim proxy As String ' 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' Dim usuario As String ' informar o usuário para autenticação no proxy, se necessário Dim senha As String ' informar a senha de autenticação no proxy, se necessário ' ' chave da licença de uso, vinculado ao CNPJ do emissor ' Dim licenca As String ' informar a chave da licenca de uso ou registro, esta funcionalidade pode ser utilizada sem qualquer restrição no ambiente de homologação. O uso em ambiente de produção requer o licenciamento ou registro, para maiores detalhes veja as condições de uso ' ' IMPORTANTE: todas as variáveis utilizadas como parâmetro da DLL devem ser inicialiazadas ' ' proxy = "" ' 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 = "" ' informar o usuário para autenticação no proxy, se necessário senha = "" ' informar a senha de autenticação no proxy, se necessário msgDados = "" ' retorna a mensagem XML do evento de inclusao de condutor criado pela DLL que foi enviado ao WS - util para identificar problemas msgRetWS = "" ' retorna a mensagem XML de resposta do WS - util para identificar problemas ' ' ' licenca = "" ' informar a chave da licenca de uso ou registro, esta funcionalidade pode ser utilizada sem qualquer restrição no ambiente de homologação. O uso em ambiente de produção requer o licenciamento ou registro, para maiores detalhes veja as condições de uso ' ' prepara variáveis ' nomeCertificado = "CN=M R M KATO ASAKURA EIRELI EPP:69621187915, OU=AC CAIXA PJ v2, OU=Caixa Economica Federal, O=ICP-Brasil, C=BR" ' importante: indicar aqui assunto do certificado digital válido, este da associacao trata-se apenas de um exemplo para testes siglaWS = "RS" ' informar a sigla do WS que deseja consultar, informar SVAN - SEFAZ Virtual do Ambiente Nacional (ES, MA, PA, PI e RN) ou SVRS - SEFAZ Virtual do Rio Grande do Sul (AC, AL, AP, DF, PB, RJ, RO, RR, SC, SE e TO), caso a UF seja usuário da SEFAZ Virtual, em caso contrário informar a sigla da UF (AM, BA, CE, GO, MS, MT, MG, PE, PR, RS e SP). Em caso de contingência SCAN, informar a sigla SCAN tipoAmbiente = 2 ' informar o código do ambiente a ser consultado: 1- produção ou 2-homologação versao = "1.00" ' informar a versão da mensagem do WS siglaUF = "SP" ' inforamr a sigla da UF do emissor do MDF-e CNPJ = "10142785000190" ' informar o CNPJ do emissor do MDF-e ' ' Retorno da DLL ' cStat = 0 ' retorna o resultado da chamada do WS qtdeMDFe = 0 ' retorna a quantide de MDF-e não encerrados localizados pelo Web Serviço cUF = "" ' retorna o código da UF do WS que atendeu a solicitação ' Dim objMDFeUtil As Object Set objMDFeUtil = CreateObject("MDFe_Util.Util") ' ' Screen.MousePointer = vbHourglass ' ampulheta ' txtMDFe = objMDFeUtil.ConsMDFeNaoEnc(siglaWS, _ siglaUF, _ tipoAmbiente, _ nomeCertificado, _ versao, _ msgDados, _ msgRetWS, _ cStat, _ msgResultado, _ CNPJ, _ cUF, _ qtdeMDFe, _ proxy, _ usuario, _ senha, _ licenca) ' ' Screen.MousePointer = vbDefault ' normal ' ' analisar o retorno do WS, se cStat: ' ' 111 - MDF-e não encerrados localizados, tratar txtMDFe que vai retornar um MDF-e por linha, cada linha tem uma chave de acesso e protocolo de autorização de uso separado por pipe (|) ' ' 35140110142785000190580010000000121880044007|935140000005944 ' 35140110142785000190580010000000131880055005|935140000005945 ' 35140110142785000190580010000000141880066003|935140000005946 ' ' 112 - MDF-e não encerrados não localizados, não existe MDF-e não encerrado ' ' outros - ocorreu algum erro no processamento da chamada, procure guardar o msgDados, msgRetWS e msgResultado, pois eles serão úteis para identificação do problemas. ' ' mostra mensagem XML da mensagem de retorno do WS ' MsgBox msgResultado + Chr(13) + Chr(13) + msgRetWS, vbInformation, "Resultado da chamada do Web Service" ' ' mostra lista de MDF-e ' MsgBox txtMDFe, vbInformation, "Lista de MDF-e não encerrados"
- 4.13. Consulta MDF-e não Encerrada 07-09-18
4. Web Service do MDF-e 07-09-18 - « Anterior
4.12. Inclui Pgto Operação 09-03-22 - Próximo »
4.14. Distribuição de DF-e