- 12.2. Envio de uma NF-e individual
12.2.2. BuscaNFe2G [15-08-17] - 12.2.1. EnviaNFe2G [15-08-17]
« Anterior - 12.2.3. EnviaNFSincrono [15-08-17]
Próximo »
12.2.2. BuscaNFe2G [15-08-17]
Busca NF-e
Assinatura
string BuscaNFe2G(string siglaWS, int tipoAmbiente, ref string NFeAssinada, string nroRecibo, string nomeCertificado, string versao, out string msgDados, out string msgRetWS, out int cStat, out string msgResultado, out string nroProtocolo, out string dhProtocolo, out string cMsg, out string xMsg, string proxy, string usuario, string senha, string licenca);
Descrição:
Busca o resultado do processamento da NF-e enviada através do EnviaNFe2G.
Esta funcionalidade é complementar à funcionalidade EnviaNFe2G e serve apenas para buscar o resultado do processamento da NF-e enviada através do EnviaNFe2G.
Funcionalidade complementar do EnviaNFe2G
Esta funcionalidade é complementar à funcionalidae EnviaNFe2G, isto significa que a funcionalidade só monta o procNFe com o primeiro protNFe que existe no resultado do processamento do lote. Assim, não tente utilizar a funcionalidade para montar o procNFe de um lote que tenha mais de uma nota fiscal (que tenha sido enviado através do EnviaLote2G).
Número do recibo do lote
A funcionalidade identifica o WS que deve ser consultado com base no número do recibo e do tipo de ambiente.
Finalidade do número do recibo do lote
O número do recibo do lote não é o protocolo de autorização. É um número que a SEFAZ atribui ao lote recebido, sendo necessário para consultar o resultado do pocessamento do lote.
Significado do número do recibo do Lote:
posição Descrição 1 a 2 código da UF do IBGE 3 órgão do tipo autorizador:
1 – Secretaria de Fazenda Estadual;
2 – Receita Federal;
3 – SEFAZ Virtual RS;
4 – SEFAZ Virtual RFB;
6 – SEFAZ Virtual Contingência do AN;
7 – SEFAZ Virtual Contingência do RS.4 a 15 sequencial 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.
Novidades:
suporte para SEFAZ Virtual de Contingência - SVC-AN e SVC-RS - NT 2013/007
multiversão - possibilidade de consumir WS da versão 1.07 do leiaute (versões 2.04 e 3.00 do Manual de Integração) que utiliza área de cabeçalho e os WS da versão 2.00 (Manual de Integração versão 4.0x) que utilizam o SOAPHeader. A escolha do WS é realizada pelo parâmetro versao.
suporte SCAN, SVAN e SVRS - possibilidade de indicar o WS desejado, não sendo mais necessário a alteração manual da url no arquivo ws.xml.
padronização dos códigos de erro - os códigos de erro foram renumerados e as mensagens padronizadas.
retorno do cStat e xMotivo - o cStat da resultado da chamada e o xMotivo estão sendo devolvidos nos parâmetros resultado e msgResultado, vide códigos de retornos.
retorno do cMsg e xMsg como parâmetros para facilitar a vida do desenvolvedor.
gravação do log - gravação do log da chamada da DLL quando o resultado da chamada for diferente de 104, 105, 106, 108 e 109. Se o resultado for maior que 999, indica que o WS nem chegou a ser consumido, se o resultado estiver compreendido na faixa: 214 e 999 , o WS foi consumido, mas a solicitação foi rejeitada pelo WS.
Parâmetros:
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 |
NFeAssinada | string | entrada | informar o XML da NFeAssinada que será utilizada para montar o procNFe em caso de autorização de uso |
nroRecibo | string | entrada/saída | informar o número do recibo do lote objeto da busca, em caso de autorização de uso o parâmetro retorna o número do protocolo e data de autorização no formato: nnnnnnnnnnnnnnn dd/mm/aaaa hh:mm:ss, que pode ser utilizado para mostrar no DANFE |
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 - 3.10 ou 4.00 [15-08-17] |
msgDados | string | saída | retorna a mensagem XML enviada para o WS |
msgRetWS | string | saída | retorna a mensagem XML de resposta do WS |
cStat | inteiro | saída | retorna o resultado da chamada da funcionalidade, se o WS acessado com sucesso será devolvido o cStat da resposta do WS (nome do parâmetro alterado - ex-resultado) |
msgResultado | string | saída | retorna a literal do resultado da chamada do WS |
nroProtocolo | string | saída | retorna o número do protocolo de autorização de uso da NF-e (parâmetro novo) |
dhProtocolo | string | saída | retorna a data e hora de autorização de uso da NF-e (aaaa-mm-ddThh:mm:ss) (parâmetro novo) |
cMsg | string | saída | retorna o código da mensagem da SEFAZ, este campo foi criado para que a SEFAZ possa se comunicar com o emissor. (parâmetro novo) |
xMsg | string | saída | retorna a descrição da mensagem da SEFAZ, este campo foi criado para que a SEFAZ possa se comunicar com o emissor. (parâmetro novo) |
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 |
licenca | string | entrada | informar a chave da licença de uso, esta funcionalidade pode ser utilizada sem qualquer restrição no ambiente de homologação. O uso em ambiente de produção requer o licenciamento ou registro, para maiores detalhes veja as condições de uso |
Atenção para as seguintes alterações nos parâmetros:
Parâmetros novos:
- versao;
- nroProtocolo (voltava no nroRecibo na versão anterior);
- dhProtocolo (voltava no nroRecibo na versão anterior);
- cMsg;
- xMsg;
Parâmetros que mudaram de nome ou de lugar:
- resultado (mudou de nome para cStat);
- procNFe (agora é o retorno da função);
Parâmetros eliminados:
- msgCabec;
Retorno:
O resultado da chamada do BuscaNFe é uma mensagem XML com o procNFe caso a NF-e tenha sido autorizada ou denegada (parâmetro cStat=100 ou 301 ou 302), nos demais casos o retorno será vazio (""), sendo necessário o exame do parâmetro cStat, que tem os seguintes significados:
o procNFe
O procNFe é uma estrutura XML de distribuição da NF-e composta pelo XML da NF-e e pelo protocolo de autorização de uso, sendo a forma padrão de armazenamento e distribuição do projeto. Muitos desenvolvedores são pegos de surpresa quando o usuário, o contador ou o destinatário solicita o procNFe. Assim, não deixe de gravar o procNFe que a funcionalidade retorna. Também é importante que a string da procNFe seja convertida em UTF-8 antes da gravação para evitar problemas de leitura no browser ou no aplicativo visualizador da Receita Federal do Brasil, para maiores detalhes veja o post: Distribuição da NF-e para o Destinatário
código | Mensagem | origem | regra |
---|---|---|---|
5001 | Erro: Falha na conexão: [mensagem 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 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 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 do windows] (Causa provável: método não permitido) | DLL | - |
5005 | Erro: Falha na conexão: [mensagem 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 do windows] (Causa provável: Time-Out, o WS não respondeu a solicitação no tempo estabelecido: [tempo]) | DLL | - |
5007 | Erro: Falha na conexão: [mensagem do windows] (Causa provável: mensagem maior que a permitida) | DLL | - |
5008 | Erro: Falha na conexão: [mensagem do windows] (Causa provável: Servidor com problemas) | DLL | - |
5009 | Erro: Falha na conexão: [mensagem do windows] (Causa provável: Serviço não implementado) | DLL | - |
5010 | Erro: Falha na conexão: [mensagem 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 do windows] (Causa provável: Causa provável da falha na conexão: Rede indisponível) | DLL | - |
5012 | Erro: Falha na conexão: [mensagem do windows] (Causa provável: Versão do SOAP não suportada | DLL | - |
5013 | Erro: Falha na conexão: [mensagem 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 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 ms] - [mensagem do windows] | DLL | - |
5016 | Erro: Falha na conexão: Falha da Biblioteca Criptografica: [mensagem do windows] | DLL | - |
5017 | Erro: Falha ao tratar o XML de retorno do WS: [mensagem de erro] | DLL | - |
5101 | Erro: A mensagem de retorno do WS não é um XML válido: [mensagem de erro] | DLL | - |
5102 | Erro: Tag cStat inexistente na mensagem de retorno [mensagem de erro] | DLL | - |
5103 | Erro: Tag xMotivo inexistente na mensagem de retorno [mensagem de erro] | DLL | - |
5104 | Erro: Tag [nome tag] inexistente na mensagem de retorno [mensagem de erro] | DLL | - |
5105 | Erro: O WS não devolveu nenhum resultado | DLL | - |
5201 | Erro: O código do tipo de ambiente [valor informado para DLL] informado diferente de 1 - produção e 2 - homologação | DLL | - |
5202 | Erro: A sigla da UF [valor informado para DLL] informada é inválida | DLL | - |
5203 | Erro: Inexiste url para a UF [valor informado para DLL] informada no ambiente [valor informado para DLL] 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 [url] : [mensagem de erro] | DLL | - |
5206 | Erro: Ocorreu um erro de validação do XML [XML] : [mensagem de erro] | 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 | - |
5503 | Erro: XML mal formado [MENSAGEM DE ERRO DO WINDOWS] | DLL | - |
5504 | Erro: Arquivo Schemal XML [nome do arquivo XML] não localizado na pasta [nome do pasta]} | DLL | - |
5505 | Erro: XML não atende a especificação do Schema XML | DLL | - |
6401 | Erro: XML do parâmetro NFeAssinada informada mal formado [mensagem de erro] | DLL | - |
6402 | Erro: O parâmetro tipo de ambiente deve ser informado | DLL | - |
6403 | Erro: O tipo Ambiente informado [valor informado para DLL] diverge do tpAmb do parâmetro NFeAssinada [valor informado no XML] | DLL | - |
6404 | Erro: tag tpAmb inexistente no parâmetro NFeAssinada [mensagem de erro] | DLL | - |
6405 | Erro: UF informada [UF informada para DLL] diverge do cUF do emitente do parâmetro NFeAssinada [cUF informado no XML] | DLL | - |
6406 | Erro: tag cUF do emitente inexistente do parâmetro NFeAssinada [mensagem de erro] | DLL | - |
6407 | Erro: tag CNPJ do emitente não localizada parâmetro NFeAssinada [mensagem de erro | DLL | - |
6408 | Erro: O CNPJ informado tem tamanho diferente de 14 - [CNPJ] - tamanho = [tamanho] | DLL | - |
6409 | Erro: A licença informada tem tamanho diferente de 128 - [licenca] - tamanho = [tamanho] | DLL | - |
6410 | Erro: Funcionalidade: EnviaNFe não licenciada para o CNPJ: [CNPJ] e licenca [licenca] | DLL | - |
6411 | Erro: A versao: [versao] informada é inválida | DLL | - |
6412 | Erro: Falha na leitura do XML da resposta do WS [mensagem de erro] | DLL | - |
6413 | Erro: |
DLL | - |
6414 | Erro: tag cStat não localizada na mensagem de retorno [mensagem de erro], a NF-e tem conteúdo diferente da NF-e que foi autorizada! | ||
6415 | Erro: tag xMotivo não localizada na mensagem de retorno [mensagem de erro] | DLL | - |
6416 | Erro: Busca do lote = [cStat da busca], mas não existe protocolo para o a NF-e com chave de acesso =[chave de acesso esperada] | DLL | - |
6417 | Erro: tag infNFe inexistente no parâmetro NFeAssinada [mensagem de erro] | DLL | - |
6418 | Erro: Atributo Id não localizado na tag infNFe do parâmetro NFeAssinada [mensagem de erro] | DLL | - |
6419 | Erro: O parâmetro número do recibo de entrega do lote deve ser informado | DLL | - |
6420 | Erro: O parâmetro número do recibo [valor informado para a DLL] deve ter 15 caracteres | DLL | - |
6421 | Erro: As posições correspondentes (1,2) ao código da UF [conteudo] do parâmetro número do recibo não é um código de UF válido | DLL | - |
6422 | Erro: A posição correspondente (3) ao tipo do autorizador [conteudo] do parâmetro número do recibo não é um código de tipo autorizador válido | DLL | - |
6423 | Erro: Falha no acesso ao protNFe do XML da resposta do WS [mensagem de erro] | DLL | - |
100 | Autorizado o uso da NF-e | WS | - |
105 | Lote em processamento | WS | E04 |
106 | Lote não localizado | WS | E03 |
108 | Serviço Paralisado Momentaneamente (curto prazo) | WS | B03 |
109 | Serviço Paralisado sem Previsão | WS | B04 |
203 | Rejeição: Emissor não habilitado para emissão da NF-e | WS | G1C02.1 |
204 | Rejeição: Duplicidade de NF-e | WS | G1B08.1 |
205 | Rejeição: NF-e está denegada na base de dados da SEFAZ | WS | G1B08.3 |
206 | Rejeição: NF-e já está inutilizada na Base de dados da SEFAZ | WS | G1B08.4 |
207 | Rejeição: CNPJ do emitente inválido | WS | GC02 |
208 | Rejeição: CNPJ do destinatário inválido | WS | GE02.2 |
209 | Rejeição: IE do emitente inválida | WS | GC17.1 |
210 | Rejeição: IE do destinatário inválida | WS | GE17.1 |
211 | Rejeição: IE do substituto inválida | WS | GC18.1 |
212 | Rejeição: Data de emissão NF-e posterior a data de recebimento | WS | GB09 |
214 | Rejeição: Tamanho da mensagem excedeu o limite estabelecido | WS | B01 |
215 | Rejeição: Falha no schema XML | WS | D01 |
218 | Rejeição: NF-e já esta cancelada na base de dados da SEFAZ | WS | G1B08.2 |
223 | Rejeição: CNPJ do transmissor do lote difere do CNPJ do transmissor da consulta | WS | E05 |
225 | Rejeição: Falha no Schema XML do lote de NFe | WS | D01 |
226 | Rejeição: Código da UF do Emitente diverge da UF autorizadora | WS | GB02 |
228 | Rejeição: Data de Emissão muito atrasada | WS | GB09.1 |
229 | Rejeição: IE do emitente não informada | WS | GC17 |
230 | Rejeição: IE do emitente não cadastrada | WS | G1C17 |
231 | Rejeição: IE do emitente não vinculada ao CNPJ | WS | G1C17.1 |
233 | Rejeição: IE do destinatário não cadastrada | G1E17.1 | |
234 | Rejeição: IE do destinatário não vinculada ao CNPJ | WS | G1E17.2 |
235 | Rejeição: Inscrição SUFRAMA inválida | WS | GE18 |
237 | Rejeição: CPF do destinatário inválido | WS | GE03 |
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 |
245 | Rejeição: CNPJ Emitente não cadastrado | WS | G1C02 |
246 | Rejeição: CNPJ Destinatário não cadastrado | WS | G1E17 |
247 | Rejeição: Sigla da UF do Emitente diverge da UF autorizadora | WS | GC12 |
248 | Rejeição: UF do Recibo diverge da UF autorizadora | WS | E02 |
251 | Rejeição: UF/Município destinatário não pertence a SUFRAMA | WS | GE18.1 |
252 | Rejeição: Ambiente informado diverge do Ambiente de recebimento | WS | GB24 |
252 | Rejeição: Ambiente informado diverge do Ambiente de recebimento | WS | E01 |
253 | Rejeição: Digito Verificador da chave de acesso composta inválida | WS | GB23 |
254 | Rejeição: NF-e complementar não possui NF referenciada | WS | GB25 |
255 | Rejeição: NF-e complementar possui mais de uma NF referenciada | WS | GB25.1 |
266 | Rejeição: Série utilizada fora da faixa permitida no Web Service (0-889) | WS | GB07 |
267 | Rejeição: NF Complementar referencia uma NF-e inexistente | WS | G1B25 |
268 | Rejeição: NF Complementar referencia uma outra NF-e Complementar | WS | G1B25.1 |
269 | Rejeição: CNPJ Emitente da NF Complementar difere do CNPJ da NF Referenciada | WS | GB25.2 |
270 | Rejeição: Código Município do Fato Gerador: dígito inválido | WS | GB12 |
271 | Rejeição: Código Município do Fato Gerador: difere da UF do emitente | WS | GB12.1 |
272 | Rejeição: Código Município do Emitente: dígito inválido | WS | GC10 |
273 | Rejeição: Código Município do Emitente: difere da UF do emitente | WS | GC10.1 |
274 | Rejeição: Código Município do Destinatário: dígito inválido | WS | GE10 |
275 | Rejeição: Código Município do Destinatário: difere da UF do Destinatário | WS | GE10.1 |
276 | Rejeição: Código Município do Local de Retirada: dígito inválido | WS | GF07.1 |
277 | Rejeição: Código Município do Local de Retirada: difere da UF do Local de Retirada | WS | GF07.2 |
278 | Rejeição: Código Município do Local de Entrega: dígito inválido | WS | GG07.1 |
279 | Rejeição: Código Município do Local de Entrega: difere da UF do Local de Entrega | WS | GG07.2 |
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 |
287 | Rejeição: Código Municípío do FG - ISSQN: dígito inválido | WS | GU05 |
288 | Rejeição: Código Município do FG - Transporte: dígito inválido | WS | GX17 |
301 | Uso Denegado: Irregularidade fiscal do emitente | WS | G1C17.2 |
302 | Uso Denegado: Irregularidade fiscal do destinatário | WS | G117.3 |
401 | Rejeição: CPF do remetente inválido | WS | GC02a.1 |
402 | Rejeição: XML da área de dados com codificação diferente de UTF-8 | WS | D03 |
403 | Rejeição: O grupo de informações da NF-e avulsa é de uso exclusivo do Fisco | WS | GD01 |
404 | Rejeição: Uso de prefixo de namespace não permitido | WS | D02 |
407 | Rejeição: O CPF só pode ser informado no campo emitente para a NF-e avulsa | WS | GC02a |
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 |
451 | Rejeição: Processo de emissão informado inválido | WS | GB26 |
478 | Rejeição: Local da entrega não informado para faturamento direto de veículos novos | WS | GC18 |
502 | Rejeição: Erro na Chave de Acesso - Campo Id não corresponde à concatenação dos campos correspondentes | WS | GA03 |
503 | Rejeição: Série utilizada fora da faixa permitida no SCAN (900-999) | WS | GB07.1 |
504 | Rejeição: Data de Entrada/Saída posterior ao permitido | WS | GB10 |
505 | Rejeição: Data de Entrada/Saída anterior ao permitido | WS | GB10.1 |
506 | Rejeição: Data de Saída menor que a Data de Emissão | WS | GB10.2 |
507 | Rejeição: O CNPJ do destinatário/remetente não deve ser informado em operação com o exterior | WS | GE02 |
508 | Rejeição: O CNPJ com conteúdo nulo só é válido em operação com exterior. | WS | GE02.1 |
509 | Rejeição: Informado código de município diferente de “9999999” para operação com o exterior | WS | GE10.2 |
510 | Rejeição: Operação com Exterior e Código País destinatário é 1058 (Brasil) ou não informado | WS | GE14 |
511 | Rejeição: Não é de Operação com Exterior e Código País destinatário difere de 1058 (Brasil) | WS | GE14.1 |
512 | Rejeição: CNPJ do Local de Retirada inválido | WS | GF02 |
513 | Rejeição: Código Município do Local de Retirada deve ser 9999999 para UF retirada = “EX”. | WS | GF07 |
514 | Rejeição: CNPJ do Local de Entrega inválido | WS | GG02 |
515 | Rejeição: Código Município do Local de Entrega deve ser 9999999 para UF entrega = “EX”. | WS | GG07 |
518 | Rejeição: CFOP de entrada para NF-e de saída | WS | GI08 |
519 | Rejeição: CFOP de saída para NF-e de entrada | WS | GI08.1 |
520 | Rejeição: CFOP de Operação com Exterior e UF destinatário difere de “EX” | WS | GI08.2 |
521 | Rejeição: CFOP de Operação Estadual e UF do emitente difere da UF do destinatário para destinatário contribuinte do ICMS. | WS | GI08.3 |
522 | Rejeição: CFOP de Operação Estadual e UF emitente difere da UF remetente para remetente contribuinte do ICMS. | WS | GI08.4 |
523 | Rejeição: CFOP não é de Operação Estadual e UF emitente igual à UF destinatário. | WS | GI08.5 |
524 | Rejeição: CFOP de Operação com Exterior e não informado NCM completa | WS | GI08.6 |
525 | Rejeição: CFOP de Importação e não informado dados da DI | WS | GI08.7 |
526 | Rejeição: CFOP de Exportação e não informado Local de Embarque | WS | GI08.8 |
527 | Rejeição: Operação de Exportação com informação de ICMS incompatível | WS | GN12 |
528 | Rejeição: Valor do ICMS difere do produto BC e Alíquota | WS | GN17 |
529 | Rejeição: NCM de informação obrigatória para produto tributado pelo IPI | WS | GO07 |
530 | Rejeição: Operação com Tributação de ISSQN sem informar a Inscrição Municipal | WS | GU01 |
531 | Rejeição: Total da BC ICMS difere do somatório dos itens | WS | GW03 |
532 | Rejeição: Total do ICMS difere do somatório dos itens | WS | GW04 |
533 | Rejeição: Total da BC ICMS-ST difere do somatório dos itens | WS | GW05 |
534 | Rejeição: Total do ICMS-ST difere do somatório dos itens | WS | GW06 |
535 | Rejeição: Total do Frete difere do somatório dos itens | WS | GW08 |
536 | Rejeição: Total do Seguro difere do somatório dos itens | WS | GW09 |
537 | Rejeição: Total do Desconto difere do somatório dos itens | WS | GW10 |
538 | Rejeição: Total do IPI difere do somatório dos itens | WS | GW12 |
539 | Rejeição: Duplicidade de NF-e, com diferença na Chave de Acesso [99999999999999999999999999999999999999999] | WS | G1B08 |
540 | Rejeição: CPF do Local de Retirada inválido | WS | GF02a |
541 | Rejeição: CPF do Local de Entrega inválido | WS | GG02a |
542 | Rejeição: CNPJ do Transportador inválido | WS | GX04 |
545 | Rejeição: Falha no schema XML - versão informada na versaoDados do SOAPHeader diverge da versão da mensagem | WS | D01c |
544 | Rejeição: IE do Transportador inválida | WS | GX07.1 |
547 | Rejeição: Dígito Verificador da Chave de Acesso da NF-e Referenciada inválido | WS | GB13 |
548 | Rejeição: CNPJ da NF referenciada inválido. | WS | GB17 |
549 | Rejeição: CNPJ da NF referenciada de produtor inválido. | WS | GB20d |
550 | Rejeição: CPF da NF referenciada de produtor inválido. | WS | GB20e |
551 | Rejeição: IE da NF referenciada de produtor inválido. | WS | GB20f |
552 | Rejeição: Dígito Verificador da Chave de Acesso do CT-e Referenciado inválido | WS | GB20i |
553 | Rejeição: Tipo autorizador do recibo diverge do Órgão Autorizador. | WS | E02a |
556 | Rejeição: Justificativa de entrada em contingência não deve ser informada para tipo de emissão normal | WS | GB22 |
557 | Rejeição: A Justificativa de entrada em contingência deve ser informada | WS | GB22.1 |
558 | Rejeição: Data de entrada em contingência posterior a data de recebimento | WS | GB28 |
559 | Rejeição: UF do Transportador não informada | WS | GX07 |
560 | Rejeição: CNPJ base do emitente difere do CNPJ base da primeira NF-e do lote recebido | WS | GC02.1 |
564 | Rejeição: Total do Produto/Serviço difere do somatório dos itens | WS | GW07 |
565 | Rejeição: Falha no schema XML - inexiste a tag raiz esperada para o lote | WS | D01a |
567 | Rejeição: Falha no schema XML - versão informada na versaoDados do SOAPHeader diverge da versão da mensagem | WS | D01c |
568 | Rejeição: Falha no schema XML - inexiste atributo versao na tag raiz da mensagem | WS | D01b |
569 | Rejeição: Data de entrada em contingência muito atrasada | WS | GB28a |
570 | Rejeição: tpEmis = 3 só é válido na contingência SCAN | WS | GB22.2 |
571 | Rejeição: O tpEmis informado diferente de 3 para contingência SCAN | WS | GB22.3 |
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 |
590 | Rejeição: Informado CST para emissor do Simples Nacional (CRT=1) | WS | GN12.1 |
591 | Rejeição: Informado CSOSN para emissor que não é do Simples Nacional (CRT diferente de 1) | WS | GN12a |
592 | Rejeição: A NF-e deve ter pelo menos um item de produto sujeito ao ICMS | WS | GU01.1 |
595 | Rejeição: Versão de leiaute da NF-e utilizada não é mais válida | WS | GB09.02 |
596 | Rejeição: Ambiente de homologação indisponível para recepção de NF-e da versão 1.10 | WS | GB09.03 |
597 | Rejeição: CFOP de Importação e não informado dados de IPI | WS | GI08.7a |
598 | Rejeição: NF-e emitida em ambiente de homologação com Razão Social do destinatário diferente de NF-e EMITIDA EM AMBIENTE DE HOMOLOGAÇÃO - SEM VALOR FISCAL | WS | GB09.03 |
599 | Rejeição: CFOP de Importação e não informado dados de II | WS | GI08.7b |
601 | Rejeição: Total do II difere do somatório dos itens | WS | GW11 |
602 | Rejeição: Total do PIS difere do somatório dos itens sujeitos ao ICMS | WS | GW13 |
603 | Rejeição: Total do COFINS difere do somatório dos itens sujeitos ao ICMS | WS | GW14 |
604 | Rejeição: Total do vOutro difere do somatório dos itens | WS | GW13 |
605 | Rejeição: Total do vServ difere do somatório do vProd dos itens sujeitos ao ISSQN | WS | GW18 |
606 | Rejeição: Total do vBC do ISS difere somatório dos itens | WS | GW19 |
607 | Rejeição: Total do ISS difere do somatório dos itens | WS | GW20 |
608 | Rejeição: Total do PIS difere do somatório dos itens sujeitos ao ISSQN | WS | GW21 |
609 | Rejeição: Total do COFINS difere do somatório dos itens sujeitos ao ISSQN | WS | GW22 |
610 | Rejeição: Total da NF difere do somatório dos Valores que compõe o valor total da NF | WS | GW16 |
611 | Rejeição: Total da NF superior ao valor limite estabelecido pela SEFAZ[Limite] | WS | GW16a |
611 | Rejeição: cEAN inválido | WS | GI03 |
612 | Rejeição: cEANTrib inválido | WS | GI12 |
621 | Rejeição: CPF Emitente não cadastrado | WS | G1C02a |
623 | Rejeição: CPF Destinatário não cadastrado | WS | G1E17.4 |
624 | Rejeição: IE Destinatário não vinculada ao CPF | WS | - |
625 | Rejeição: Inscrição SUFRAMA deve ser informada na venda com isenção para ZFM | WS | GN28 |
626 | Rejeição: O CFOP de operação isenta para ZFM deve ser 6109 ou 6110 | WS | GN28.1 |
627 | Rejeição: O valor do ICMS desonerado deve ser informado | WS | GN28.2 |
629 | Rejeição: Valor do produto difere do produto Valor Unitário de Comercialização e Quantidade Comercial | WS | GI10a |
630 | Rejeição: Valor do Produto difere do produto Valor Unitário de Tributação e Quantidade Tributável | WS | GI14a |
635 | Rejeição: NF-e com mesmo número e série já transmitida e aguardando processamento | WS | G1B08.5 |
999 | Rejeição: Erro não catalogado (mensagem) | WS | - |
Rejeição: Falha no Schema XML - Diferença entre os códigos 215 e 225
215 - Rejeição: Falha no schema XML
O WS devolve o código 215 quando a mensagem de Consulta Processamento do Lote de NF-e (consReciNFe) está incorreta.
225 - Falha no Schema XML do lote de NFe
O WS devolve o código 225 quando o Lote enviado (enviNFe) está incorreto.
Assim, quando o código de erro for 225, o usuário deve analisar o lote de NF-e que foi enviado para sanear o problema.
Tratamento de Erro:
Caso ocorra algum erro na chamada do WS (5001-6145) 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 - 6124 - falha no tratamento dos pârametros da chamada da DLL
Histórico de atualização:
- 2010-02-02 - 2Gv0.0 - Versão beta preliminar.
- 2010-04-30 - 2Gv0.3 - alterado o formato da tag dhProtocolo (aaaa-mm-ddThh:mm:ss) e o nroRecibo passa devolver o número do protocolo e data de autorização no formato: nnnnnnnnnnnnnnn dd/mm/aaaa hh:mm:ss
- 2010-05-28 - 2Gv0.4 - acréscimo da siglaWS na chamada, se inexistir conteúdo em siglaWS a DLL obtem a siglaWS a partir do número do recibo.
- 2011-03-18 - 2Gv0.6d - atualização da tabela de código e mensagem de retorno
- 2011-06-18 - 2Gv0.7 - Acréscimo de novas opções para uso de certificado digital
- 2013-12-09 - 2Gv2.0.1 - Atualização para suportar a SVC-AN e SVC-RS.
- 2017-08-15 - 2Gv4.00 - atualização para suportar a versão 4.00.
Mensagens XML - versão 1.10:
Busca Resultado de Processamento de Lote de NF-e
<?xml version="1.0" encoding="UTF-8"?> <consReciNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.10"> <tpAmb>2</tpAmb> <nRec>350000000680939</nRec> </consReciNFe>
Resposta do WS para Lote Processado, o cStat devolvido pela DLL será o cStat=290 do resultado do processamento da primeira nota fiscal do lote
<?xml version="1.0" encoding="UTF-8"?> <retConsReciNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.10"> <tpAmb>2</tpAmb> <verAplic>SP_NFE_PL_005a_R01</verAplic> <nRec>350000000680939</nRec> <cStat>104</cStat> <xMotivo>Lote processado</xMotivo> <cUF>35</cUF> <protNFe versao="1.10"> <infProt> <tpAmb>2</tpAmb> <verAplic>SP_NFE_PL_005a_R01</verAplic> <chNFe>35080599999090910270550010000000015180051273</chNFe> <dhRecbto>2008-06-14T15:19:58</dhRecbto> <digVal>XQ9rHwZSmw93oYIKCJ6Kc27e0nI=</digVal> <cStat>290</cStat> <xMotivo>Rejeição: Certificado Assinatura inválido</xMotivo> </infProt> </protNFe> </protNFe> </retConsReciNFe>
Resposta do WS para lote em processamento cStat=105
<?xml version="1.0" encoding="UTF-8"?> <retConsReciNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.10"> <tpAmb>2</tpAmb> <verAplic>SP_NFE_PL_005a_R01</verAplic> <nRec>350000000123987</nRec> <cStat>105</cStat> <xMotivo>Lote em processamento</xMotivo> <cUF>35</cUF> </retConsReciNFe>
Resposta do WS para lote não localizado cStat=106
<?xml version="1.0" encoding="UTF-8"?> <retConsReciNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.10"> <tpAmb>2</tpAmb> <verAplic>SP_NFE_PL_005a_R01</verAplic> <nRec>350000000999999</nRec> <cStat>106</cStat> <xMotivo>Lote não localizado</xMotivo> <cUF>35</cUF> </retConsReciNFe>
Resposta do WS para erro 223
<?xml version="1.0" encoding="UTF-8"?> <retConsReciNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.10"> <tpAmb>2</tpAmb> <verAplic>SP_NFE_PL_005a_R01</verAplic> <nRec>350000000680940</nRec> <cStat>223</cStat> <xMotivo>Rejeição: CNPJ do transmissor do lote difere do CNPJ do transmissor da consulta</xMotivo> <cUF>35</cUF> </retConsReciNFe>
Mensagens XML - versão 2.00:
Envio de Lote de NF-e
<?xml version="1.0" encoding="utf-8"?> <consReciNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="2.00"> <tpAmb>2</tpAmb> <nRec>350000000680939</nRec> </consReciNFe>
Importante
Em caso de cStat=105 a aplicação deve implementar uma rotina de persistência repetindo a consulta após alguns segundos, até obter o cStat<>105. Para evitar caso de loop infinito, implementar uma condição de interrupção da persistência oferecendo a possibilidade de ativação da contingência, pois o WS pode estar com problemas.
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 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 siglaWS As String ' 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, ES, PB, RJ, RN, 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 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 cStat As Long ' retorna o resultado da chamada da funcionalidade, se o WS acessado com sucesso será devolvido o cStat da resposta do WS Dim msgResultado As String ' retorna a literal do resultado da chamada do WS Dim nroRecibo As String ' informar o número do recibo do lote objeto da busca, em caso de autorização de uso o parâmetro retorna o número do protocolo e data de autorização no formato: nnnnnnnnnnnnnnn dd/mm/aaaa hh:mm:ss, que pode ser utilizado para mostrar no DANFE Dim nfeAssinada As String ' informar o XML da NFeAssinada que será utilizada para montar o procNFe em caso de autorização de uso Dim procNFe As String ' retorna o procNFe em caso de autorização de uso Dim nroProtocolo As String ' retorna o número do protocolo de autorização de uso da NF-e Dim dhProtocolo As String ' retorna a data e hora de autorização de uso da NF-e (aaaa-mm-ddThh:mm:ss) Dim cMsg As String ' retorna o código da mensagem da SEFAZ, este campo foi criado para que a SEFAZ possa se comunicar com o emissor Dim xMsg As String ' retorna a descrição da mensagem da SEFAZ, este campo foi criado para que a SEFAZ possa se comunicar com o emissor 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 ' ' 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 desejado: 1- produção ou 2-homologação Dim versao As String ' informar a versão da mensagem do WS - 1.10 (manual de integração versão 2.04 ou 3.00) ou 2.00 (manual de integração versão 4.0x) ' ' 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 nroProtocolo = "" ' retorna o número do protocolo de autorização de uso da NF-e dhProtocolo = "" ' retorna a data e hora de autorização de uso da NF-e (aaaa-mm-ddThh:mm:ss) cMsg = "" ' retorna o código da mensagem da SEFAZ, este campo foi criado para que a SEFAZ possa se comunicar com o emissor xMsg = "" ' retorna a descrição da mensagem da SEFAZ, este campo foi criado para que a SEFAZ possa se comunicar com o emissor cStat = 0 ' retorna o resultado da chamada da funcionalidade, se o WS acessado com sucesso será devolvido o cStat da resposta 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" ' importante: indicar aqui assunto do certificado digital válido, este da associacao trata-se apenas de um exemplo para testes 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, ES, PB, RJ, RN, 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 nroRecibo = "351000000000123" ' informar o número do recibo do lote objeto da busca, em caso de autorização de uso o parâmetro retorna o número do protocolo e data de autorização no formato: nnnnnnnnnnnnnnn dd/mm/aaaa hh:mm:ss, que pode ser utilizado para mostrar no DANFE tipoAmbiente = 2 ' informar o código do ambiente desejado: 1- produção ou 2-homologação versao = "2.00" ' informar a versão da mensagem do WS - 1.10 (manual de integração versão 2.04 ou 3.00) ou 2.00 (manual de integração versão 4.0x) nfeAssinada = "?" ' informar o XML da NFeAssinada que será utilizada para montar o procNFe em caso de autorização de uso nomeArquivo = "NFeAssinada.xml" ' importante: verificar a existência do arquivo solicitado na pasta do VB e indicar o caminho correto para ele ' ' Carrega o conteúdo do nome do arquivo em nfe ' Open nomeArquivo For Input As #1 nfeAssinada = Input$(LOF(1), 1) Close #1 ' ' Dim objNFeUtil As NFe_Util_2G.Util ' ' instancia a DLL ' Set objNFeUtil = New NFe_Util_2G.Util ' ' Screen.MousePointer = vbHourglass ' ampulheta ' nfeProc = objNFeUtil.BuscaNFe2G(siglaWS, tipoAmbiente, nfeAssinada, nroRecibo, nomeCertificado, versao, msgDados, msgRetWS, cStat, msgResultado, nroProtocolo, dhProtocolo, cMsg, xMsg, proxy, usuario, senha, licenca) ' ' 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 Busca Resultado do Processamento do Lote" ' ' implementar o tratamento do mensagem do resultado do processamento do lote ' ' se cStat = 100, significa que a NF-e foi autorizada, bastando gravar o procNFe (fazer a conversão da string para UTF8 para evitar problemas de leitura no browser, vide http://nf-eletronica.com/blog/?p=147) ' se cStat = 301 ou 302, significa que a NF-e foi denegada, necessário gravar o procNFe, esta nota não pode ser cancelada e nem utilizada ' se cStat = 105, significa que o lote ainda não processado, a aplicação deve fazer nova consulta - NÃO É NECESSÁRIO REENVIAR A NF-e, apenas consulte o recibo novamente. ' se cStat = 106, significa que o lote não foi localizado ' se cStat > 5000, significa que houve algum erro na chamada da funcionalidade e o WS não foi consumido. ' ' libera classe ' Set objNFeUtil = Nothing
xBase (Visual FoxPro)
&& && exemplo de busca resultado do processamento de uma NF-e && requisitos: && 1. a NF-e deve já deve ter sido transmitida pelo mesmo transmissor (certificado) && 2. ter um número de recibo && 3. ter a NF-e assinada && && veja: https://www.flexdocs.net/guiaNFe/WS.NFe.buscaNFe2G.html && ----------------------------------------------------------------------------- && && declaração das variáveis && LOCAL siglaWS as String LOCAL tipoAmbiente as Integer LOCAL NFeAssinada as String LOCAL nroRecibo as String LOCAL nomeCertificado as String LOCAL versao as String LOCAL msgDados as String LOCAL msgRetWS as String LOCAL cStat as Integer LOCAL msgResultado as String LOCAL nroProtocolo as String LOCAL dhProtocolo as String LOCAL cMsg as String LOCAL xMsg as String LOCAL proxy as String LOCAL usuario as String LOCAL senha as String LOCAL licenca as String LOCAL procNFe as String && && inicialização das variáveis && siglaWS = "SP" && sigla do WS para onde sera enviada a NF-e tipoAmbiente = 2 && código do ambiente = 1- produção / 2 - homologação && && carregue a string NFeAssinada com o conteúdo do XML da NF-e que deseja consultar o resultado do processamento && NFeAssinada = FILETOSTR("c:\nfeassinada.xml") && && informar o conteúdo do campo assundo do certificado digital, utilize o pegaDadosCertificados para recuperar a informacao && e armazene na configuracao da sua aplicacao && nomeCertificado = "CN=M R M KATO ASAKURA - EPP:69621187915, OU=AC CAIXA PJ, OU=Caixa Economica Federal, O=ICP-Brasil, C=br" versao = "2.00" && informar a versão do WS, atualmente é a 2.00 msgDados = "" && parâmetro que devolve o XML que foi transmitido, necessário para solicitar suporte msgRetWS = "" && parâmetro que devolve a resposta do WS consumido, necessário para solicitar suporte cStat = 0 && parãmetro que devolve o resultado da chamada do WS msgResultado = "" && parãmetro que devolve a literal da mensagem do resultado da chamada do WS && && informar o número do recibo obtido no enviaNFe2G && nroRecibo = "351000054024470" nroProtocolo = "" && parâmetro que devolve o numero do protocoloco de autorização da && data e hora de autorizacao da NFe dhProtocolo ="" && parâmetro que devolve a data e hora de autorizacao da NFe cMsg = "" xMsg = "" && && os dados do proxy só devem ser informados quando existir um proxy no ambiente de rede && proxy = "" usuario = "" licenca = "" && && instanciar o DLL && obj = CREATEOBJECTEX("NFe_util_2G.util","","") && && IMPORTANTE, a DLL envia a NF-e para o ambiente declarado na nota fiscal!, assim verifique se o tpAmb && está com 2 para não enviar a NF-e para o ambiente de produção (tpAmb=1) && procNFe = obj.BuscaNFe2G(siglaWS, tipoAmbiente, NFeAssinada, nroRecibo, nomeCertificado, versao, @msgDados, @msgRetWS, @cStat, @msgResultado, @nroProtocolo, @dhProtocolo, @cMsg, @xMsg, proxy, usuario, senha, licenca) && ? "Resultado do envio" ? "-----------------------------------" ? msgResultado ? IF cStat = 100 then ? "NF-e autorizada!" ? ? "Número do Protocolo de Autorizacao de uso : " + nroProtocolo ? "Data do Protocolo de Autorizacao de uso : " + dhProtocolo ? && && grava o procNFe da nota fiscal && STRTOFILE(procNFe, "c:\procNFe.xml") ELSE IF cStat = 105 then ? "LOTE EM PROCESSAMENTO" ? "Persista na Busca, não faça o reenvio da NF-e para não da duplicidade" ELSE ? "O envio da NF-e falhou, analise a mensagem de erro, caso necessite suporte anexe o conteúdo do log" ? ? "log de Erro da usca de NFe:" + CHR(13)+ "msgDados =[" + msgDados + "]" + chr(13) + "msgRetWS =[" + msgRetWS + "]" + CHR(13) + "msgResultado = [" + msgResultado + "]" ? STRTOFILE("log de Erro da Busca de NFe:"+CHR(13)+ "msgDados =["+msgDados+"]" + chr(13) + "msgRetWS =["+msgRetWS+"]" + CHR(13) + "msgResultado = ["+msgResultado+"]", "c:\log.txt") ENDIF ENDIF
- 12.2.2. BuscaNFe2G [15-08-17]
12.2. Envio de uma NF-e individual - « Anterior
12.2.1. EnviaNFe2G [15-08-17] - Próximo »
12.2.3. EnviaNFSincrono [15-08-17]