Consulta Status Serviço

Olá, como podemos lhe ajudar?
< Todos tópicos
Print

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.

Esta funcionalidade serve para verificar se o Web Service está em operação, mas não garante que o web service de recepção de NF-e está em operação 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

A rejeição 656 – Consumo Indevido ocorre quando não respeitamos as recomendações 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.

PREENCHIMENTO DA siglaWS PARA ESCOLHA DO WEBSERVICE

SVAN, caso a UF seja usuária da SEFAZ Virtual do Ambiente Nacional (MA);

SVRS, caso a UF seja usuária da SEFAZ Virtual do Rio Grande do Sul (AC, AL, AP, DF, ES, PA, PB, PI, 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);

PRENCHIMENTO 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 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.

Parâmetros:

nometipofluxodescrição
siglaWSstringentradainformar a sigla do WS desejado, veja Tabela de siglaWS
siglaUFstringentradainformar a sigla da UF consultada
tipoAmbienteinteiroentradainformar o código do ambiente desejado: 1- produção ou 2-homologação
NomeCertificadostringentradainformar 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”.
versaostringentradainformar a versão da mensagem do WS – 4.00.
msgDadosstringsaídaretorna a mensagem XML gerada e enviada para o WS
msgRetWSstringsaídaretorna a mensagem XML de resposta do WS
msgResultadostringsaídaretorna a literal do resultado da chamada do WS
proxystringentradainformar ‘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’
usuariostringentradainformar o usuário para autenticação no proxy, se necessário
senhastringentradainformar a senha de autenticação no proxy, se necessário

Retorno da chamada:

A Consulta Status devolve um código numérico com os seguintes significados:

