Ir para conteúdo
  • Cadastre-se

  • Este tópico foi criado há 212 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado (editado)

Fiz as correções necessárias na movimentação da cobrança do Itaú (ACBrBoletoRet_Itau_API.pas). ValorTarifa, ValorPago, ValorMoraJuros e ValorDesconto estavam completamente incorretos como estavam. Não estava trazendo os valores de Multa, Juros, Tarifa, etc. E o valor da tarifa do boleto estava vindo como valor de desconto, e o real valor de desconto não trazia, ValorPago estava igual ao valor_liquido_lancado, que é um valor já descontado o valor da tarifa. Enfim, os valores estavam todos errados.

O bloco comentado tinha alguns erros que corrigi, por exemplo ValorTarifa estava buscando um bloco com Json com 'ç', sendo que o UpperCase() não converte ç em Ç, o desconto estava buscando 'Desconto' quando o correto é 'Descontos', e por aí vai. Está tudo explicado nos comentários das correções que fiz. Testei tudo, tanto usando a coleção do Postman disponibilizado pelo Itaú quanto usando o log das requisições do próprio ACBr, tudo já em produção e deu tudo certo, todos os valores vem agora corretos.

Agradeço se a ACBr subir meu fonte ao menos para análise, e caso concorde com as alterações, publique-as.

 

ACBrBoletoRet_Itau_API.pas

Editado por Luciano Rodrigues Pereira
  • Consultores
Postado

Criada tarefa ACBR-8206 para avaliação.

image.png

Alexandre de Paula
Gerente de Projetos
Ajude o Projeto ACBr crescer - Assine o Clube PRO                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

 

 

  • Consultores
Postado

@Luciano Rodrigues Pereira
Por falta de credenciais, vc pode por favor ativar o log paranoico de web services e realizar algumas consultas.
Pois na documentação:
image.png

Sobre  Json com 'ç'...  estamos usando AnsiUpperCase(LJsonArrayOperacaoCobranca.ItemAsJSONObject[K].AsString['descricao']) ,mas vou realizar todos os testes e analisar a contribuição.
Assim com o seu log, consigo validar estes detalhes
 

Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

  • Consultores
Postado

@Luciano Rodrigues Pereira
Não tenho credencial de produção para realizar testes de consultas; 
Caso seja possível de enviar via email credenciais para que eu possa realizar os testes.
Se não, por favor realize novas consultas, com e sem o indicador pix marcado.
Consultas que tenham desconto para validarmos os campos, pois como citei acima, não bate com o manual. então sabendo que no log vem estes campos, ja temos um documento.
Se possível compacte o arquivo para anexar, pois estão vindo sem alguns caracteres como esperado.
Por isso as linhas estavam comentadas, abrimos um chamado no itau e não tivemos repostas.
Screenshot_4.png

Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Postado

Pois é @Daniel InfoCotidiano, o Itaú é péssimo mesmo. Se você está com o arquivo .pas que eu passe, vai ver que eu descomentei tudo e corrigi, testei tudo com boletos com desconto e sem e deu tudo certo. 
Como eu disse, não tinha mesmo como dar certo esse bloco comentado, pois está cheio de erros como citei por exemplo:  O Itaú cometeu o crime de criar um bloco Json acentuado, chamado "Tarifa de cobrança" (com 'ç'). E o bloco comentado estava procurando UpperCase(Descricao) = 'TARIFA DE COBRANÇA', sendo que o UpperCase() não converte ç em Ç, por isso usei o LeftStr(descricao, 16) = 'TARIFA DE COBRAN'. O desconto também estava buscando 'Desconto' quando o correto é 'Descontos' (no plural) e outros erros que explico onde descomentei. ValorPago também não é igual a valor_liquido_lancado, pois o valor_liquido_lancado já abate o valor da tarifa do boleto. O Bloco também estava puxando a tarifa como desconto, e por aí vai, está tudo explicado no bloco descomentado.

Vou passar minhas credenciais de produção via e-mail, aí você poderá testar usando o Postman. Meu log é da movimentação do dia 09/09/2025.

Outro problema neste fonte do Itaú, é que ele só puxa títulos liquidados não puxa baixados, você pode setar o Boleto.Configuracoes.WebService.Filtro.indicadorSituacao para isBaixado ou isLiquidado, o endpoint montado pelo ACBr só vai consultar Liquidados. Mas esse é um problema que posso resolver depois. Vamos resolver esses valores antes, pois estamos sem puxar a movimentação e para quem tem muitos boletos, é horrível consultar um a um.

 

 

 

 

ApiCobranca_06102025.rar ACBrBoletoRet_Itau_API.rar

Postado

Eu não testei com indicador pix porque quando alguém paga via QRCode, o Itaú não retorna nenhum valor, nada, nem multa, juros, desconto, tarifa, absolutamente nada, então não tem o que testar. O que acontece quando alguém paga via QRCode um boleto do Itaú? A API do Itaú vai retornar esse boleto como "Baixado" e não vai retornar nenhum valor, pois essa liquidação vira um simples pix. Aí você vai ter de consultar a API do Pix para verificar esses valores, e vai ter de usar o txId, porque como virou um pix, não tem informações do título como nosso número. E se você está consultando a movimentação, a API do pix vai retornar todos os pixs realizados para a empresa, não só os dos boletos. Entendeu?, é horrível.

 

  • Curtir 1
  • Consultores
Postado

