Bom dia Valdir,
O provedor IPM não retorna o XML da NFS-e e isso explica o fato de:
ACBrNFSeX1.NotasFiscais.Items[0].NFSe.Numero
estar vazio.
Quanto ao campo situação observando a rotina que trata o retorno realmente ele não é alimentado.
Esse campo existe por conta dos provedores ABRASF que seguem a versão 1 que ao consultar a situação do lote retorna os valores 1, 2, 3 ou 4.
O provedor IPM se você notar tem a tag <situacao_codigo_nfse>.
Você poderia incluir a linha:
Situacao := ProcessarConteudoXml(ANode.Childrens.FindAnyNs('situacao_codigo_nfse'), tcStr);
Logo abaixo da linha que pega o protocolo.
Só temos um problema.
O valor do campo Situacao vai ser 1 que indica que a nota foi Emitida, correto?
Pois bem, para os provedores que seguem a ABRASF, Situacao = 1 significa que o lote não existe, 2 = Lote em processamento, 3 = Processado com falhas e 4 = Processado com sucesso.
Qual seria a solução para esse caso?
Se o provedor retornar 1 você atribui o valor 4 para o campo Situacao, para deixar padronizado?