luciano_f
Membros-
Total de ítens
291 -
Registro em
-
Última visita
luciano_f's Achievements
-
o retorno que eu tenho é esse: JSON Retorno = {"_pageable":{"_limit":1000,"_offset":0,"_pageNumber":null,"_pageElements":0,"_totalPages":null,"_totalElements":0},"_content":[]} ------------------------------------------------------------------------------------------------------------ 13/05/26 19:47:31:477 -03:00 - Autenticando Token... 13/05/26 19:47:31:479 -03:00 - Comando Enviar: TOAuth 13/05/26 19:47:31:481 -03:00 - URL: [POST] https://trust-open.api.santander.com.br/auth/oauth/v2/token 13/05/26 19:47:31:854 -03:00 - Validade: 13/05/2026 20:02:31 13/05/26 19:47:31:858 -03:00 - Comando Enviar: TBoletoW_Santander_API 13/05/26 19:47:31:862 -03:00 - Comando Enviar: 13/05/26 19:47:31:863 -03:00 - URL: [GET] https://trust-open.api.santander.com.br/collection_bill_management/v2/workspaces/e12ccaac-86ea-42c5-9ee9-513184f925b3/bank_slips?_limit=1000&paymentDateInitial=2026-04-20&paymentDateFinal=2026-05-13&status=LIQUIDADO 13/05/26 19:47:32:104 -03:00 - Retorno Envio: TBoletoW_Santander_API 13/05/26 19:47:32:108 -03:00 - Código do Envio: 200 1.1 OK Fazendo a consulta de Apenas um Boleto alimentando do Titulo eu consigo um retorno valido Index = 1 Numero Boleto (NSU) = 19598 Seu Numero = 19598 Valor Original = R$ 1,00 Valor Pago = R$ 1,00 Data Vencimento = 05/07/2026 Data Movimento = 11/05/2026 Data Credito = 12/05/2026 Codigo Estado Titulo Cobrança = 06 Estado Titulo Cobranca = Liquidado
-
Para fazer a Consulta de Boletos Banco para Santander é necessário preencher os titulos ?
um tópico no fórum postou luciano_f ACBrBoleto
Olá boa noite. Pessoal eu consigo fazer o envio e registro do Boleto 100% Porém estou perdido em como fazer a consulta. todas pesquisas que fiz aqui no forum se resume a esse tipo de codigo: FiltrosAPI := ACBrBoleto.Configuracoes.WebService.Filtro; FiltrosAPI.Clear; FiltrosAPI.indicadorSituacao := isbBaixado; FiltrosAPI.dataMovimento.DataInicio := IncDay(date,-30); FiltrosAPI.dataMovimento.DataFinal := Date; FiltrosAPI.indiceContinuidade := 0; ACBrBoleto.Configuracoes.WebService.Operacao := tpConsulta; ACBrBoleto.Enviar; Porém usando "TpConsulta" dá erro dizendo que não é implementado para o Banco "Santander" Usando "tpConsultaDetalhe" funciona porém não traz registro algum Apôs o codigo de cima eu faço um for da seguinte forma: Retorno := ACBrBoleto.ListaConsultaRetornoWeb; if Retorno.Count > 0 then begin for I := 0 to Pred(Retorno.Count) do begin // Comandos internos do meu ERP end; end else if ACBrBoleto.TotalListaRetornoWeb > 0 then begin for I := 0 to Pred(AcbrCobranca.ListadeBoletos.Count) do begin // Comandos internos do meu ERP end; end; Porém se eu fizer uma consulta de Apenas um Boleto alimentando o Titulo do Boleto antes de "Enviar" eu consigo obter todos os resultados do mesmo se foi pago ou não então minha duvida ? Eu de fato preciso alimentar os Titulos para conseguir fazer uma consulta ? Eu Também já tentei o seguinte codigo que vi aqui no forum porém não funciona Titulo := ACBrBoleto.CriarTituloNaLista; With Titulo do begin FiltrosAPI := ACBrBoleto.Configuracoes.WebService.Filtro; FiltrosAPI.Clear; FiltrosAPI.indicadorSituacao := isbBaixado; FiltrosAPI.dataMovimento.DataInicio := IncDay(date,-30); FiltrosAPI.dataMovimento.DataFinal := Date; FiltrosAPI.indiceContinuidade := 0; ACBrBoleto.Configuracoes.WebService.Operacao := tpConsultaDetalhe; ACBrBoleto.Enviar; End; -
Pessoal uma outra forma de resolver isso sem precisar mexer no Evento citado acima seria cria uma nova property em "TACBrArquivos" property ListaArquivoLog : TStrings read FListaArquivoLog write FListaArquivoLog; Eu fiz algumas alterações apenas acrescentando a funcionalidade sem precisar alterar as já existentes Em anexo as 3 Units que Modifiquei Baixei a ultima versão do ACBR hoje e modifiei coloquei o comentario // Luciano na frente do codigo para o Administradores conseguir localizar e analisar o fiz se é possivel subir no Trunk dessa forma que eu fiz fica mais simples de administrar os retornos simples sem precisar ficar salvando no Disco. ACBrBoleto.pas ACBrBoletoWS.pas ACBrBoletoWS.Rest.OAuth.pas
-
Pelo que entendi existe um problema com o Evento: TACBrGravarLog = procedure(const ALogLine: String; var Tratado: Boolean) of object ; Pois por esse evento eu não consigo saber o nivel de log Seria bom se tivesse outra opção nesse evento que ficaria assim: TACBrGravarLog = procedure(const ALogLine: String; var Tratado: Boolean; const ANivelSeveridadeLog : TNivelLog) of object ; Desse forma eu conseguiria obter um Log simples com esse evento pois em: procedure TOAuth.DoLog(const AString: String; const ANivelSeveridadeLog : TNivelLog); var Tratado: Boolean; LLog : string; begin Tratado := False; if ANivelSeveridadeLog = logNenhum then Exit; LLog := NativeStringToAnsi(AString); if Assigned(FACBrBoleto.Configuracoes.Arquivos.OnGravarLog) then FACBrBoleto.Configuracoes.Arquivos.OnGravarLog(LLog, Tratado, ANivelSeveridadeLog); // Alterado para passar o tipo de log para ser tratato no evento if Tratado or (FACBrBoleto.Configuracoes.Arquivos.LogNivel >= ANivelSeveridadeLog) then GravaLog(LLog); end;
-
Fazendo homologação para o Santander eles me pediram para informar a URL de envio da produção Sei a que a URL tem o Token junto tem uma propriedade do Componente que eu consigo capturar essa URL quando vou fazer o envio sem precisar depurar ?
-
Na Classe "TBoletoWSClass" tem "ATitulo" que é acessada em todas as unit API dos bancos Porém não sei como acessar o retorno desse "ATitulo" quando faço uma consulta para não ter que fazer um Loop e usar esse tipo de código: for I := 0 to Pred(Retorno.Count) do begin Titulo := AcbrCobranca.CriarTituloNaLista; Titulo.NossoNumero := Retorno[I].DadosRet.TituloRet.NossoNumero; Etc..... End; Se alguém puder postar um exemplo que como Carrego a lista de títulos de uma consulta WS fico muito grato.
-
@Juliomar Marchetti Ainda não sei como alimentar os titulos de forma automática. Até encontrei esse outro tópico porém não sei ao certo como fazer poderia me explicar melhor. https://www.projetoacbr.com.br/forum/topic/88636-acbr-8655implementação-de-lista-de-boletos-liquido-com-qr-code-bradesco-via-api-do-site-bradesco-developers/
-
@Juliomar Marchetti Acredito que o amigo não entendeu, Eu resolvi e se algum colega precisar Carregar a Lista Web para os titulos: FiltrosAPI := AcbrCobranca.Configuracoes.WebService.Filtro; FiltrosAPI.Clear; FiltrosAPI.indicadorSituacao := isbBaixado; FiltrosAPI.dataMovimento.DataInicio := Ed_DataBWS1.Date; FiltrosAPI.dataMovimento.DataFinal := Ed_DataBWS2.Date; FiltrosAPI.indiceContinuidade := 0; AcbrCobranca.Configuracoes.WebService.Operacao := tpConsulta; AcbrCobranca.Enviar; Retorno := AcbrCobranca.ListaConsultaRetornoWeb; if Retorno.Count > 0 then begin for I := 0 to Pred(Retorno.Count) do begin Titulo := AcbrCobranca.CriarTituloNaLista; AcbrCobranca.NumeroArquivo := I; AcbrCobranca.DataArquivo := Now; Titulo.NossoNumero := Retorno[I].DadosRet.TituloRet.NossoNumero; Titulo.SeuNumero := Retorno[I].DadosRet.TituloRet.SeuNumero; Titulo.NumeroDocumento := Retorno[I].DadosRet.TituloRet.NumeroDocumento; Titulo.DataDocumento := Retorno[I].DadosRet.TituloRet.DataDocumento; Titulo.DataProcessamento := Retorno[I].DadosRet.TituloRet.DataProcessamento; Titulo.Vencimento := Retorno[I].DadosRet.TituloRet.Vencimento; Titulo.DataCredito := Retorno[I].DadosRet.TituloRet.DataCredito; Titulo.DataBaixa := Retorno[I].DadosRet.TituloRet.DataBaixa; Titulo.DataProtesto := Retorno[I].DadosRet.TituloRet.DataProtesto; Titulo.DataBaixa := Retorno[I].DadosRet.TituloRet.DataBaixa; Titulo.DataCredito := Retorno[I].DadosRet.TituloRet.DataCredito; Titulo.ValorDocumento := Retorno[I].DadosRet.TituloRet.ValorDocumento; Titulo.ValorDespesaCobranca := Retorno[I].DadosRet.TituloRet.ValorDespesaCobranca; Titulo.ValorAbatimento := Retorno[I].DadosRet.TituloRet.ValorAbatimento; Titulo.ValorDesconto := Retorno[I].DadosRet.TituloRet.ValorDesconto; Titulo.ValorMoraJuros := Retorno[I].DadosRet.TituloRet.ValorMoraJuros; Titulo.ValorOutrosCreditos := Retorno[I].DadosRet.TituloRet.ValorOutrosCreditos; Titulo.ValorOutrasDespesas := Retorno[I].DadosRet.TituloRet.ValorOutrasDespesas; Titulo.ValorRecebido := Retorno[I].DadosRet.TituloRet.ValorRecebido; Titulo.ValorIOF := Retorno[I].DadosRet.TituloRet.ValorIOF; Titulo.Carteira := Retorno[I].DadosRet.TituloRet.Carteira; Titulo.DataOcorrencia := Retorno[I].DadosRet.TituloRet.DataProcessamento; Titulo.OcorrenciaOriginal.Tipo := toRetornoBaixado; Titulo.DescricaoMotivoRejeicaoComando.Text := Retorno[I].DadosRet.TituloRet.estadoTituloCobranca; Titulo.Sacado.NomeSacado := Retorno[I].DadosRet.TituloRet.Sacado.NomeSacado; Titulo.Sacado.CNPJCPF := Retorno[I].DadosRet.TituloRet.Sacado.CNPJCPF; Titulo.Instrucao1 := Retorno[I].DadosRet.TituloRet.Instrucao1; Titulo.Instrucao2 := Retorno[I].DadosRet.TituloRet.Instrucao2; end; end; Porque eu preciso do alimentar os titulos ? Quando faço leitura do arquivo remessa a Classe "TACBrTitulo" é alimentada automaticamente pelo componente e Eu faço uso dos Titulos para varias analises do meu EPR para baixa em meu banco de dados dos documentos.
-
Como capturar o TACBrTipoOcorrencia pelo Retorno Web ?
um tópico no fórum postou luciano_f ACBrBoleto
Quando executo o comando: FiltrosAPI := AcbrCobranca.Configuracoes.WebService.Filtro; FiltrosAPI.Clear; FiltrosAPI.indicadorSituacao := isbBaixado; FiltrosAPI.dataMovimento.DataInicio := Ed_DataBWS1.Date; FiltrosAPI.dataMovimento.DataFinal := Ed_DataBWS2.Date; FiltrosAPI.indiceContinuidade := 0; AcbrCobranca.Configuracoes.WebService.Operacao := tpConsulta; AcbrCobranca.Enviar; Retorno := AcbrCobranca.ListaConsultaRetornoWeb; if Retorno.Count > 0 then begin for I := 0 to Pred(Retorno.Count) do begin SLRetorno.Add('Codigo Estado Titulo Cobranca = ' + Retorno[I].DadosRet.TituloRet.codigoEstadoTituloCobranca); SLRetorno.Add('Estado Titulo Cobranca = ' + Retorno[I].DadosRet.TituloRet.estadoTituloCobranca); End; Eu não sei como saber: OcorrenciaOriginal.Tipo // da classe "TACBrTipoOcorrencia" Quando a leitura é por arquivo Remessa o componente faz algo assim: procedure TACBrBancoSantander.LerRetorno400(ARetorno: TStringList); Begin OcorrenciaOriginal.Tipo := CodOcorrenciaToTipo(StrToIntDef(copy(Linha,109,2),0)); No aquivo retorno WS tem o codigo: function TRetornoEnvio_Santander_API.RetornaCodigoOcorrencia(pSituacaoGeralBoleto: string) : String; var LSituacao : string; begin LSituacao := AnsiUpperCase(pSituacaoGeralBoleto); if (LSituacao = 'ATIVO') then Result := '02' else if (LSituacao = 'LIQUIDADO') then Result := '06' else if (LSituacao = 'BAIXADO') then Result := '09' else Result := '99'; end; porém esse codigo assima não refrete todos os tipos de ocorrencias da classe "TACBrTipoOcorrencia"
