- 12. Web Service da NF-e [02-06-23]
12.5. Consulta Status Serviços [15-08-17] - 12.4. Consulta NF [15-08-17]
« Anterior - 12.6. Consulta Cadastro [15-08-17]
Próximo »
12.5. Consulta Status Serviços [15-08-17]
Consulta o status do Serviço de Recepção de NF-e
Assinatura
int ConsultaStatus2G(string siglaWS, string siglaUF, int tipoAmbiente, string nomeCertificado, string versao, out string msgDados, out string msgRetWS, out string msgResultado, string proxy, string usuario, string senha)
Descrição:
Consulta o status do Serviço de Recepção de NF-e dos Web Services existentes: UF com Web Services próprios, SCAN, SVAN, SVRS, SVC-AN e SVC-RS.
Consulta Status SCAN, SVC-AN e SVC-RS
O serviço é útil para verificar se a SEFAZ Virtual de Contingência (SCAN, SVC-AN e SVC-RS) se encontra ativo para a UF no caso de indisponibilidade do Serviço de Recepção da UF. É importante ressaltar que o SEFAZ Virtual de Contingência é um sistema de contingência que nem sempre está ativo para recepção de NF-e, pois depende da ativação pela SEFAZ que se encontra indisponível.
A identificação do WS consultado será informada no parâmetro siglaWS.
O parâmetro siglaUF deve ser informado com a sigla da UF que se deseja obter a informação do status do Serviço de Recepção de NF-e. Esta consulta não é conclusiva e nem pré-requisito para o envio de lote de NF-e, pois já ocorreram casos de o Serviço de Recepção de NF-e 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 NF-e.
CONSUMO INDEVIDO do ambiente de autorização
A rejeição 656 - Consumo Indevido ocorre quando não respeitamos as recomendaçõe da SEFAZ na consumo dos Web Service, para evitar a rejeição basta seguir a orientação da SEFAZ para evitar o Consumo Indevido do Ambiente de Autorização:.
04.1 Consulta Status_Serviço: Intervalo entre consultas (Delay)
Várias empresas implementaram suas aplicações em “loop” no Web Service de Consulta Status, consumindo de forma indevida o canal de comunicação da SEFAZ e o canal de comunicação da própria empresa. Na amostragem realizada, notamos que 45,9% das requisições das empresas são para este Web Service.
O Manual de Integração com o Contribuinte define que esta consulta pode ser feita com um intervalo entre consultas (delay) de no mínimo 3 minutos, mas encontramos algumas empresas com mais de 1 consulta por segundo. Verificamos que este comportamento ocorre mesmo nas faixas de horário que a empresa não tem nenhum movimento.
Sobre as melhores práticas
A definição do intervalo entre consultas (delay) do Manual de Integração com o Contribuinte deverá ser observada.
Algumas empresas utilizam esta consulta de uma forma mais racional, efetuando a Consulta Status unicamente após terem recebido um erro de comunicação. Este é o caso de alguns grandes emissores de NF-e, que passam a efetuar a Consulta Status somente quando detectam algum problema de comunicação e usam o resultado desta consulta para a tomada de decisão quanto a entrada ou a saída de contingência.
04.2 Consulta Status_Serviço: Antecede ao envio do Lote de NF-e
Algumas empresas adotaram a prática de primeiro efetuar uma Consulta Status_Serviço antes de enviar o Lote de NF-e. Mesmo que a consulta Status_Serviço retorne que o ambiente de Autorização está normal, a aplicação da empresa deve verificar se o envio do Lote de NF-e foi feito com sucesso, portanto, não vemos vantagem na adoção desta técnica de efetuar a consulta Status_Serviço antes de enviar o Lote de NF-e.
Cabem as mesmas recomendações da proposição anterior, eliminado o comando da Consulta Status_Serviço nesta situação.
Novidades da DLL:
suporte para versão 4.00 do leiaute da NF-e e NFC-e - NT 2016/002 v1.20
suporte para versão 3.10 do leiaute da NF-e e NFC-e - NT 2013/005 v1.01
suporte para SEFAZ Virtual de Contingência - SVC-AN e SVC-RS - NT 2013/007
suporte para versão 3.00 do leiaute da NFC-e - UF que permitem a emissão da NFC-e: AC, am, MA, mt, RN, RS e SE - NT 2012/004
Parâmetros:
nome | tipo | fluxo | descrição |
---|---|---|---|
siglaWS | string | entrada | informar a sigla do WS desejado, veja Tabela de siglaWS |
siglaUF | string | entrada | informar a sigla da UF consultada |
tipoAmbiente | inteiro | entrada | informar o código do ambiente desejado: 1- produção ou 2-homologação |
NomeCertificado | string | entrada | informar o certificado digital que será utilizado para assinatura: 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: 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". 3. 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". (novas opções) |
versao | string | entrada | informar a versão da mensagem do WS - 2.00, 3.00, 3.10 ou 4.00 [15-08-17] |
msgDados | string | saída | retorna a mensagem XML gerada e 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 |
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 |
Preenchimento da siglaWS
- SVAN, caso a UF seja usuária da SEFAZ Virtual do Ambiente Nacional (MA, PA e PI);
- SVRS, caso a UF seja usuária da SEFAZ Virtual do Rio Grande do Sul (AC, AL, AP, DF, ES, PB, RJ, RN, RO, RR, SC, SE e TO);
- sigla da UF, caso a UF tenha aplicação própria (AM, BA, CE, GO, MS, MT, MG, PE, PR, RS e SP);
- SCAN, na emissão em contingência SCAN - Sistema de Contingência do Ambiente Nacional.
- SVC-RS, caso a UF seja usuária da SEFAZ Virtual de Contingência do Rio Grande do Sul (AM, BA, CE, ES, GO, MA, MT, MS, PA, PE, PI, PR e RN);
- SVC-AN, caso a UF seja usuária da SEFAZ Virtual de Contingência do Ambiente Nacional (AC, AL, AP, DF, MG, PB, RJ, RS, RO, RR, SC, SE, SP e TO);
- AC, am, MA, mt, RN, RS e SE para a NFC-e.
Preenchimento do nomeCertificado
informar o Nome do titular (campo Assunto) do certificado digital a ser utilizado na conexão SSL, formas possíveis:
1. uso de certificado digital existente no repositório MY do CSP do usuário corrente (currentuser)
É a forma de mais comum de uso, cabe ressaltar que é a única forma de uso de certificado digital do tipo A3 que a DLL oferece.
O usuário deve passar como parâmetro o campo assunto do certificado no parâmetro NomeCertificado para que a DLL localize um certificado digital com mesmo assunto no repositório MY do currentuser do equipamento.
Esta forma de uso requer a prévia instalação do certificado digital na conta do usuário do Windows (logon) que irá utilizar o certificado digital.2. uso de certificado digital em arquivo no formato pfx
Permite o de uso de certificado digital em arquivo formato pfx.
O caminho da localização (path) do arquivo pfx deve ser passado para a DLL no formato: ARQUIVO | [nome do arquivo pfx com caminho completo] | [senha do arquivo] no parâmetro NomeCertificado, ex.: "ARQUIVO|c:\certificado.pfx|senha".
Esta opção só funciona com certificado digital do tipo A1.3. uso de certificado digital em string base64
Permite uso o arquivo do certificado digital em formato pfx convertido em uma string base64. O certificado digital em string base64 deve ser passado para a DLL no formato: CERTIFICADO | [string base64 do arquivo pfx] | [senha do arquivo] no parâmetro NomeCertificado, ex.: "CERTIFICADO|MIIGoDCCBYigAwIBAgIQep(arquivo pfx do certificado digital convertido em base64...)QQDExNBQy|senha".
Esta opção só funciona com certificado digital do tipo A1. É uma opção de uso que oferece maior versatilidade, pois permite o armazenamento do certificado digital em banco de dados na aplicação. É a forma mais indicada para uso em ASP.NET.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 do lote, os tempos normais são próximos de 1, valores altos indicam que o serviço de recepção da NF-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:
A Consulta Status devolve um código numérico com os seguintes significados:
código | Mensagem | origem | regra |
---|---|---|---|
5001 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: o certificado cliente: 1.não é ICP-Brasil; 2.fora do prazo de validade; 3.revogado; 4.certificado cliente não confiável para o Web Service acessado, contatar a SEFAZ) | DLL | - |
5002 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: a cadeia de certificação do Web Service acessado ou do certificado cliente inexistente no repositório de certificados do usuário corrente do Windows) | DLL | - |
5003 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: serviço inexistente, verifique se o nome do serviço da url acessada está correto no arquivo ws2.xml) | DLL | - |
5004 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: método não permitido) | DLL | - |
5005 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: a url não encontrada, verifique se o nome do domínio da url acessada está correto no arquivo ws2.xml) | DLL | - |
5006 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Time-Out, o WS não respondeu a solicitação no tempo estabelecido: [{1:0}]) | DLL | - |
5007 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: mensagem maior que a permitida) | DLL | - |
5008 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Servidor com problemas) | DLL | - |
5009 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Serviço não implementado) | DLL | - |
5010 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Serviço temporariamente indisponível, servidor sem recursos para atender a solicitação) | DLL | - |
5011 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Causa provável da falha na conexão: Rede indisponível) | DLL | - |
5012 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Versão do SOAP não suportada | DLL | - |
5013 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Web Service não consumido, não houve nenhum retorno ou resposta) | DLL | - |
5014 | Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Web Service não consumido, falha desconhecida) | DLL | - |
5015 | Erro: Falha na conexão: Tempo limite de time-out alcançado [TEMPO DE TIME OUT UTILIZADO ms] - [MENSAGEM DE ERRO DO WINDOWS] | DLL | - |
5016 | Erro: Falha na conexão: Falha da Biblioteca Criptografica: [MENSAGEM DE ERRO DO WINDOWS] | DLL | - |
5017 | Erro: Falha ao tratar o XML de retorno do WS: [MENSAGEM DE ERRO DO WINDOWS] | DLL | - |
5101 | Erro: A mensagem de retorno do WS não é um XML válido: [MENSAGEM DE ERRO DO WINDOWS] | DLL | - |
5102 | Erro: Tag cStat inexistente na mensagem de retorno [MENSAGEM DE ERRO DO WINDOWS] | DLL | - |
5103 | Erro: Tag xMotivo inexistente na mensagem de retorno [MENSAGEM DE ERRO DO WINDOWS] | DLL | - |
5104 | Erro: Tag [NOME TAG] inexistente na mensagem de retorno [MENSAGEM DE ERRO DO WINDOWS] | DLL | - |
5105 | Erro: O WS não devolveu nenhum resultado | DLL | - |
5201 | Erro: O código do tipo de ambiente [CODIGO 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] 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 APLICACAO] | DLL | - |
5205 | Erro: Ocorreu um erro inesperado no processamento da URL (NOME 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âmetos 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: [CONTEÚDO] é inválido | DLL | - |
6103 | Erro: O conteúdo do parâmetro versao informado é inválido: [CONTEÚDO] | DLL | - |
107 | Serviço [SVC] em Operação | WS | - |
108 | Serviço Paralisado Momentaneamente (curto prazo) | WS | B03/K03 |
109 | Serviço Paralisado sem Previsão | WS | B04/K04 |
113 | SCAN/SVC será desabilitado para a SEFAZ-XX em dd/mm/aa às hh:mm horas | WS | - |
114 | SCAN/SVC desabilitado pela SEFAZ Origem | WS | - |
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: Cabeçalho - Falha no Schema XML | WS | C01 |
243 | Rejeição: XML Mal Formado | WS | B02 |
252 | Rejeição: Ambiente informado diverge do Ambiente de recebimento | WS | K01 |
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 |
289 | Rejeição: Código da UF informada diverge da UF solicitada | WS | K02 |
299 | Rejeição: XML da área de cabeçalho com codificação diferente de UTF-8 | WS | C01a |
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 nfeCabecMsg do SOAP Header | WS | C02 |
410 | Rejeição: UF informada no campo cUF não é atendida pelo Web Service | WS | C03 |
411 | Rejeição: Campo versaoDados inexistente no elemento nfeCabecMsg do SOAP Header | WS | C04 |
516 | Rejeição: Falha no schema XML - inexiste a tag raiz esperada para a mensagem | WS | D01a |
517 | Rejeição: Falha no schema XML - inexiste atributo versao na tag raiz da mensagem | WS | D01b |
545 | Rejeição: Falha no schema XML - versão informada na versaoDados do SOAPHeader diverge da versão da mensagem | WS | D01c |
587 | Rejeição: Usar somente o namespace padrão da NF-e | WS | D01d |
588 | Rejeição: Não é permitida a presença de caracteres de edição no início/fim da mensagem ou entre as tags da mensagem | WS | D01e |
656 | Rejeição: Consumo indevido | WS | - |
999 | Rejeição: Erro não catalogado (mensagem) | WS | - |
Tratamento de Erro:
Caso ocorra algum erro na chamada do WS (5001-6103) 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 - 6103 - falha no tratamento dos pârametros da chamada da DLL
Histórico de atualização:
- 2010-02-02 - 2Gv0.00 - Versão beta preliminar.
- 2011-06-18 - 2Gv0.7 - Acréscimo de novas opções para uso de certificado digital
- 2013-12-02 - 2Gv2.0.1 - Atualização para aceitar as versões 3.0 e 3.10 do leiaute
- 2013-12-02 - 2Gv2.0.1 - Atualização para permitir o consumo da SVC-AN e SVC-RS
- 2017-08-15 - 2Gv4.00 - atualização para suportar a versão 4.00.
Mensagens XML - versão 1.07:
Pedido de Consulta Status
<?xml version="1.0" encoding="UTF-8" ?> <consStatServ xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.07"> <tpAmb>2</tpAmb> <cUF>33</cUF> <xServ>STATUS</xServ> </consStatServ>
Resposta do WS
<?xml version="1.0" encoding="utf-8"?> <retConsStatServ versao="1.07" xmlns="http://www.portalfiscal.inf.br/nfe"> <tpAmb>2</tpAmb> <verAplic>SVRS20100112141427</verAplic> <cStat>107</cStat> <xMotivo>Servico em Operacao</xMotivo> <cUF>33</cUF> <dhRecbto>2010-02-07T01:04:19</dhRecbto> <tMed>1</tMed> </retConsStatServ>
Mensagens XML - versão 2.00:
Pedido de Consulta Status
<?xml version="1.0" encoding="UTF-8" ?> <consStatServ xmlns="http://www.portalfiscal.inf.br/nfe" versao="2.00"> <tpAmb>2</tpAmb> <cUF>35</cUF> <xServ>STATUS</xServ> </consStatServ>
Resposta do WS - versão 2.00
<retConsStatServ versao="2.00" xmlns="http://www.portalfiscal.inf.br/nfe"> <tpAmb>2</tpAmb> <verAplic>SP_NFE_PL_006q</verAplic> <cStat>107</cStat> <xMotivo>Serviço em Operação</xMotivo> <cUF>35</cUF> <dhRecbto>2013-12-01T04:24:00</dhRecbto> <tMed>1</tMed> </retConsStatServ>
Mensagens XML - versão 3.00:
Pedido de Consulta Status
<?xml version="1.0" encoding="UTF-8" ?> <consStatServ xmlns="http://www.portalfiscal.inf.br/nfe" versao="3.00"> <tpAmb>2</tpAmb> <cUF>13</cUF> <xServ>STATUS</xServ> </consStatServ>
Resposta do WS - versão 3.00
<retConsStatServ xmlns="http://www.portalfiscal.inf.br/nfe" versao="3.00"> <tpAmb>2</tpAmb> <verAplic>AM3.00</verAplic> <cStat>107</cStat> <xMotivo>Servico em Operacao</xMotivo> <cUF>13</cUF> <dhRecbto>2013-12-01T02:22:40-04:00</dhRecbto> <tMed>1</tMed> </retConsStatServ>
Mensagens XML - versão 3.10:
Pedido de Consulta Status
<?xml version="1.0" encoding="UTF-8" ?> <consStatServ xmlns="http://www.portalfiscal.inf.br/nfe" versao="3.10"> <tpAmb>2</tpAmb> <cUF>43</cUF> <xServ>STATUS</xServ> </consStatServ>
Resposta do WS - versão 3.10
<retConsStatServ versao="3.10" xmlns="http://www.portalfiscal.inf.br/nfe"> <tpAmb>2</tpAmb> <verAplic>RS20131126155321</verAplic> <cStat>107</cStat> <xMotivo>Servico em Operacao</xMotivo> <cUF>43</cUF> <dhRecbto>2013-12-01T04:19:37-02:00</dhRecbto> <tMed>1</tMed> </retConsStatServ>
Atenção
Os XML acima foram identados para uma melhor visualização, a mensagem original não tem formatação.
Os XML das mensagens de retorno da versão 2.00, 3.00 e 3.10 não têm a declaração XML.
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 gerada e enviada para o 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 siglaUF As String ' informar a sigla da UF consultada Dim siglaWS As String ' informar a sigla do WS que deseja consultar ' AM, BA, CE, GO, MS, MT, MG, PE, PR, RS e SP (WS próprio); ' SVAN - SEFAZ Virtual do Ambiente Nacional (MA, PA e PI); ' SVRS - SEFAZ Virtual do Rio Grande do Sul (AC, AL, AP, DF, PB, RJ, ' RO, RR, SC, SE e TO); ' SCAN - Sistema de Contingência do Ambiente Nacional ' SVC-AN - SEFAZ Virtual de Contingência do Ambiente Nacional (AC, AL, ' AP, DF, MG, PB, RJ, RS, RO, RR, SC, SE, SP e TO); ' SVC-RS - SEFAZ Virtual de Contingência do Rio Grande do Sul (AM, BA, ' CE, ES, GO, MA, MT, MS, PA, PE, PI, PR e RN); ' am e mt para a NFC-e. 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 cResultado As Long ' código de retorno da DLL ' ' 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 ' 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 2.00, 3.00 ou 3.10 ' ' 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 gerada e enviada para o WS msgRetWS = "" ' retorna a mensagem XML de resposta do WS msgResultado = "" ' retorna a literal do resultado da chamada do WS ' ' prepara variáveis ' nomeCertificado = "CN=NFe - Associacao NF-e:99999090910270, C=BR, L=PORTO ALEGRE, O=Teste Projeto NFe RS, OU=Teste Projeto NFe RS, S=RS" nomeCertificado = "CN=COMERCIO DE DIVISORIAS FERCAL LTDA ME:15459686000150, OU=Autenticado por AR Sescon SC, OU=RFB e-CNPJ A1, OU=Secretaria da Receita Federal do Brasil - RFB, L=JOACABA, S=SC, O=ICP-Brasil, C=BR" siglaWS = "SP" ' informar a sigla do WS que deseja consultar: ' AM, BA, CE, GO, MS, MT, MG, PE, PR, RS e SP (WS próprio); ' SVAN - SEFAZ Virtual do Ambiente Nacional (MA, PA e PI); ' SVRS - SEFAZ Virtual do Rio Grande do Sul (AC, AL, AP, DF, PB, RJ, RO, RR, ' SC, SE e TO); ' SCAN - Sistema de Contingência do Ambiente Nacional ' SVC-AN - SEFAZ Virtual de Contingência do Ambiente Nacional (AC, AL, AP, ' DF, MG, PB, RJ, RS, RO, RR, SC, SE, SP e TO); ' SVC-RS - SEFAZ Virtual de Contingência do Rio Grande do Sul (AM, BA, CE, ' ES, GO, MA, MT, MS, PA, PE, PI, PR e RN); ' am e mt para a NFC-e. siglaUF = "SP" ' informar a sigla da UF consultada tipoAmbiente = "2" ' informar o código do ambiente a ser consultado: 1- produção ou 2-homologação versao = "2.00" ' informar a versão da mensagem do WS - 2.00, 3.00 ou 3.10 ' Dim objNFeUtil As Object ' ' instancia a DLL (late binding) ' '******************************IMPORTANTE************************************ '* * '* 1. a DLL deve estar registrada no Windows, a forma mais simples de * '* fazer o registro é utilizar o instalador da DLL: * '* * '* https://www.flexdocs.net/guiaNFe/instala.html * '* * '* 2. a DLL NFe_Util_2G.dll e Reports.dll e a pasta NFe_Util devem existir * '* na pasta da aplicação. * '* * '* 3. para execução em modo debug, a DLL NFe_Util_2G.dll e Reports.dll e a * '* pasta NFe_Util devem existir na pasta do VB98 ou do Access * '* * '* Ex. VB98 : C:\Program Files (x86)\Microsoft Visual Studio\VB98 * '* * '* 4. consulte o guia de uso da DLL para ter outras informações: * '* * '* https://www.flexdocs.net/guiaNFe/WS.consultaStatus2G.html * '* * '**************************************************************************** Set objNFeUtil = CreateObject("NFe_Util_2G.util") ' ' Screen.MousePointer = vbHourglass ' ampulheta ' cResultado = objNFeUtil.ConsultaStatus2G(siglaWS, _ siglaUF, _ tipoAmbiente, _ nomeCertificado, _ versao, _ msgDados, _ msgRetWS, _ msgResultado, _ proxy, _ usuario, _ senha) ' ' Screen.MousePointer = vbDefault ' normal ' ' mostra mensagem XML enviada ' MsgBox msgDados, vbInformation, "Mensagem XML da Consulta Status do Serviço" ' ' mostra mensagem XML da mensagem de retorno do WS ' MsgBox msgResultado + Chr(13) + Chr(13) + msgRetWS, vbInformation, "Resultado da Consulta Status do Serviço"
c#
// // declaração e inicilização de parâmetros da chamada // string msgDados = ""; // mensagem XML enviada ao WS string msgRetWS = ""; // mensagem XML de resposta do WS string msgResultado = ""; // literal do resultado da chamada do WS string nomeCertificado = "CN=M R M KATO ASAKURA EPP:10142785000190, OU=AR SERASA, OU=RFB e-CNPJ A3, OU=Secretaria da Receita Federal do Brasil - RFB, O=ICP-Brasil, L=OURINHOS, S=SP, C=BR"; string siglaWS = "SVRS"; // sigla do WS: UF, SVRS, SVC-RS, SVC-AN, SCAN, etc. string siglaUF = "RJ"; // sigla da UF string versao = "2.00"; // 2.00, 3.00 ou 3.10 int tipoAmbiente = 2; // 1 - produção / 2 - homologação int cStat = 0; // código retorno da chamada do WS // informar proxy, usuário e senha caso exista proxy na rede string proxy = ""; string usuario = ""; string senha = ""; //******************************IMPORTANTE************************************ //* * //* 1. não existe necessidade de fazer o registro da DLL no Windows, mas é * //* necessário fazer add reference da DLL no solution explorer * //* * //* 2. a DLL NFe_Util_2G.dll e Reports.dll e a pasta NFe_Util devem existir * //* na pasta da aplicação. * //* * //* 3. consulte o guia de uso da DLL para ter outras informações: * //* * //* https://www.flexdocs.net/guiaNFe/WS.ConsultaStatus2G.html * //* * //**************************************************************************** NFe_Util_2G.Util NFe_Util = new NFe_Util_2G.Util(); // chama WS de consulta status cStat = NFe_Util.ConsultaStatus2G(siglaWS, siglaUF, tipoAmbiente, nomeCertificado, versao, out msgDados, out msgRetWS, out msgResultado, proxy, usuario, senha); // mostra retorno do WS MessageBox.Show(msgResultado + "\r\n\r\n" + msgRetWS);
xBase (xHarbour)
Util := CreateObject( "NFe_util_2G.util" ) // A DLL tem que estar na pasta do aplicativo, se estiver em outro local não roda. ConsultaStatus() // ********************************************************************************* FUNCTION ConsultaStatus() // ********************************************************************************* // // Estas variáveis devem ser declaradas e inicializads com ''. // Local nRetorno Local msgRetWS := '' Local msgResultado := '' Local msgDados := '' // // Informações do proxy, necessário quando o ambiente do cliente utiliza proxy para limitar o acesso externo // Local ProxyName := '' Local Proxyuser := '' Local ProxyPassword := '' // // Informar a sigla do WS, nas UF que têm aplicação própria é sigla da UF, se a UF for usuária da SEFAZ Virtual informe SVAN ou SVRS. // Para acessar a SEFAZ Virutal de Contingência, informe SCAN, SVC-AN ou SVC-RS // Local SiglaWS := 'SVRS' // // Informar a sigla da UF para o qual deseja obter o Status do Serviço // Local SiglaUF := 'RJ' // // Código do Ambiente acessado: 1- produção / 2 - homologação // Local tipoAmbiente := '2' // // Versão do WS acessado: 2.00, 3.00 ou 3.10 // Local versao := '2.00' // // // Local CertificadoDigital := "CN=M R M KATO ASAKURA EPP:10142785000190, OU=AR SERASA, OU=RFB e-CNPJ A3, OU=Secretaria da Receita Federal do Brasil - RFB, O=ICP-Brasil, L=OURINHOS, S=SP, C=BR" nRetorno:=Util:ConsultaStatus2G( SiglaWS,; SiglaUF,; tipoAmbiente,; CertificadoDigital,; versao,; @msgDados,; @msgRetWS,; @msgResultado,; ProxyName, ProxyUser, ProxyPassword ) ? msgResultdo // literal da xMotivo ? msgRetWS // XML DE RETORNO DO STATUS Return Nil
xBase (Visual Fox Pro)
CLEAR &&-------------------------------------------------------------------------------------- && && Funcionalidade para consultar o status do WS && &&-------------------------------------------------------------------------------------- && DECLARAÇÃO DE PARÂMETROS DE ENTRADA DA FUNCIONALIDADE &&-------------------------------------------------------------------------------------- Local siglaWS As String && sigla do WS: AN para Ambiente Nacional e RS para SVRS LOCAL siglaUF As String && silga da UF consultada Local tipoAmbiente As Long && Ambiente: 1-Produção e 2-Homologação Local nomeCertificado As String && campo assunto do certificado digital Local versao As String && versão= 2.00, 3.00 ou 3.10 Local proxy As String && IP e porta do proxy, informar se existir proxy Local usuario As String && usuario do proxy Local senha As String && senha do proxy &&-------------------------------------------------------------------------------------- && DECLARAÇÃO DE PARÂMETROS DE RETORNO DA FUNCIONALIDADE &&-------------------------------------------------------------------------------------- Local msgDados As String && retorna o XML enviado ao WS Local msgRetWS As String && retorna o XML de resposta do WS Local cStat As Long && retorna o código do resultado da chamada Local msgResultado As String && retorna o literal do resultado da chamada &&-------------------------------------------------------------------------------------- && INICIALIZAÇÃO DE PARÂMETROS &&-------------------------------------------------------------------------------------- siglaWS = "SP" siglaUF = "SP" tipoAmbiente = 2 nomeCertificado = "CN=M R M KATO ASAKURA EPP:10142785000190, OU=AR SERASA, OU=RFB e-CNPJ A3, OU=Secretaria da Receita Federal do Brasil - RFB, O=ICP-Brasil, L=OURINHOS, S=SP, C=BR" versao = "2.00" msgDados = "" msgRetWS = "" cStat = 0 msgResultado = "" proxy = "" usuario = "" senha = "" &&-------------------------------------------------------------------------------------- && instancia classe &&-------------------------------------------------------------------------------------- Local objNFeUtil As Object objNFeUtil = CREATEOBJECTEX("NFe_Util_2G.Util","","") &&******************************IMPORTANTE************************************ &&* * &&* 1. a DLL deve estar registrada no Windows, a forma mais simples de * &&* fazer o registro é utilizar o instalador da DLL: * &&* * &&* https://www.flexdocs.net/guiaNFe/instala.html * &&* * &&* 2. a DLL NFe_Util_2G.dll e Reports.dll e a pasta NFe_Util devem existir * &&* na pasta do VFP ou do runtime do VFP * &&* * &&* 4. consulte o guia de uso da DLL para ter outras informações: * &&* * &&* https://www.flexdocs.net/guiaNFe/WS.consultaStatus2G.html * &&* * &&**************************************************************************** &&-------------------------------------------------------------------------------------- && chama funcionalidade &&-------------------------------------------------------------------------------------- cStat = objNFeUtil.ConsultaStatus2G(siglaWS, ; siglaUF, ; tipoAmbiente, ; nomeCertificado, ; versao, ; @msgDados, ; @msgRetWS, ; @msgResultado, ; proxy, usuario, senha) ? "Consulta Status do WS" ? "----------------------------------------------------------------------" ? "Resultado do chamada:" ? "----------------------------------------------------------------------" ? msgResultado ? "----------------------------------------------------------------------" ? ? "XML da resposta do WS:" ? "----------------------------------------------------------------------" ? msgRetWS ? "----------------------------------------------------------------------" &&-------------------------------------------------------------------------------------- && libera classe &&-------------------------------------------------------------------------------------- objNFeUtil = null
Object Pascal (Delphi)
procedure TForm1.ConsultaStatus; var Util: OleVariant; // acrescentar comObj no uses da aplicaçõa siglaWS: widestring; // informar a siglaWS: UF, SCAN, SVRS, SVC-AN, SVC-RS siglaUF: widestring; // inforamr a sigla da UF tipoAmbiente: integer; // informar o ambiente: 1 - produção ou 2 - homologação versao: widestring; // informar a versao do WS: 2.00, 3.00 ou 3.10 nomeCertificado: widestring; // informar o nomeCertificado (campo assunto do certificado) proxy : widestring; // informar o proxy se necessário usuario : widestring; // inforamr o usuário do proxy se necessário senha : widestring; // informar a senha se necessário // parâmetros de retorno - inicilizar todas ela cStat: integer; // retorna o cStat do Web Service msgDados: widestring; // retorna o XML enviado ao Web Service msgRetWS: widestring; // retorna o XML da resposta do Web Service msgResultado: widestring; // retorna o literal da resposto do Web Service begin { ******************************IMPORTANTE************************************ * * * 1. a DLL deve estar registrada no Windows, a forma mais simples de * * fazer o registro é utilizar o instalador da DLL: * * * * https://www.flexdocs.net/guiaNFe/instala.html * * * * 2. a DLL NFe_Util_2G.dll e Reports.dll e a pasta NFe_Util devem existir * * na pasta da aplicação. * * * * 3. consulte o guia de uso da DLL para ter outras informações: * * * * https://www.flexdocs.net/guiaNFe/WS.consultaStatus2G.html * * * **************************************************************************** } Util := CreateOleObject('NFe_Util_2G.util'); // instância a DLL nomeCertificado := 'CN=M R M KATO ASAKURA EPP:10142785000190, OU=AR SERASA, OU=RFB e-CNPJ A3, OU=Secretaria da Receita Federal do Brasil - RFB, O=ICP-Brasil, L=OURINHOS, S=SP, C=BR'; siglaWS := 'SP'; siglaUF := 'SP'; tipoAmbiente := 2; versao := '2.00'; proxy := ''; usuario := ''; senha := ''; msgDados :=''; msgRetWS := ''; msgResultado :=''; cStat := Util.ConsultaStatus2G(siglaWS, siglaUF, tipoAmbiente, nomeCertificado, versao, msgDados, msgRetWS, msgResultado, proxy, usuario, senha); MessageDlg( 'Resultado da chamada do WS'+#13+#13+msgResultado+#13+#13+msgRetWS, mtInformation, [mbOk], 0); end;
- 12.5. Consulta Status Serviços [15-08-17]
12. Web Service da NF-e [02-06-23] - « Anterior
12.4. Consulta NF [15-08-17] - Próximo »
12.6. Consulta Cadastro [15-08-17]