rNFe_ConsultarPorChave

Realiza uma consulta de NF-e no servidor do NFePack por uma chave de NF-e

Método

int CALL rNFe_ConsultarPorChave(emissor_nfce* e, const char* chave, char* situacaoOperacao, char* status, char* protocolo, char* digval, char* codigoErro, char* descricaoErro, char* deveReabrirVenda, const char* reservado1, const char* reservado2, const char* reservado3, const char* reservado4, const char* reservado5){    ;

Parâmetros

Nome Descrição
e
Handle para o emissor_nfe
chave
Chave da NF-e a ser consultada.
situacaoOperacao
O Buffer que receberá a Situação da Operação da NF-e
1 - Sucesso
2 - Erro
3 - Denegada
4 - Sem Valor - Cancelada ou Inutilizda
5 - Não Localizada
6 - Em Processamento
(2 Caracteres máx.).
status
O Buffer que receberá o status da NF-e contido no servidor do NFePack (2 Caracteres máx.)
protocolo
O Buffer que receberá o protocolo da NF-e (15 Caracteres máx.)
digval
O Buffer que receberá o DigVal da NF-e (28 Caracteres máx.)
codigoErro
O Buffer que contém a código do erro. (5 Caracteres máx.)
descricaoErro
O Buffer que contém a descrição da rejeição, quando a NF-e está rejeitada. (510 Caracteres máx.)
deveReabrirVenda
O Buffer que contém a indicação se deve reabrir a venda usando o método eNFe_ReabrirVenda (0: Não deve, 1; Deve)
reservado1
Reservado para uso futuro
reservado2
Reservado para uso futuro
reservado3
Reservado para uso futuro
reservado4
Reservado para uso futuro
reservado5
Reservado para uso futuro

Retornos

Codigo Descrição
1 OK
10311 Erro inesperado ao consultar a nota.
10315 Problema na comunicação com o servidor. (Uma reconsulta pode resolver o problema)
10205 Erro ao processar resposta do web service de integracação. (versões do agente e retaguarda incompatíveis pode ocasionar este problema)
10318 Falha na rotina da retaguarda (parâmetros de erro serão preenchidos com o erro da retaguarda)

Exemplos

char[] situacaoOperacao = new char[2+1];
char[] status = new char[2+1];
char[] protocolo = new char[15+1];
char[] digVal = new char[28+1];
char[] codigoErro = new char[5+1];
char[] descricaoErro = new char[512+1];
char[] deveReabrirVenda = new char[1+1];
int retorno = rNFe_ConsultarPorChave(handleEmissor,
                                     chaveNota,
                                     situacaoOperacao,
                                     status,
                                     protocolo,
                                     digVal,
                                     codigoErro,
                                     descricaoErro,
                                     deveReabrirVenda,
                                     "", "", "", "", "");
//situacaoOperacao terá o valor "1"
//status terá o valor "6"
//protocolo terá o valor "113140003271818"
//digVal terá o valor "TS0tq6wlCpixyYknPEPqG4Cutas="
//codigoErro terá o valor ""
//descricaoErro terá o valor ""
//deveReabrirVenda terá o valor "0"

//-------------Exemplo com tratamentos-------------
int numeroDeTentativas = 3;
int retorno = 0;
for(int i = 0; i < numeroDeTentativas; i++) {
    retorno = rNFe_ConsultarPorChave(handleEmissor,
                                     "41141275587915019325650010000000011123347210",
                                     situacaoOperacao,
                                     status,
                                     protocolo,
                                     digVal,
                                     urlConsulta,
                                     codigoErro,
                                     descricaoErro,
                                     deveReabrirVenda,
                                     "", "", "","", "");
    if(retorno == 1) break;
    sleep(2);
}
if(retorno == 1) {
    tratar_resposta();
    //se não encontrar a chave da nota para o identificador o retorno é '1' e a situacaoOperacao é '5'
}
else {
    tratar_quando_nao_consegue_consultar();
}