Ir para conteúdo
  • Cadastre-se

dev botao

Retorna Chave Cte


thaine
  • Este tópico foi criado há 4183 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Bom dia.. 

estou novamente com problemas para a emissão do cte. 
O que acontece é o seguinte: 
às vezes quando vou emitir um cte ocorre o erro 'Rejeição: Uso indevido', mais o lote foi processado e não retornou a chave, quando vou enviar novamente da duplicidade de cte. 

Como posso tratar esse problema?

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Thaine,

 

Simples, quando isso acontece, primeiro você tenta realizar uma consulta, se você obter o protocolo de autorizãção, isso significa que o envio foi realizado e o lote foi processado com sucesso.

 

Caso contrario você envia novamente.

 

Como realizar essa consulta:

 

 // Carrega no Componente o CTe salvo em Arquivo XML
 ACBrCTe.Conhecimentos.Clear;
 ACBrCTe.Conhecimentos.LoadFromFile(NomeArquivo);
 

 ACBrCTe.Consultar;
 ACBrCTe.Conhecimentos.Clear;
 ACBrCTe.Conhecimentos.LoadFromFile(NomeArquivo);
 

Status := ACBrCTe.Conhecimentos.Items[0].CTe.procCTe.cStat;

sProtocolo := ACBrCTe.Conhecimentos.Items[0].CTe.procCTe.nProt;

 

// Status é uma variável Integer e sProtocolo é String

 

Se Status = 100 significa que ocorreu o envio e foi processado com sucesso e o CT-e esta autorizado.

 

Espero ter ajudado

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Thaine,

 

A chave que você se refere é a chave de 44 digitos?

Se sim, esta é gerada pelo componente, ela faz parte do XML que é gerado e enviado para SEFAZ.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Isso, essa mesma.

é o seguinte:

às vezes quando estou emitindo cte da o seguinte erro : 'Rejeição : uso indevido'.

só que o lote foi processado e eu não recebi a chave nem o protocolo.

O que eu faço com esse cte, sendo que se eu tenta enviar novamente vai dar erro de duplicidade?

Link para o comentário
Compartilhar em outros sites

  • Consultores

Thaine,

 

Como dito anteriormente a Chave é o componente que gera, ela não é retornada pela SEFAZ.

 

O que a SEFAZ retorna é o recibo de entrega do lote e depois que o CT-e é autorizado, é retornado o numero do protocolo.

 

Você só envia novamente quando ocorre uma rejeição, digamos por erro, por exemplo, rejeitado por estar faltando os dados da seguradora.

Neste caso basta fazer a correção e enviar novamente.

 

Agora Rejeitar por uso indevido, não significa que existe erro, a SEFAZ recebeu o lote e vai processar, mas você deve aguardar alguns minutos.

 

Esse tipo de rejeição ocorre porque esta ocorrendo muitas chamadas ao webservice em curto espaço de tempo, principalmente no webservice do status de serviço.

 

No caso de rejeição por uso indevido, você faz da forma que eu já lhe mostrei, ou seja realizando uma consulta (vejas os postes anteriores).

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

O que a Thaine esta perguntado é o seguinte: tem como pegar a chave de acesso diretamente do componente, sem ter que esperar o retorno.

Quando volta o retorno, pode-se usar ACBrCTe.WebServices.Retorno.CteRetorno.ProtCTe.Items[0].chCTe;

 

Mas neste caso, onde eu consulto e retorna Lote em processamento. Para eu fazer a consulta novamente, somente utilizando do XML?

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Bruno,

 

Depois que o XML do CT-e é gerado, independente se ele foi enviado ou não, você pode obter a chave da seguinte forma:

 

sChave := Copy(ACBrCTe.Conhecimentos.Items[0].CTe.inFCTe.ID,4,44);

 

Caso o componente tenha mais de 1 conhecimento adicionado basta variar o indice do items[X], 0, 1, 2, ...

 

**********************************

 

A principio o XML é gerado e assinado, correto?

 

Se ocorrer algum problema e o XML ficar sem o protocolo de autorização, basta realizar a consulta como já mostrada nesse tópico.

 

Carrega-se para o componente o XML do CTe em questão, executa-se o Consultar, zera o componente com o Clear e carrega novamente o XML desta forma você vai poder ter acesso ao numero do protocolo, status, data e hora da autorização, bem como imprimir o DACTE com o protocolo.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Consultores

Sim,

 

O recibo, não pois ele não faz parte do XML do CT-e, mas o protocolo sim, desde que o XML esteja protocolado.

 

sProtocolo := ACBrCTe.Conhecimentos.Items[0].CTe.procCTe.nProt;

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 4183 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.