códigoMensagemorigemregra
5001Erro: 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
5002Erro: 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
5003Erro: 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
5004Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: método não permitido)DLL
5005Erro: 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
5006Erro: 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
5007Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: mensagem maior que a permitida)DLL
5008Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Servidor com problemas)DLL
5009Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Serviço não implementado)DLL
5010Erro: 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
5011Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Causa provável da falha na conexão: Rede indisponível)DLL
5012Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Versão do SOAP não suportadaDLL
5013Erro: 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
5014Erro: Falha na conexão: [MENSAGEM DE ERRO DO WINDOWS] (Causa provável: Web Service não consumido, falha desconhecida)DLL
5015Erro: Falha na conexão: Tempo limite de time-out alcançado [TEMPO DE TIME OUT UTILIZADO ms] – [MENSAGEM DE ERRO DO WINDOWS]DLL
5016Erro: Falha na conexão: Falha da Biblioteca Criptografica: [MENSAGEM DE ERRO DO WINDOWS]DLL
5017Erro: Falha ao tratar o XML de retorno do WS: [MENSAGEM DE ERRO DO WINDOWS]DLL
5101Erro: A mensagem de retorno do WS não é um XML válido: [MENSAGEM DE ERRO DO WINDOWS]DLL
5102Erro: Tag cStat inexistente na mensagem de retorno [MENSAGEM DE ERRO DO WINDOWS]DLL
5103Erro: Tag xMotivo inexistente na mensagem de retorno [MENSAGEM DE ERRO DO WINDOWS]DLL
5104Erro: Tag [NOME TAG] inexistente na mensagem de retorno [MENSAGEM DE ERRO DO WINDOWS]DLL
5105Erro: O WS não devolveu nenhum resultadoDLL
5201Erro: O código do tipo de ambiente [CODIGO RECEBIDO PELA DLL] informado diferente de 1 – produção e 2 – homologaçãoDLL
5202Erro: A sigla da UF [SIGLA RECEBIDA PELA DLL] informada é inválidaDLL
5203Erro: Inexiste url para a UF [SIGLA UF] informada no ambiente [AMBIENTE] desejado, verifique se existe atualização do arquivo [NOME ARQUIVO] disponível.DLL
5204Erro: Arquivo que contem a URL do WS não localizado em [CAMINHO DA APLICACAO]DLL
5205Erro: Ocorreu um erro inesperado no processamento da URL (NOME URL) : [MENSAGEM DE ERRO DO WINDOWS]DLL
5206Erro: Ocorreu um erro de validação do XML (NOME XML) : [MENSAGEM DE ERRO DO WINDOWS]DLL
5403Erro: Falha ao acessar certificado digital [mensagem de ERRO DO WINDOWS]DLL
5404Erro: Nenhum certificado digital selecionadoDLL
5405Erro: Nenhum certificado válido foi encontrado com o nome [NomeCertificado] informado no repositório [MY do CurrentUser]DLL
5406Erro: Falha no tratamento do parâmetro nome: [nome informado]DLL
5407Erro: Quantidade de parâmetos inválido: [nome informado]DLL
5408Erro: Falha na criação do objeto certificate: [mensagem do ERRO DO WINDOWS]DLL
6101Erro: O parâmetro versao não foi informadoDLL
6102Erro: O conteúdo do parâmetro sigla da UF: [CONTEÚDO] é inválidoDLL
6103Erro: O conteúdo do parâmetro versao informado é inválido: [CONTEÚDO]DLL
107Serviço [SVC] em OperaçãoWS
108Serviço Paralisado Momentaneamente (curto prazo)WSB03/K03
109Serviço Paralisado sem PrevisãoWSB04/K04
113SCAN/SVC será desabilitado para a SEFAZ-XX em dd/mm/aa às hh:mm horasWS
114SCAN/SVC desabilitado pela SEFAZ OrigemWS
214Rejeição: Tamanho da mensagem excedeu o limite estabelecidoWSB01
215Rejeição: Falha no schema XMLWSD01
238Rejeição: Cabeçalho – Versão do arquivo XML superior a Versão vigenteWSC05
239Rejeição: Cabeçalho – Versão do arquivo XML não suportadaWSC06
242Rejeição: Cabeçalho – Falha no Schema XMLWSC01
243Rejeição: XML Mal FormadoWSB02
252Rejeição: Ambiente informado diverge do Ambiente de recebimentoWSK01
280Rejeição: Certificado Transmissor inválidoWSA01
281Rejeição: Certificado Transmissor Data ValidadeWSA02
282Rejeição: Certificado Transmissor sem CNPJWSA07
283Rejeição: Certificado Transmissor – erro Cadeia de CertificaçãoWSA03
284Rejeição: Certificado Transmissor revogadoWSA05
285Rejeição: Certificado Transmissor difere ICP-BrasilWSA06
286Rejeição: Certificado Transmissor erro no acesso a LCRWSA04
289Rejeição: Código da UF informada diverge da UF solicitadaWSK02
299Rejeição: XML da área de cabeçalho com codificação diferente de UTF-8WSC01a
402Rejeição: XML da área de dados com codificação diferente de UTF-8WSD03
404Rejeição: Uso de prefixo de namespace não permitidoWSD02
409Rejeição: Campo cUF inexistente no elemento nfeCabecMsg do SOAP HeaderWSC02
410Rejeição: UF informada no campo cUF não é atendida pelo Web ServiceWSC03
411Rejeição: Campo versaoDados inexistente no elemento nfeCabecMsg do SOAP HeaderWSC04
516Rejeição: Falha no schema XML – inexiste a tag raiz esperada para a mensagemWSD01a
517Rejeição: Falha no schema XML – inexiste atributo versao na tag raiz da mensagemWSD01b
545Rejeição: Falha no schema XML – versão informada na versaoDados do SOAPHeader diverge da versão da mensagemWSD01c
587Rejeição: Usar somente o namespace padrão da NF-eWSD01d
588Rejeição: Não é permitida a presença de caracteres de edição no início/fim da mensagem ou entre as tags da mensagemWSD01e
656Rejeição: Consumo indevidoWS
999Rejeiçã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 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 parâmetros da chamada da DLL

Mensagens XML

Pedido de Consulta Status

<?xml version="1.0" encoding="UTF-8"?>
<consStatServ xmlns="http://www.portalfiscal.inf.br/nfe" versao="4.00">
  <tpAmb>2</tpAmb>
  <cUF>43</cUF>
  <xServ>STATUS</xServ>
</consStatServ>

Resposta do WS

<?xml version="1.0" encoding="UTF-8"?>
<retConsStatServ versao="4.00" xmlns="http://www.portalfiscal.inf.br/nfe">
  <tpAmb>2</tpAmb>
  <verAplic>RS201805211008</verAplic>
  <cStat>107</cStat>
  <xMotivo>Servico em Operacao</xMotivo>
  <cUF>43</cUF>
  <dhRecbto>2021-07-24T09:54:50-03:00</dhRecbto>
  <tMed>1</tMed>
</retConsStatServ>

Exemplos de uso:

VB 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 4.
00
 '
 ' 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 = "4.00"     ' informar a versão da mensagem do WS - 4.00
 '
 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";   // 4.00
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: 4.00
//
 Local versao           := '4.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= 4.00
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 = "4.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: 4.00
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 := '4.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;

Was this article helpful?
0 out of 5 stars
5 Stars 0%
4 Stars 0%
3 Stars 0%
2 Stars 0%
1 Stars 0%
How can we improve this article?
Please submit the reason for your vote so that we can improve the article.
Sumário