-
Total de ítens
9 -
Registro em
-
Última visita
Luizfern's Achievements
-
Luizfern started following Boleto Sicoob (API) - Memory leak na função LerListaRetorno (ACBrBoletoRet_Sicoob_V3.pas) , Bolecode Itaú (API) - Consulta detalhe não utilizando o último boleto registrado quando a consulta retorna mais de um boleto. (Nosso número reaproveitado) , [ACBR-8971] Bolecode Itaú (API) - Memory leak no envio do boleto (ACBrBoletoW_Itau_API.pas) e 1 outro
-
Olá, Homologando a API do Itaú (Bolecode) estou com um problema na consulta de um boleto pelo nosso número, na consulta detalhe (tpConsultaDetalhe) a função do ACBr retorna apenas o último registro do JSON, mas no meu caso o último boleto registrado seria o primeiro item do JSON. JSON de Retorno (anonimizado): { "data": [ { "id_boleto": "00000000-0000-0000-0000-000000000000", "beneficiario": { "id_beneficiario": "000000000000", "nome_cobranca": "BENEFICIARIO ANONIMIZADO UM", "tipo_pessoa": { "codigo_tipo_pessoa": "J", "numero_cadastro_nacional_pessoa_juridica": "00000000000000" }, "endereco": { "nome_logradouro": "RUA EXEMPLO A, 000", "nome_bairro": "BAIRRO ALFA", "nome_cidade": "CIDADE EXEMPLO", "sigla_UF": "PR", "numero_CEP": "00000000" } }, "dado_boleto": { "descricao_instrumento_cobranca": "BoleCode", "forma_envio": "impressão", "tipo_boleto": "a vista", "quantidade_parcelas": 0, "pagador": { "pessoa": { "nome_pessoa": "PAGADOR ANONIMIZADO UM", "tipo_pessoa": { "codigo_tipo_pessoa": "J", "numero_cadastro_nacional_pessoa_juridica": "00000000000000" } }, "endereco": { "nome_logradouro": "AVENIDA EXEMPLO A, 10", "nome_bairro": "BAIRRO BETA", "nome_cidade": "CIDADE EXEMPLO", "sigla_UF": "PR" }, "pagador_eletronico_DDA": false, "praca_protesto": false }, "codigo_carteira": "109", "dados_individuais_boleto": [ { "situacao_geral_boleto": "Baixada", "status_vencimento": "Vencida", "numero_nosso_numero": "1", "data_vencimento": "2025-10-02", "valor_titulo": "1.00", "texto_seu_numero": "000", "dac_titulo": 0, "codigo_barras": "00000000000000000000000000000000000000000000", "numero_linha_digitavel": "00000000000000000000000000000000000000000000000", "data_limite_pagamento": "2035-10-02" } ], "codigo_especie": "01", "descricao_especie": "DM - Duplicata Mercantil", "codigo_aceite": "S", "data_emissao": "2025-09-18", "pagamento_parcial": false, "quantidade_maximo_parcial": 0, "negativacao": {}, "codigo_tipo_vencimento": 3, "baixa": { "data_inclusao_alteracao_baixa": "2026-03-04T00:00:00", "motivo_baixa": "Baixa por ter sido liquidado" }, "texto_uso_beneficiario": "0", "historico": [ { "data": "2026-03-04", "operacao": "ALTERACAO QRCODE PIX BOLECODE", "comandado_por": "SISTEMA", "detalhes": [ { "descricao": "ALTERACAO QRCODE PIX TEXTO IMAGEM", "conteudo_anterior": "null", "conteudo_atual": "PIX_URL_ANONIMIZADA" }, { "descricao": "ALTERACAO QRCODE PIX TEXTO IMAGEM CRIPTOGRAFADA", "conteudo_anterior": "null", "conteudo_atual": "PIX_URL_ANONIMIZADA" } ], "canal_origem": "API", "descricao_canal_origem": "API" }, { "data" : "2026-03-04", "operacao" : "ENTRADA TITULO", "comandado_por" : "000000000", "canal_origem" : "API", "descricao_canal_origem" : "API" }, { "data" : "2026-03-04", "operacao" : "BAIXAR E DEVOLVER", "comandado_por" : "000000000", "canal_origem" : "IMC", "descricao_canal_origem" : "SISTEMA" } ], "recebimento_divergente": { "codigo_tipo_autorizacao": "03", "codigo_tipo_recebimento": "P", "valor_minimo": "0.00", "percentual_minimo": "0.00000", "valor_maximo": "0.00", "percentual_maximo": "0.00000" }, "indicador_bloqueio": "N", "qrcode_pix": { "imagem_base64": "BASE64_REMOVED", "emv": "EMV_ANONIMIZADO" }, "indicador_descontado": false, "indicador_negociado": false }, "acoes_permitidas": { "emitir_segunda_via": false, "comandar_instrucao_alterar_dados_cobranca": false } }, { "id_boleto": "11111111-1111-1111-1111-111111111111", "beneficiario": { "id_beneficiario": "000000000000", "nome_cobranca": "BENEFICIARIO ANONIMIZADO DOIS", "tipo_pessoa": { "codigo_tipo_pessoa": "J", "numero_cadastro_nacional_pessoa_juridica": "00000000000000" }, "endereco": { "nome_logradouro": "RUA EXEMPLO B, 999", "nome_bairro": "BAIRRO GAMA", "nome_cidade": "CIDADE EXEMPLO", "sigla_UF": "PR", "numero_CEP": "00000000" } }, "dado_boleto": { "descricao_instrumento_cobranca": "boleto", "forma_envio": "impressão", "tipo_boleto": "a vista", "quantidade_parcelas": 0, "pagador": { "pessoa": { "nome_pessoa": "PAGADOR ANONIMIZADO DOIS", "tipo_pessoa": { "codigo_tipo_pessoa": "J", "numero_cadastro_nacional_pessoa_juridica": "00000000000000" } }, "endereco": { "nome_logradouro": "AVENIDA EXEMPLO B, 50", "nome_bairro": "BAIRRO DELTA", "nome_cidade": "CIDADE EXEMPLO", "sigla_UF": "PR", "numero_CEP": "00000000" } }, "codigo_carteira": "109", "dados_individuais_boleto": [ { "situacao_geral_boleto": "Paga", "status_vencimento": "Vencida", "numero_nosso_numero": "1", "data_vencimento": "2025-10-02", "valor_titulo": "1.00", "texto_seu_numero": "000", "dac_titulo": 0, "codigo_barras": "00000000000000000000000000000000000000000000", "numero_linha_digitavel": "00000000000000000000000000000000000000000000000", "data_limite_pagamento": "2035-10-02" } ], "codigo_especie": "95", "descricao_especie": "DMI - Duplicata de venda Mercantil por Indicação", "codigo_aceite": "S", "data_emissao": "2025-09-18", "pagamento_parcial": false, "valor_pago_total": "1.00", "quantidade_maximo_parcial": 0, "negativacao": {}, "codigo_tipo_vencimento": 3, "pagamentos_cobranca": [ { "numero_agencia_recebedora": "0000", "data_inclusao_pagamento": "2025-09-19T10:10:45", "valor_pago_total_cobranca": "1.00", "codigo_instituicao_financeira_pagamento": "000", "descricao_canal_pagamento": "0", "descricao_meio_pagamento": "0", "valor_pago_desconto_cobranca": "0.00", "valor_pago_multa_cobranca": "0.00", "valor_pago_juro_cobranca": "0.00", "valor_pago_abatimento_cobranca": "0.00" } ], "texto_uso_beneficiario": "117", "historico": [ { "data": "2025-09-19", "operacao": "TITULO LIQUIDADO", "comandado_por": "SISTEMA", "canal_origem": "SIS", "descricao_canal_origem": "SISTEMA" }, { "data" : "2025-09-19", "operacao" : "ENTRADA TITULO", "comandado_por" : "00000000", "canal_origem" : "EPR", "descricao_canal_origem" : "REMESSA" } ], "recebimento_divergente": { "codigo_tipo_autorizacao": "03", "codigo_tipo_recebimento": "P", "valor_minimo" : "0.00", "percentual_minimo" : "0.00000", "valor_maximo" : "0.00", "percentual_maximo" : "0.00000" }, "indicador_bloqueio": "N", "indicador_descontado": false, "indicador_negociado": false }, "acoes_permitidas": { "emitir_segunda_via": false, "comandar_instrucao_alterar_dados_cobranca": false } } ], "page": { "links": { "first": "/prod/boletos?id_beneficiario=000&nosso_numero=001", "last": "/prod/boletos?id_beneficiario=000&nosso_numero=001", "previous": "/prod/boletos?id_beneficiario=000&nosso_numero=001", "next": "/prod/boletos?id_beneficiario=000&nosso_numero=001" }, "page": 0, "total_pages": 0, "total_elements": 2, "page_size": 20 } } Acontece que já existia um boleto com o nosso número 1 registrado via remessa, ontem eu registrei o mesmo boleto pela api do bolecode. (Usei o mesmo registro do sistema onde estou testando) Código no ACBr: Não sei qual seria a melhor alteração pra garantir que pegue o boleto mais atual.
-
[ACBR-8971] Bolecode Itaú (API) - Memory leak no envio do boleto (ACBrBoletoW_Itau_API.pas)
um tópico no fórum postou Luizfern ACBrBoleto
O processo de envio de boletos para a api bolecode do Itau esta gerando memory leak em alguns pontos. 1- No procedimento GerarJuros está criando o json antes do if, deixando ele sem vinculo com o json passado por parâmetro quando o titulo não tem ValorMoraJuros. 2- No procedimento RequisicaoJson estava faltando liberar o json criado (LJson), e no procedimento GeraDadoBoleto o json LJsonDados está sendo liberado antes do que deveria, porque a linha do "AJson.AddPair('dado_boleto',LJsonDados);" já inclui esse json na lista de contextos para ser liberado quando o json principal for destruído. Arquivo alterado em anexo. Não fiz a indentação do código pra facilitar a visualização do que foi alterado. ACBrBoletoW_Itau_API.pas -
Boleto Sicoob (API) - Memory leak na função LerListaRetorno (ACBrBoletoRet_Sicoob_V3.pas)
um tópico no fórum postou Luizfern ACBrBoleto
Testando a API identifiquei esses vazamentos de memória na função LerListaRetorno do TRetornoEnvio_Sicoob_V3. Em anexo o arquivo com as alterações para validação. Em resumo, estava criando um TStringStream e não estava sendo utilizado e liberado, e também sobrescrevendo um TACBrJSONArray criado. ACBrBoletoRet_Sicoob_V3.pas -
Boa tarde, tambem estou precisando emitir boletos do Credisis. Aguardando os fontes.
