Ir para conteúdo
  • Cadastre-se

Luizfern

Membros
  • Total de ítens

    9
  • Registro em

  • Última visita

Luizfern's Achievements

Rookie

Rookie (2/14)

  • Conversation Starter
  • Dedicated Rare
  • First Post
  • Week One Done
  • One Month Later

Recent Badges

1

Reputação

  1. 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.
  2. Revisei todo o ACBrBoletoW_Itau_API.pas e o mesmo problema do procedimento GerarJuros também estava ocorrendo nos procedimentos AtribuirJuros e AtribuirDesconto1. Arquivo atualizado em anexo. ACBrBoletoW_Itau_API.pas
  3. 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
  4. Testando a API identifiquei esses vazamentos de memória na função GerarInstrucao do TBoletoW_Sicoob_V3. Em anexo o arquivo com as alterações para validação. Em resumo, estava criando um TACBrJSONObject que não é usado para nada. ACBrBoletoW_Sicoob_V3.pas
  5. Olá, testando o envio encontrei um outro vazamento. Está criando um TACBrJSONObject que não está sendo usado na procedure TBoletoW_Sicoob_V3.GerarInstrucao do ACBrBoletoW_Sicoob_V3.pas. Arquivo em anexo. ACBrBoletoW_Sicoob_V3.pas
  6. Tem um problema na linha do parse que foi para o SVN. Não pode ser "AJsonBoletosArray := AJsonBoletosArray.Parse( LRetorno );" porque nesse ponto AJsonBoletosArray ainda é nil. Precisa ser "AJsonBoletosArray := TACBrJSONArray.Parse( LRetorno );"
  7. 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
  8. Boa tarde, tambem estou precisando emitir boletos do Credisis. Aguardando os fontes.
×
×
  • 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.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...