Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Olá,

Temos um ERP e estamos tentando usar o ACBr apenas para a funcionalidade de enviar o Desacordo do CT-e.
Segui os passos do projeto exemplo.
Meu cliente me enviou o certificado digital dele e um CT-e onde ele é o tomador do serviço.


Quando tentamos enviar o evento do desacordo retorna a mensagem:

O CNPJ do Documento é diferente do CNPJ do Certificado Digital
É mesmo. Meu cliente não é o emissor do CT-e, é o Tomador.

O que estaríamos errando?

Agradeço a atenção.

Postado

Olá, obrigado pelo retorno.

Informamos sim.

Parece que o componente está esperando que o próprio emissor do CT-e faça o desacordo.

Parece que o componente está tentando assinar o XML que não é dele.

Segui o programa exemplo.     

(...)

with ACBrCTe1.EventoCTe.Evento.New do
begin

    (...)
    //CNPJ do Tomador do serviço
    //que está no certificado digital A1 instalado no Windows
    infEvento.CNPJ := CNPJTomador;

   (..)

end;

(...)

//Faz o envio do evento
ACBrCTe1.Enviar( 1,  FALSE, TRUE); 

RotinaEnvio.txt

  • Moderadores
Postado
6 minutos atrás, eduardosimi disse:

//Faz o envio do evento
ACBrCTe1.Enviar( 1,  FALSE, TRUE); 

Aqui está o erro, você está usando o método de envio de CTe.

Para enviar evento o método é:

ACBrCTe1.EnviarEvento(nLote);

 

  • Curtir 1
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Postado

Olá,

Obrigado pelas respostas e atenção.

Eu havia trocado o uso do método EnviarEvento(1) porquê ocorrem duas mensagens:

1- CryptExportKey -len

2-CT-e não consta na base de dados da SEFAZ (mas eu consultei no portal do CT-e) e o CT-e está lá.

Vi que havia alguma relação de uso síncrono e assíncrono; por isso troquei o uso do método.

Inicialmente tentei esse método, mas como o CT-e estava na SEFAZ, comecei a usar o outro método - mas, aí apareceram outros erros.

Não estou conseguindo identificar onde estou errando.

ERRO-01.jpg

ERRO-02.jpg

  • Moderadores
Postado
19 horas atrás, eduardosimi disse:

1- CryptExportKey -len

Normal esse erro, é tratado nos fontes, ele não aparece em runtime.

19 horas atrás, eduardosimi disse:

2-CT-e não consta na base de dados da SEFAZ (mas eu consultei no portal do CT-e) e o CT-e está lá.

Consultou no mesmo ambiente (produção/homologação) que está enviando o evento?

  • Curtir 1
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Postado

Olá,

O CT-e em questão está em ambiente de produção mesmo.

Conversei com o meu cliente e ele combinou com o transportador que íamos fazer um teste.

Essa mensagem que o CT-e não está na base da SEFAZ, pelo que vi, é que na versão 4 mudou de assíncrono para síncrono - daí quando envia no modo incorreto, ocorre essa mensagem.

Por isso mudamos o uso do método EnviarEvento() para o método Enviar().

Mas pelo que eu entendi, tem algo no componente que está tentando verificar se o CNPJ lido no CT-e é do CNPJ do certificado (não vai ser), pois quem está fazendo o desacordo é o tomador. 

Depois, o componente vai ter que assinar a solicitação do desacordo - aí sim o CNPJ tem que ser do certificado.

Aparentemente o componente está esperando que o emissor do CT-e faça o desacordo - acho que se eu mandar o programa para o transportador e ele fizer o desacordo, deve funcionar.

O que eu não sei é se eu teria que ajustar alguma propriedade no componente para que o componente não tente validar o CNPJ do CT-e lido com o certificado instalado e sim, validar para assinar o desacordo.

Agradeço a atenção e as ideias

  • Moderadores
Postado

Não faz diferença o tipo de envio, síncrono ou assíncrono, a rejeição diz que o CTe não existe, então provavelmente está informando a chave errada, ou o CTe informado ainda não foi recepcionado pela SEFAZ.

O evento é enviado direto para a SEFAZ autorizadora do emitente, então não tem nada o que sincronizar entre as SEFAZ e ambiente nacional, então é mais um indício que a chave não existe.

A única explicação era estar enviado em ambientes diferentes.

3 minutos atrás, eduardosimi disse:

Por isso mudamos o uso do método EnviarEvento() para o método Enviar().

Isso não faz nenhum sentido, o método Enviar é para envio de CTe, então o componente vai pegar o XML que está carregado e tentar autorizar o CTe como se fosse seu (não o evento de prestação em desacordo), óbvio que vai dar erro.

 

  • Curtir 2
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

  • Este tópico foi criado há 144 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.