Boa tarde @Victor H. Gonzales - Panda,
Ficou apenas um erro relacionado a leitura dos dados da baixa.
Ao ler os dados desconsiderou o objeto pai, dado boleto.
Para corrigir fica algo como assim:
if LJsonBoletoObject.AsJSONObject['dado_boleto'].IsJSONObject('baixa') then
begin
ListaRetorno.DadosRet.TituloRet.DataBaixa := StringToDateTimeDef(LJsonBoletoObject.AsJSONObject['dado_boleto'].AsJSONObject['baixa'].AsString['data_inclusao_alteracao_baixa'], 0, 'yyyy-mm-dd');
ListaRetorno.DadosRet.TituloRet.Mensagem.Text := LJsonBoletoObject.AsJSONObject['dado_boleto'].AsJSONObject['baixa'].AsString['motivo_baixa'];
if (UpperCase(LJsonBoletoObject.AsJSONObject['dado_boleto'].AsJSONObject['baixa'].AsString['motivo_baixa']) = 'BAIXA POR TER SIDO LIQUIDADO') then
begin
ListaRetorno.DadosRet.TituloRet.EstadoTituloCobranca := UpperCase(LJsonBoletoObject.AsJSONObject['dado_boleto'].AsJSONObject['baixa'].AsString['motivo_baixa']);
ListaRetorno.DadosRet.TituloRet.CodigoEstadoTituloCobranca := RetornaCodigoOcorrencia(UpperCase(LJsonBoletoObject.AsJSONObject['dado_boleto'].AsJSONObject['baixa'].AsString['motivo_baixa']));
end;
end;
Linha 458.
Outra coisa: sobre a busca dos dados, não é informado na URL o período de busca, assim está buscando todos os títulos toda vez. O status tbm não é considerado (buscar apenas baixados).
Nessa api do Itaú não é possível buscar com esses parâmetros?