Boa tarde, Renato
Você já utiliza o UniNFe com o seu sistema para poder fazer a manifestação no NF-e? Se sim, será na mesma ideia, só não precisa gerar a consulta da manifestação, pois não existe consulta para o CT-e
Caso não utiliza, segue abaixo:
1) SEFAZ só retorna notas dos últimos, se não me engano, 3 meses, não mais que isso.
2) Primeira consulta que você for fazer, deve colocar no NSU o valor 000000000000000, é o início de tudo.
3) Próximas consultas você tem que pegar o valor retornado no envio da primeira consulta da tag ultNSU e usar ela. Sempre que você faz uma consulta, pega no retorno o ultNSU e é a partir dele que você deve consultar. Em teoria, nunca mais volta ao 000000000000000. Você pode, mas o que você tem que entender é que deve sempre consultar com base no conteúdo da ultNSU até atingir o valor de maxNSU, também retornado no envio da consulta. Quando atingir o maxNSU vc deve guardar o ultNSU, travar o sistema para permitir consulta somente depois de 1 hora, isso para evitar consumo indevido, quando passar este tempo você dá sequência a partir do ultNSU. Chato, mas é a regra que a SEFAZ criou.
4) Se você seguir a forma como relatei nos itens acima, tem que baixar os arquivos -Cte.xml, só não vai baixar, se não tiver CT-e (lembrando novamente que a SEFAZ só retorna, se não me engano, notas dos últimos 3 meses, não me recordo bem este prazo).
Analise se sua operação está obedecendo isso. Se tiver, ele tem que retornar os resumos das notas para que você insira no seu sistema para interagir com o usuário.