- 5. Web Service da DC-e
5.3. Consulta DC-e - 5.2. Cancela DC-e
« Anterior - 5.4. ConsultaStatus
Próximo »
5.3. Consulta DC-e
Consulta a situação de um DC-e
Assinatura
int ConsultaDCe(string siglaWS, int tipoAmbiente, string nomeCertificado, string versao, out string msgDados, out string msgRetWS, out string msgResultado, string chaveDCe, string proxy, string usuario, string senha)
Descrição:
Consulta a situação atual de um DC-e no Web Services onde foi autorizado.
A consulta pode ser realizada por qualquer interessado que conheça a chave de acesso do DC-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 uma D-Ce é 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 "PR" |
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" |
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 |
chaveDCe | string | entrada | informar a chave de acesso da DC-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 uma D-Ce é 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 chaveDCe não informado | DLL | - |
6204 | Erro: O tamanho [tamanho da chave] do parâmetro chaveDCe 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 chaveDCe 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 DCe | WS | - |
101 | Cancelamento de DCe 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: DCe 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 |
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 |
410 | Rejeição: UF informada no campo cUF não é atendida pelo WebService | WS | C03 |
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 99) | WS | H07 |
596 | Rejeição: Chave de acesso inválida (numero DCe = 0) | WS | H08 |
598 | Rejeicao: Usar somente o namespace padrao do DCe | 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:
Exemplo de XML da Consulta o situação de uma DC-e
<?xml version="1.0" encoding="UTF-8"?> <consSitDCe xmlns="http://www.portalfiscal.inf.br/dce" versao="1.00"> <tpAmb>1</tpAmb> <xServ>CONSULTAR</xServ> <chDCe>35250510142785000190990000000000011308085037</chDCe> </consSitDCe>
Exemplo de XML da resposta: DCe inexistente
<?xml version="1.0" encoding="UTF-8"?> <retConsSitDCe xmlns="http://www.portalfiscal.inf.br/dce" versao="1.00"> <tpAmb>1</tpAmb> <verAplic>PR-v0.5.4</verAplic> <cStat>217</cStat> <xMotivo>DCe inexistente na base de dados do SITE de autorizacao consultado</xMotivo> <cUF>41</cUF> <dhRecbto>2025-05-17T20:47:24-03:00</dhRecbto> <chDCe>35250510142785000190990000000000011308085037</chDCe> </retConsSitDCe>
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 e instancia DLL Dim objDCeUtil As Object Set objDCeUtil = CreateObject("DCe_Util.Util") ' declarar parâmetros Dim siglaWS As String Dim tipoAmbiente As Long Dim nomeCertificado As String Dim versao As String Dim msgDados As String Dim msgRetWS As String Dim msgResultado As String Dim chaveDCe As String Dim proxy As String Dim usuario As String Dim senha As String Dim cStat As Long ' inicializar parâmetros siglaWS = "PR" tipoAmbiente = 1 nomeCertificado = "CN=FLEXDOCS INFORMATICA LTDA:10142785000190, OU=presencial, OU=20085105000106, OU=RFB e-CNPJ A1, OU=Secretaria da Receita Federal do Brasil - RFB, L=OURINHOS, S=SP, O=ICP-Brasil, C=BR" versao = "1.00" msgDados = "" msgRetWS = "" msgResultado = "" chaveDCe = "35250510142785000190990000000000011308085037" proxy = "" usuario = "" senha = "" cStat = 0 resultado = 0 cStat = objDCeUtil.ConsultaDCe(siglaWS, _ tipoAmbiente, _ nomeCertificado, _ versao, _ msgDados, _ msgRetWS, _ msgResultado, _ chaveDCe, _ proxy, _ usuario, _ senha) If cStat > 200 Then MsgBox msgResultado, vbCritical, "Informação" Else MsgBox msgResultado, vbInformation, "Informação" End If
- 5.3. Consulta DC-e
5. Web Service da DC-e - « Anterior
5.2. Cancela DC-e - Próximo »
5.4. ConsultaStatus