Consulta o status da NF-e
int ConsultaNF2G(string siglaWS,int tipoAmbiente, string nomeCertificado, string versao, out string msgDados, out string msgRetWS, out string msgResultado, string chaveNFe, string proxy, string usuario, string senha)
Consulta o status de uma NF-e no Web Services onde foi autorizado.
A identificação do WS consultado será informada no parâmetro siglaWS.
É importante ressaltar que os emissores localizados em UF usuárias da SEFAZ Virtual devem informar a sigla SVAN (MA, PA e PI) ou a sigla SVRS (AC, AL, AP, DF, PB, RJ, RO, RR, SC, SE e TO), ou informar a sigla da UF (AM, BA, CE, GO, MS, MT, MG, PE, PR, RS e SP) nos casos de UF que tenham aplicação própria. Em caso de emissão em contingência, informar a sigla SCAN, SVC-AN ou SVC-RS.
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.
• 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);
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.
nome | tipo | fluxo | descrição |
---|---|---|---|
siglaWS | string | entrada | informar a sigla do WS desejado, veja Tabela de siglaWS |
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”. |
versao | string | entrada | informar a versão da mensagem do WS – 4.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 |
chaveNFe | string | entrada | informar a chave de acesso da NF-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 |
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: [CONTEUDO] | DLL | – |
6104 | Erro: O parâmetro chaveNFe não informado | DLL | – |
6105 | Erro: O tamanho [TAMANHO DO PARAMETRO] do parâmetro chaveNFe informado não tem 44 caracteres | DLL | – |
6106 | Erro: As posições correspondentes (1,2) ao código da UF [POSIÇÃO DA CHAVE] do parâmetro chaveNFe não é um código de UF válido | DLL | – |
6107 | Erro: A chave de acesso deve ter 44 posições: [POSIÇÃO DA CHAVE] | DLL | – |
6108 | Erro: O conteúdo do parâmetro número do protocolo: [NÚMERO DO PROTOCOLO] deve ter 15 posições | DLL | – |
6109 | Erro: O conteúdo do parâmetro justificativa: [JUSTIFICATIVA] deve ter pelo menos 15 posições | DLL | – |
6110 | Erro: O nome do titular do certificado deve ser informado | DLL | – |
6123 | Erro: O parâmetro tipoAmbiente deve ser informado | DLL | – |
6124 | Erro: O parâmetro tipoAmbiente [CONTEUDO] deve ser 1 ou 2 | DLL | – |
6141 | Erro: O parâmetro siglaWS deve ser informado | DLL | – |
100 | Autorizado o uso da NF-e | WS | – |
101 | Cancelamento de NF-e homologado | WS | – |
108 | Serviço Paralisado Momentaneamente (curto prazo) | WS | B03 |
109 | Serviço Paralisado sem Previsão | WS | B04 |
110 | Uso Denegado | WS | – |
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 | J04 |
217 | Rejeição: NF-e não consta na base de dados da SEFAZ | WS | J03 |
226 | Rejeição: Código da UF do Emitente diverge da UF autorizadora | WS | J02 |
236 | Rejeição: Chave de Acesso com dígito vereficador inválido | WS | J02a |
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 | J01 |
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 |
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 |
561 | Rejeição: Mês de Emissão informado na Chave de Acesso difere do Mês de Emissão da NFe | WS | J05 |
562 | Rejeição: Código Numérico informado na Chave de Acesso difere do Código Numérico da NF-e | WS | J04 |
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 |
613 | Rejeição: Chave de Acesso diferente da existente em BD | WS | J06 |
614 | Rejeição: Chave de Acesso inválida (Código UF inválido) | WS | J02b |
615 | Rejeição: Chave de Acesso inválida (Ano < 05 ou Ano maior que Ano corrente) | WS | J02c |
616 | Rejeição: Chave de Acesso inválida (Mês < 1 ou Mês > 12) | WS | J02d |
617 | Rejeição: Chave de Acesso inválida (CNPJ zerado ou dígito inválido) | WS | J02e |
618 | Rejeição: Chave de Acesso inválida (modelo diferente que 55) | WS | J02f |
619 | Rejeição: Chave de Acesso inválida (número NF = 0) | WS | J02g |
656 | Rejeição: Consumo indevido | WS | – |
999 | Rejeição: Erro não catalogado (mensagem) | WS | – |
Caso ocorra algum erro na chamada do WS (5001-6141) 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 – 6141 – falha no tratamento dos parâmetros da chamada da DLL
Pedido de Consulta Status NF-e
<?xml version="1.0" encoding="UTF-8"?>
<consSitNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="4.00">
<tpAmb>1</tpAmb>
<xServ>CONSULTAR</xServ>
<chNFe>35100610142785000190551100000000014259062380</chNFe>
</consSitNFe>
Resposta do WS para NF-e inexistente
<?xml version="1.0" encoding="UTF-8"?>
<retConsSitNFe versao="4.00" xmlns="http://www.portalfiscal.inf.br/nfe">
<tpAmb>1</tpAmb>
<verAplic>SP_NFE_PL009_V4</verAplic>
<cStat>217</cStat>
<xMotivo>Rejeição: NF-e não consta na base de dados da SEFAZ</xMotivo>
<cUF>35</cUF>
<dhRecbto>2021-07-24T13:03:22-03:00</dhRecbto>
<chNFe>35100610142785000190551100000000014259062380</chNFe>
</retConsSitNFe>
Resposta do WS para NF-e autorizada
<?xml version="1.0" encoding="UTF-8"?>
<retConsSitNFe versao="4.00" xmlns="http://www.portalfiscal.inf.br/nfe">
<tpAmb>1</tpAmb>
<verAplic>SP_NFE_PL009_V4</verAplic>
<cStat>100</cStat>
<xMotivo>Autorizado o uso da NF-e</xMotivo>
<cUF>35</cUF>
<dhRecbto>2021-07-24T13:11:31-03:00</dhRecbto>
<chNFe>35210710142785000190551100000000014259062380</chNFe>
<protNFe versao="4.00">
<infProt>
<tpAmb>1</tpAmb>
<verAplic>SP_NFE_PL009_V4</verAplic>
<chNFe>35210710142785000190551100000000014259062380</chNFe>
<dhRecbto>2021-07-19T10:57:38-03:00</dhRecbto>
<nProt>135210812027310</nProt>
<digVal>M8jagG38SNi5/SdvLLsI1fIPbTM=</digVal>
<cStat>100</cStat>
<xMotivo>Autorizado o uso da NF-e</xMotivo>
</infProt>
</protNFe>
</retConsSitNFe>
Resposta do WS para NF-e cancelada
<?xml version="1.0" encoding="UTF-8"?>
<retConsSitNFe versao="4.00" xmlns="http://www.portalfiscal.inf.br/nfe">
<tpAmb>2</tpAmb>
<verAplic>SP_NFE_PL_006j</verAplic>
<cStat>101</cStat>
<xMotivo>Cancelamento de NF-e homologado</xMotivo>
<cUF>35</cUF>
<chNFe>35120810142785000190550010000000231184534973</chNFe>
<protNFe versao="4.00">
<infProt>
<tpAmb>2</tpAmb>
<verAplic>SP_NFE_PL_006j</verAplic>
<chNFe>35120810142785000190550010000000231184534973</chNFe>
<dhRecbto>2012-08-18T20:25:51</dhRecbto>
<nProt>135120005426259</nProt>
<digVal>Bd42XRxmoKgt5SAg62HNuOouvcY=</digVal>
<cStat>100</cStat>
<xMotivo>Autorizado o uso da NF-e</xMotivo>
</infProt>
</protNFe>
<procEventoNFe versao="4.00">
<evento xmlns="http://www.portalfiscal.inf.br/nfe" versao="4.00">
<infEvento Id="ID1101113512081014278500019055001000000023118453497301">
<cOrgao>35</cOrgao>
<tpAmb>2</tpAmb>
<CNPJ>10142785000190</CNPJ>
<chNFe>35120810142785000190550010000000231184534973</chNFe>
<dhEvento>2012-08-18T20:26:58-03:00</dhEvento>
<tpEvento>110111</tpEvento>
<nSeqEvento>1</nSeqEvento>
<verEvento>1.00</verEvento>
<detEvento versao="1.00">
<descEvento>Cancelamento</descEvento>
<nProt>135120005426259</nProt>
<xJust>Teste de Cancelamento como Evento</xJust>
</detEvento>
</infEvento>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
<Reference URI="#ID1101113512081014278500019055001000000023118453497301">
<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
<Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<DigestValue>ltctExluD0Od3kxNimxSQTgKkAQ=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>iorN1e//LP/fKzwJtmxkh4fvZjafKkd4qUi(...)UC3p7B6/9g1f3d599XTO62JsQEU=</SignatureValue>
<KeyInfo>
<X509Data>
<X509Certificate>MIIFtDCCBJygAwIBAgIIG1mv0XRoWy4(...)6f5GtED6q4AxkHNUQBimd6HAhA0oDjO/oaDeEC</X509Certificate>
</X509Data>
</KeyInfo>
</Signature>
</evento>
<retEvento versao="4.00">
<infEvento>
<tpAmb>2</tpAmb>
<verAplic>SP_EVENTOS_PL_100</verAplic>
<cOrgao>35</cOrgao>
<cStat>135</cStat>
<xMotivo>Evento registrado e vinculado a NF-e</xMotivo>
<chNFe>35120810142785000190550010000000231184534973</chNFe>
<tpEvento>110111</tpEvento>
<xEvento>Cancelamento registrado</xEvento>
<nSeqEvento>1</nSeqEvento>
<CNPJDest>00000000000191</CNPJDest>
<emailDest>contato@bb.com.br</emailDest>
<dhRegEvento>2012-08-18T20:32:05-03:00</dhRegEvento>
<nProt>135120005426267</nProt>
</infEvento>
</retEvento>
</procEventoNFe>
</retConsSitNFe>
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 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 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 chaveNFe As String ' informar a chave de acesso da NF-e que se deseja consultar
'
' 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 a versão da mensagem do WS 4.00
'
' IMPORTANTE: todas as variáveis utilizadas como parâmetro da DLL devem ser inicializadas
'
'
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 enviada para o WS
msgRetWS = "" ' retorna a mensagem XML de resposta do WS
msgResultado = "" ' retorna a literal do resultado da chamada do WS
chaveNFe = "35100610142785000190550100000000018921770079" ' informar a chave de acesso da NF-e que se deseja consultar"
'
' prepara variáveis
'
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" ' informar a sigla do WS que deseja consultar, informar SVAN - SEFAZ Virtual do Ambiente Nacional (MA, PA e PI) ou SVRS - SEFAZ Virtual do Rio Grande do Sul (AC, AL, AP, DF, PB, RJ, RO, RR, SC, SE e TO), caso a UF seja usuário da SEFAZ Virtual, em caso contrário informar a sigla da UF (AM, BA, CE, GO, MS, MT, MG, PE, PR, RS e SP). Em caso de contingência SCAN, informar a sigla SCAN
tipoAmbiente = "2" ' informar o código do ambiente a ser consultado: 1- produção ou 2-homologação
versao = "4.00" ' informar a versão da mensagem do WS 4.00
'
Dim Result As Long
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 *
'* C:\Program Files (x86)\Microsoft Visual Studio\VB98 *
'* *
'* 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.consultaNF2G.html *
'* *
'****************************************************************************
Set objNFeUtil = CreateObject("NFe_Util_2G.util")
'
'
Screen.MousePointer = vbHourglass ' ampulheta
'
Result = objNFeUtil.ConsultaNF2G(siglaWS, _
tipoAmbiente, _
nomeCertificado, _
versao, _
msgDados, _
msgRetWS, _
msgResultado, _
chaveNFe, _
proxy, _
usuario, _
senha)
'
'
Screen.MousePointer = vbDefault ' normal
'
' mostra mensagem XML enviada e a mensagem de retorno do WS
'
MsgBox msgDados + Chr(13) + Chr(13) + msgResultado + Chr(13) + Chr(13) + msgRetWS, vbInformation, "Resultado da Consulta Status da NF-e"
c#
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 a situação da NF-e
&&
&&--------------------------------------------------------------------------------------
&& 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 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 chaveNFe As String && chave de acesso da NF-e
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
Local licenca As String && licenca de uso, necessário informar para produção
&&--------------------------------------------------------------------------------------
&& 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"
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 = ""
chaveNFe = "35100610142785000190550100000000018921770079"
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 *
&&* *
&&* 3. consulte o guia de uso da DLL para ter outras informações: *
&&* *
&&* https://www.flexdocs.net/guiaNFe/WS.consultaNF2G.html *
&&* *
&&****************************************************************************
&&--------------------------------------------------------------------------------------
&& chama funcionalidade
&&--------------------------------------------------------------------------------------
cStat = objNFeUtil.ConsultaNF2G(siglaWS, ;
tipoAmbiente, ;
nomeCertificado, ;
versao, ;
@msgDados, ;
@msgRetWS, ;
@msgResultado, ;
chaveNFe, ;
proxy, usuario, senha)
? "Consulta status da NF-e"
? "----------------------------------------------------------------------"
? "Resultado do chamada:"
? "----------------------------------------------------------------------"
? msgResultado
? "----------------------------------------------------------------------"
?
? "XML da resposta do WS:"
? "----------------------------------------------------------------------"
? msgRetWS
? "----------------------------------------------------------------------"
&&--------------------------------------------------------------------------------------
&& libera classe
&&--------------------------------------------------------------------------------------
objNFeUtil = null
Object Pascal (Delphi)
procedure TForm1.ConsultaNFe;
var
Util: OleVariant; // acrescentar comObj no uses da aplicaçõa
siglaWS: widestring; // informar a siglaWS: UF, SCAN, SVRS, SVC-AN, SVC-RS
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)
chaveNFe:widestring; // informar a chave de acesso da NF-e que será consultada
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.consultaNF2G.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';
tipoAmbiente := 2;
versao := '2.00';
chaveNFe := '35100610142785000190550100000000018921770079';
proxy := '';
usuario := '';
senha := '';
msgDados :='';
msgRetWS := '';
msgResultado :='';
cStat := Util.ConsultaNF2G(siglaWS,
tipoAmbiente,
nomeCertificado,
versao,
msgDados,
msgRetWS,
msgResultado,
chaveNFe,
proxy,
usuario,
senha);
MessageDlg( 'Resultado da chamada do WS'+#13+#13+msgResultado+#13+#13+msgRetWS, mtInformation, [mbOk], 0);
end;