Consulta CT-e: como automatizar o download do XML do CT-e

Você sabe o que é consulta CT-e? Conheça este recurso da SEFAZ-AN e turbine seu software para facilitar ainda mais a vida do seu cliente.


Existem alguns recursos essenciais para um software de logística. No módulo fiscal, por exemplo, é necessário fornecer todas as rotinas para emissão do Conhecimento de Transporte Eletrônico (CT-e).

No entanto, existem outras funcionalidades relacionadas a documento fiscal eletrônico que podem ser exploradas pelo seu ERP. Uma delas é o módulo de Consulta CT-e, que facilita o controle da transportadora e do cliente dela sobre suas operações.

Você sabe o que é Consulta CT-e? Para que serve? E o mais importante: como implementar no seu software? Vamos descobrir!

O que é Consulta CT-e?

A Consulta CT-e é um processo de consulta de informações e download de XML do Conhecimento de Transporte Eletrônico e seus respectivos Eventos do CT-e. É um recurso exclusivo da SEFAZ-AN.

Este web service, oficialmente chamado de CTeDistribuicaoDFe, é compartilhado entre todas as Sefaz estaduais. Publicado na Nota Técnica 2015.002, o serviço substitui a Consulta de CT-es Destinados, que foi descontinuada no final de 2015.

Ele permite a consulta, a manifestação e então o download do XML do CT-e ou seus respectivos eventos, na qual o usuário é um dos atores do CT-e, como emitente, tomador, expedidor, destinatário ou terceiro.

Para entender quais documentos podem ser acessados podem ser acessados por cada ator da nota, veja a tabela abaixo:

 Documento Emitente Tomador Destinatário/
Recebedor
Remetente/

Expedidor

Terceiro
 CT-e Não Sim Sim Sim Sim
 Cancelamento do CT-e Não Sim Sim Sim Sim
 Carta de Correção do CT-e Não Sim Sim Sim Sim
 Contingência EPEC Não Sim Sim Sim Não
 Eventos MDF-e Sim Sim Sim Sim Não

Como implementar a Consulta CT-e?

Para realização da Consulta CT-e, o usuário precisa realizar uma comunicação com o web service CTeDistribuicaoDFe, e fornecer suas algumas informações:

  • Código da UF do ator
  • CNPJ ou CPF do interessado
  • NSU (Número Sequencial Único)
  • Tipo do NSU, específico ou último

Essa operação também exige o uso de Certificado Digital A1 ou A3 para autenticação do ator dos documentos.

Se você quiser poupar tempo e esforço de implementação, existem bibliotecas e APIs prontas, contendo toda a rotina da consulta CT-e, como o CTe TecnoSpeed.

 

Utilizando a DLL CTe TecnoSpeed

Se você utilizar a integração via DLL do CTe TecnoSpeed, deverá chamar o método ConsultarDistribuicaoDFe para realizar este processo. Os parâmetros para seu preenchimento são:

  • aCodigoUF (Código da UF do ator)
  • aCNPJCPF (CNPJ ou CPF do interessado no DF-e)
  • aNSU (Número sequencial único a ser consultado)
  • aTipoNSU (Tipo do NSU, específico ou último)
    • nkEspecifico ou nkUltimo

Como retorno dessa operação, você receberá um arquivo XML contendo os documentos (compactados em base64) de interesse do ator.

 procedure TFrmExemplo.BtConsultarDfeClick(Sender: TObject);
var
  _returnValue: string;
begin
  try
    _returnValue := CTe.ConsultarDistribuicaoDFe(IntToStr(CTe.ObterCodigoUF(edUF.Text)), edtCNPJ.Text , EdtNsu.text, TNSUKind(RgNsu.ItemIndex));
  except
    raise ;
  end;
end;

Para complementar o método ConsultarDistribuicaoDFe  que retorna o XML contendo os documentos de interesse do ator compactados deve ser utilizado o método  TratarXMLRetornoDFe. 

Esse método recebe o XML de retorno da consulta DFe e faz o tratamento de cada XML compactado e o retorna na pasta definida na propriedade DiretorioXmlTomadorServico .

Seu único parâmetro de utilização é o:

  • aXML (XML de retorno da consulta de DFe)

Como retorno, você obterá os XML solicitados, sem compactação, na pasta definida na propriedade. 

  procedure TFrmExemplo.BtConsultarDfeClick(Sender: TObject);
var
  _returnValue: string;
begin
  try
    _returnValue := CTe.ConsultarDistribuicaoDFe(IntToStr(CTe.ObterCodigoUF(edUF.Text)), edtCNPJ.Text , EdtNsu.text, TNSUKind(RgNsu.ItemIndex));
    CTe.TratarXMLRetornoDFe(_returnValue);
  except
    raise ;
  end;
end;

 

Utilizando a API CTe TecnoSpeed

Se você utiliza a integração via API do CTe TecnoSpeed, deverá utilizar a rota /consultadfe para obtenção do CT-e

https://managersaas.tecnospeed.com.br:8081/ManagerAPIWeb/cte/consultadfe

A SEFAZ disponibiliza as consultas por lotes de até 50 CT-es. Ao realizar a consulta, o CTe TecnoSpeed retorna todos os lotes localizados nos 15 dias anteriores à consulta, caso não seja passado nenhum parâmetro na consulta.

A Querystring deve ser realizada assim:

 Nome Descrição
 Grupo Nome do grupo
 CNPJ CNPJ que está vinculado ao grupo que será usado para realizar a consulta, apenas números
 TipoNSU 0 – Até a ultima NSU encontrada

1 – Somente a NSU específica

 NSU Número que indica a primeira NSU a ser consultada. Caso seja informado com zero, ou com um NSU muito antigo, a consulta retornará unicamente os CT-e’s que tenham sido recepcionados nos últimos 15 dias

Como retorno desta requisição, você obterá uma mensagem semelhante a essa:

"cStatus", "xMotivo", "ultNSU", "maxNSU"

138, Documento localizado, 000000000001234, 000000000005678

Facilite a implementação do CT-e no seu software!

A Consulta de CT-e através do web service CTeDistribuicaoDFe é apenas um dos muitos processos que o CTe TecnoSpeed pode te ajudar a implementar no seu sistema. Integrável via DLL ou API, você ainda conta com uma equipe de consultoria técnica e tributária.

Economize tempo e esforço no desenvolvimento do módulo fiscal do seu ERP de logística. Deixe com quem entende de documentos fiscais eletrônicos!

Conheça o CTe TecnoSpeed

Formado em Marketing. Redator do Grupo TecnoSpeed. Escreve artigos e conteúdos para TecnoSpeed DF-e, Certificados Digitais e WiFire.

Artigos relacionados