Boa tarde Sebastião.
Acredito que você não entendeu como funciona o serviço de Distribuição de Documentos Fiscais Eletrônicos o DistribuicaoDFe.
Note que quando você informa o valor zero para ultNSU você tem a seguinte resposta:
[DistribuicaoDFe]
CStat=137
CUF=0
DhRecbto=
Msg=Nenhum documento localizado
VerAplic=1.6.1
Versao=1.01
XMotivo=Nenhum documento localizado
arquivo=
dhResp=11/12/2022 20:15:11
indCont=1
maxNSU=000000000000355
tpAmb=1
ultNSU=000000000000100
A partir do momento que no retorno consta o valor 100 em ultNSU é este que você tem que utilizar na próxima execução do DistribuicaoDFe.
Vamos lá,
Sempre, sempre utilizar o valor retornado em ultNSU na próxima execução.
Observe também o valor de maxNSU (355).
Ao executar o DistribuicaoDFe informando 100 para o ultNSU o webservice vai retornar os documentos de NSU igual a 101 até 150, uma vez que ele retorna um lote de até 50 documentos, no retorno desta consulta o valor de ultNSU vai ser 150.
O próprio passo é executar novamente o DistribuicaoDFe informando o valor 150 para o ultNSU, teremos como resposta os documentos de NSU igual a 151 até 200.
A próxima execução informamos 200 e teremos como retorno os documentos de 201 até 250.
A próxima execução informamos 250 e teremos como retorno os documentos de 251 até 300.
A próxima execução informamos 300 e teremos como retorno os documentos de 301 até 350.
A próxima execução informamos 350 e teremos como retorno os documentos de 351 até 355 (supondo que nenhum outro documento tenha entrado na fila).
Nesta ultima execução vamos ter o valor de ultNSU e maxNSU, ambos iguais a 355, neste caso devemos aguardar 65 minutos e fazer uma nova consulta informando o valor 355 para o ultNSU.
Por fim, a principio o DistribuicaoDFe só retorna o resumo da nota, para obter o XML completo devemos enviar um dos 4 eventos de Manifestação do Destinatário.
Em que momento devo enviar os eventos?
A dica é assim que você obtém o primeiro lote de resumos e devemos aguardas de 3 a 5 minutos para a próxima consulta, você pode usar esse intervalo de tempo para manifestar essas notas referente aos resumos retornados.
Dependendo da boa vontade do Ambiente Nacional, após a manifestação das notas ao executar pelo segunda vez o DistribuicaoDFe o maxNSU poderá aumentar em relação a primeira consulta, isso significa que o Ambiente Nacional liberou o XML completo das notas manifestadas ou entrou mais documentos na fila.
Detalhe importante:
Tenha em mente que o DistribuicaoDFe por retornar 4 tipos de documentos: resumo de uma nota, XML completo da nota, resumo de um evento ou XML completo de um evento.
Espero ter ajudado.