- 5. Web Service da DC-e
5.4. ConsultaStatus - 5.3. Consulta DC-e
« Anterior - 6. Utilidades
Próximo »
5.4. ConsultaStatus
Consulta o status do Serviço de Recepção da DC-e
Assinatura
int ConsultaWS(string siglaWS, string siglaUF, int ambiente, string nomeCertificado, string versao, out string msgDados, out string msgRetWS, out string msgResultado, out string tMed, out string dhRetorno, out string xObs, string proxy, string usuario, string senha)
Descrição:
Consulta o status do Serviço de Recepção de DC-e.
O Serviço de Recepção de DC-e só é oferecido pelo Paraná e atende a todas as UF.
Esta consulta não é conclusiva, pois já ocorreram casos de o Serviço de Recepção estar com problemas e este Serviço responder "107 - Serviço em Operação". Entendemos que o Serviço presta informação subsidiária e a situação real só é obtida com o envio da DC-e.
Também cabe ressaltar que a consulta Status do WS não é pré-requisito para o envio da DC-e e nem de qualquer outro Web Service, ou seja, podemos consumir qualquer Web Service sem fazer a consulta prévia deste WS, existindo recomendação da SEFAZ neste sentido.
Parâmetros da chamada:
nome | tipo | fluxo | descrição |
---|---|---|---|
siglaWS | string | entrada | informar a sigla "PR" |
siglaUF | string | entrada | informar a sigla da UF do emissor da DC-e |
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 |
tMed | string | saída | retorna o tempo médio de resposta do serviço (em segundos) dos últimos 5 minutos. |
dhRetorno | string | saída | retorna a data e hora prevista para o retorno do WS no formato AAAA-MM-DDTHH:MM:SS |
xObs | string | saída | retorna as informações adicionais para o Contribuinte |
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 |
Certificado Digital
Informar o Nome do titular (campo Assunto) do certificado digital a ser utilizado na conexão SSL.
Para consultar o status de WS é necessário possuir um certificado digital válido para estabelecer a conexão SSL com o WS.
Tempo Médio de Resposta do Serviço
Esta informação serve de parâmetro para estabelecer a espera para realizar a busca do resultado do processamento da DC-e, os tempos normais são próximos de 1, valores altos indicam que o serviço de recepção da DC-e tem muita sobrecarga ou enfrenta problemas, sendo uma informação que pode subsidiar a decisão de adotar a contingência.
Todos os parâmetros da chamada devem ser declarados e inicializados na aplicação do usuário
Retorno da chamada:
A Consulta Status devolve 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 | - |
6101 | Erro: O parâmetro versao não foi informado | DLL | - |
6102 | Erro: O conteúdo do parâmetro sigla da UF: [valor informado] é inválido | DLL | - |
6103 | Erro: O conteúdo do parâmetro versao informado é inválido: [valor informado], a DLL espera: [valor esperado] | DLL | - |
6104 | Erro: O parâmetro siglaWS deve ser informado | DLL | - |
6105 | Erro: O parâmetro siglaUF deve ser informado | DLL | - |
6106 | Erro: O parâmetro tipoAmbiente deve ser informado | DLL | - |
6107 | Erro: O parâmetro tipoAmbiente [valor informado] deve ser 1 ou 2 | DLL | - |
6108 | Erro: O nome do titular do certificado deve ser informado | DLL | - |
107 | Servico em Operacao | 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 |
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 |
598 | Rejeicao: Usar somente o namespace padrao da DC-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-6108) 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
- 6101 - 6108 - falha no tratamento dos parâmetros da chamada da DLL
Histórico de atualização:
- 225-05-15 - versão inicial
XML:
Exemplo de XML da mensagem de Consulta o status do Serviço de Recepção de DC-e
<?xml version="1.0" encoding="UTF-8"?> <consStatServDCe xmlns="http://www.portalfiscal.inf.br/dce" versao="1.00"> <tpAmb>2</tpAmb> <cUF>35</cUF> <xServ>STATUS</xServ> </consStatServDCe>
Exemplo de XML da resposta da Consulta o status do Serviço de Recepção de DC-e
<retConsStatServDCe xmlns="http://www.portalfiscal.inf.br/dce" versao="1.00"> <tpAmb>2</tpAmb> <verAplic>PR-v0.5.7</verAplic> <cStat>107</cStat> <xMotivo>Servico em Operacao</xMotivo> <cUF>41</cUF> <dhRecbto>2025-05-17T18:23:37-03:00</dhRecbto> <tMed>0</tMed> </retConsStatServDCe>
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 siglaUF 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 cUF As String Dim dhRecbto As String Dim tMed As String Dim dhRetorno As String Dim xObs As String Dim proxy As String Dim usuario As String Dim senha As String Dim cStat As Long ' inicializa parâmetros siglaWS = "PR" siglaUF = "SP" tipoAmbiente = 2 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 = "" cUF = "" dhRecbto = "" tMed = "" dhRetorno = "" xObs = "" proxy = "" usuario = "" senha = "" cStat = 0 ' consome Webservice cStat = objDCeUtil.ConsultaWS(siglaWS, _ siglaUF, _ tipoAmbiente, _ nomeCertificado, _ versao, _ msgDados, _ msgRetWS, _ msgResultado, _ cUF, _ dhRecbto, _ tMed, _ dhRetorno, _ xObs, _ proxy, _ usuario, _ senha) ' analisa retorno If cStat <> 107 Then MsgBox msgResultado, vbCritical, "Informação" Else MsgBox msgResultado, vbInformation, "Informação" End If
- 5.4. ConsultaStatus
5. Web Service da DC-e - « Anterior
5.3. Consulta DC-e - Próximo »
6. Utilidades