Ao usar a API do Itau, a função Consulta, não estava trazendo os dados do Pagador.
Olhando o JSON, eu vi que vem os dados do pagador, conforme imagem abaixo:
Então, eu alterei a função RetornoEnvio_Itau_API.LerListaRetorno da unit ACBrBoletoRet_Itau_API.pas
e adicionei as linhas abaixo, antes de pegar os dados de "pagamentos_cobranca", para pegar os dados do Sacado no retorno:
if LJsonBoletoObject.AsJSONObject['dado_boleto'].AsJSONObject['pagador'].IsJSONObject('pessoa') then
begin
ListaRetorno.DadosRet.TituloRet.Sacado.NomeSacado := LJsonBoletoObject.AsJSONObject['dado_boleto'].AsJSONObject['pagador'].AsJSONObject['pessoa'].AsString['nome_pessoa'];
if (ListaRetorno.DadosRet.TituloRet.Sacado.NomeSacado = '') then
ListaRetorno.DadosRet.TituloRet.Sacado.NomeSacado := LJsonBoletoObject.AsJSONObject['dado_boleto'].AsJSONObject['pagador'].AsJSONObject['pessoa'].AsString['nome_razao_social_pagador'];
if LJsonBoletoObject.AsJSONObject['dado_boleto'].AsJSONObject['pagador'].AsJSONObject['pessoa'].AsJSONObject['tipo_pessoa'].AsString['codigo_tipo_pessoa'] = 'F' then
ListaRetorno.DadosRet.TituloRet.Sacado.CNPJCPF := LJsonBoletoObject.AsJSONObject['dado_boleto'].AsJSONObject['pagador'].AsJSONObject['pessoa'].AsJSONObject['tipo_pessoa'].AsString['numero_cadastro_pessoa_fisica']
else
ListaRetorno.DadosRet.TituloRet.Sacado.CNPJCPF := LJsonBoletoObject.AsJSONObject['pagador'].AsJSONObject['pessoa'].AsJSONObject['tipo_pessoa'].AsString['numero_cadastro_nacional_pessoa_juridica'];
ListaRetorno.DadosRet.TituloRet.Sacado.Logradouro := LJsonBoletoObject.AsJSONObject['dado_boleto'].AsJSONObject['pagador'].AsJSONObject['endereco'].AsString['nome_logradouro'];
ListaRetorno.DadosRet.TituloRet.Sacado.Bairro := LJsonBoletoObject.AsJSONObject['dado_boleto'].AsJSONObject['pagador'].AsJSONObject['endereco'].AsString['nome_bairro'];
ListaRetorno.DadosRet.TituloRet.Sacado.Cidade := LJsonBoletoObject.AsJSONObject['dado_boleto'].AsJSONObject['pagador'].AsJSONObject['endereco'].AsString['nome_cidade'];
ListaRetorno.DadosRet.TituloRet.Sacado.UF := LJsonBoletoObject.AsJSONObject['dado_boleto'].AsJSONObject['pagador'].AsJSONObject['endereco'].AsString['sigla_UF'];
ListaRetorno.DadosRet.TituloRet.Sacado.Cep := LJsonBoletoObject.AsJSONObject['dado_boleto'].AsJSONObject['pagador'].AsJSONObject['endereco'].AsString['numero_CEP'];
end;
Fiz testes em produção, e os dados do Pagador estão sendo carregados para a ListaRetorno.
ACBrBoletoRet_Itau_API.pas