Li sim o q o sr citou e comentou.
As consultas francesinhas é somente liquidados mesmo.
Por isso q solicitei a consulta com indicadorPix como true, ela realiza consulta de liquidados com qrcode.
Mas recebi os mesmos arquivos que ja tinha no email.
Como a documentacao nao bate e nao veio desconto por exemplo preciso validar p nao quebrar os outros.
Como Boleto e Bolecode são produtos diferentes para o itau,por favor, faca uma consulta com indicadorPix=true
anexe o log desta consulta;
Obrigado pela compreensão !


 

Agora entendi.
 

Blz. assim que concluido reporto aqui

Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Postado
1. @Daniel InfoCotidiano, ainda precisa que eu faça algum teste com IndicadorPix =  true? Eu já lhe encaminhei minhas credenciais de produção em outro e-mail e se você consultar a movimentação do dia 09/09/2025 (que corresponde ao log que lhe encaminhei), esses boletos liquidados neste dia têm desconto. No Postman vai mostrar.
 
2. Outra coisa, achei hoje com o suporte do Itaú outro problema com o ACBr.: Trata-se do page_size, o ACBr não o está setando. Conforme o Lauro, que dá suporte aos atendentes do suporte do Itaú, como funciona o page_size? ele especifica o número de elementos (boletos) que a requisição vai trazer por página. Digamos que minha requisição trouxe 54 boletos. Quando você não seta o page_size, ele só vai mostrar 30 por página. Então a página 0 vai trazer 30, e os outros 24 estarão na página 1.
 
Eu testei buscando a movimentação do dia 27/08/2025. Usando o Postman, trouxe as 54 liquidações, mas como eu disse, em 2 páginas. Usando o ACBr trouxe 30 boletos (porque não foi setado o page_size), que é só a página zero. 
Para corrigir isso, é só setar o page_size para um número grande, tipo 10 mil, para que a requisição traga todos elementos em uma única página, que é a página zero.
Estou anexando o log da requisição feita com o ACBr (que traz 30 liquidações) e o Json do Postman (que traz 54). O limite de page_size no postman é de 50, então os 50 primeiros estão no response0 (que é a página 0) e os 4 restantes estão no response1 (que é a página 1).
 
3. Outra coisa, francesinha não é só liquidação, você pode puxar baixados também, é só alterar o tipo_movimentacao = baixas, como mostro na imagem em anexo. Eu fiz esses testes com o suporte do Itaú.
 
 

Captura de tela 2025-10-15 173926.png

francesinha 27-08.txt response1.json response0.json

  • Curtir 1
Postado

Repare que o final da requisição do ACBr é "total_elements":54,"total_pages":2,"page_size":30,"page":0} ou seja, são 54 liquidações que estão em 2 páginas, pois cada página só tem 30 (porque não foi setado o valor de page_size), mas o ACBr só traz a página 0, então as outras 24 liquidações são perdidas. Por isso que deve-se setar o page_size logo para um número grande, já que o ACBr vai trazer apenas a página zero.

  • Consultores
Postado
6 horas atrás, Luciano Rodrigues Pereira disse:

Repare que o final da requisição do ACBr é "total_elements":54,"total_pages":2,"page_size":30,"page":0} ou seja, são 54 liquidações que estão em 2 páginas, pois cada página só tem 30 (porque não foi setado o valor de page_size), mas o ACBr só traz a página 0, então as outras 24 liquidações são perdidas. Por isso que deve-se setar o page_size logo para um número grande, já que o ACBr vai trazer apenas a página zero.

há tu não está sabendo passar no componente para ele fazer o retorno da próxima página de dados. 

creio que se tu olhar a lógica com calma vai entender.

mas ele trás ao final dizendo que tem indice de continuidade, dai é só pegar o proximo e passar de onde deve continuar até onde chegar

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Consultores
Postado

@Luciano Rodrigues Pereira
Apenas exemplificando o que o @Juliomar Marchetti citou. vc precisa usar indice de continuidade quando existir.
No retorno, ele devolve o proximo indice a ser utilizado na consulta.
No caso abaixo 09/09/2025, proximoIndice=0 significa que não existe proxima pagina:
Screenshot_10.png

Olhe o exemplo da consulta com mais de uma pagina:
Na consulta sempre iniciaos com o indiceContinuidade=0;
Screenshot_11.png

Se existir mais paginas, como no caso abaixo o proximo indice sera 1, precisa fazer uma nova consulta indicando o proximo item (com a mesma data)
Screenshot_12.png

Como chegou no final das paginas, ele retorna 0 (zero) no próximo item sinalizando assim que não existem mais paginas;

 

 

 

 

Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

  • Consultores
Postado

Por favor atualize seus fontes, pelo SVN do ACBr... 

Já subimos para o nosso repositório de fontes, modificações que podem corrigir algum dos itens referentes a esse tópico...

Por favor atualize seus fontes, faça testes, e se possível comente em uma nova resposta, se o problema foi resolvido...

Dúvidas, sobre o uso do SVN ?  Clique aqui e veja um vídeo

Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

  • 4 semanas depois ...
Postado

@Daniel InfoCotidiano as modificações funcionaram perfeitamente e também já corrigi meu sistema em relação à paginação da movimentação, muito obrigado pelas explicações.
Como eu lhe disse aí no dia 16/10 neste mesmo post, o Itaú além de liquidações, também traz as baixas, só muda o filtro. E o ACBr só está tratando as liquidações.
Vou fazer as correções, testar e postar aqui, ok?

  • Este tópico foi criado há 212 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.