Ir para conteúdo
  • Cadastre-se

dev botao

Retorno via API do Banco Inter sem resultado


Ver Solução Respondido por Aggille Sistemas de Gestão,
  • Este tópico foi criado há 638 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Pessoal, implementei o registro de boleto pelo banco Inter e estou conseguindo registrar os boletos normalmente, porém, nem pelo exemplo consigo obter retorno dos boletos via API, arquivo de retorno anexo.

E logo aqui esta o código que estou utilizando, lembrando que troquei o isbBaixado por isbAberto para testes mais não consigo retorno.

2023.02.06.12.56.53.449-RetornoConsulta.txt

procedure TfrmDemo.btnWSConsultaClick(Sender: TObject);
var
  FiltrosAPI : TACBrBoletoWSFiltroConsulta;
  Boleto : TACBrBoleto;
  SLRetorno : TStringList;
  Retorno : TListaACBrBoletoRetornoWS;
  I: Integer;
begin
  //Exemplo utilizando como Banco do Brasil API
  Boleto     := dm.ACBrBoleto;
  FiltrosAPI := Boleto.Configuracoes.WebService.Filtro;

  FiltrosAPI.Clear;
  FiltrosAPI.indicadorSituacao        := isbBaixado;
  FiltrosAPI.dataMovimento.DataInicio := IncDay(Date,-120);
  FiltrosAPI.dataMovimento.DataFinal  := IncDay(Date,+120);;
  //FiltrosAPI.indiceContinuidade       := 300;

  Boleto.Configuracoes.WebService.Operacao := tpConsulta;

  Boleto.Enviar;
  Retorno := Boleto.ListaConsultaRetornoWeb;
  if Retorno.Count > 0 then
  begin
    SLRetorno := TStringList.Create;
    try
      for I := 0 to Pred(Retorno.Count) do
      begin
      SLRetorno.Add('Cod_Retorno='+ Retorno[i].CodRetorno + sLineBreak +
                         'Msg_Retorno='+ Retorno[i].MsgRetorno + sLineBreak +
                         'Ori_Retorno='+ Retorno[i].OriRetorno + sLineBreak +
                         'HTTP_Result='+ IntToStr(Retorno[i].HTTPResultCode) + sLineBreak +
                         'JSON='+ Retorno[i].JSON);
      SLRetorno.Add('indicadorContinuidade=' + BoolToStr(Retorno[0].indicadorContinuidade));
      SLRetorno.Add('proximoIndice=' + IntToStr(Retorno[0].proximoIndice));
      SLRetorno.Add(' ');
      SLRetorno.Add(' ');

        SLRetorno.Add('[Boletos Index = '             + FormatFloat('000',I)+']');
        SLRetorno.Add('numeroBoletoBB = '             + Retorno[I].DadosRet.TituloRet.NossoNumero);
        SLRetorno.Add('dataRegistro = '               + DateToStr(Retorno[I].DadosRet.TituloRet.DataRegistro));
        SLRetorno.Add('dataVencimento = '             + DateToStr(Retorno[I].DadosRet.TituloRet.Vencimento));
        SLRetorno.Add('valorOriginal = '              + DateToStr(Retorno[I].DadosRet.TituloRet.ValorDocumento));
        SLRetorno.Add('carteiraConvenio = '           + Retorno[I].DadosRet.TituloRet.Carteira);
        SLRetorno.Add('variacaoCarteiraConvenio = '   + intToStr(Retorno[I].DadosRet.TituloRet.Modalidade));
        SLRetorno.Add('codigoEstadoTituloCobranca = ' + Retorno[I].DadosRet.TituloRet.codigoEstadoTituloCobranca);
        SLRetorno.Add('estadoTituloCobranca = '       + Retorno[I].DadosRet.TituloRet.estadoTituloCobranca);
        SLRetorno.Add('contrato = '                   + Retorno[I].DadosRet.TituloRet.Contrato);
        SLRetorno.Add('dataMovimento = '              + DateToStr(Retorno[I].DadosRet.TituloRet.dataMovimento));
        SLRetorno.Add('dataCredito = '                + DateToStr(Retorno[I].DadosRet.TituloRet.dataCredito));
        SLRetorno.Add('valorAtual = '                 + CurrToStr(Retorno[I].DadosRet.TituloRet.valorAtual));
        SLRetorno.Add('valorPago = '                  + CurrToStr(Retorno[I].DadosRet.TituloRet.ValorPago));
        SLRetorno.Add('  ---  ');
      end;
      SLRetorno.SaveToFile( PathWithDelim(ExtractFilePath(Application.ExeName))+formatDateTime('yyyy.mm.dd.hh.nn.ss.zzz',now)+'-RetornoConsulta.txt' );
    finally
      SLRetorno.Free;
    end;
  end;
  showMessage('Fim');
end;

 

Postado

ah: me peguei confuso com esse buscar hoje, da api nova... quando é filtrado por situacao pago, o filtro do campo datainicial e datafinal, é a data de pagamento...
Logo, tive que ajustar hoje em um cliente, para pegar data inicial - 7 e datafinal = date.

ou o seu ai, é caso de erro mesmo ?

 

Postado
21 minutos atrás, Antonio Gomes disse:

ah: me peguei confuso com esse buscar hoje, da api nova... quando é filtrado por situacao pago, o filtro do campo datainicial e datafinal, é a data de pagamento...
Logo, tive que ajustar hoje em um cliente, para pegar data inicial - 7 e datafinal = date.

ou o seu ai, é caso de erro mesmo ?

 

Cara testei de varias formas kkkkkk, com 7 com 30, data data de emissao, da data de pagamento, enfim, aqui fui até um pouco estúpido, mandei 120 dias rsrsrsrs

 

FiltrosAPI.Clear;
  FiltrosAPI.indicadorSituacao        := isbBaixado;
  FiltrosAPI.dataMovimento.DataInicio := IncDay(Date,-120);
  FiltrosAPI.dataMovimento.DataFinal  := IncDay(Date,+120);;
  //FiltrosAPI.indiceContinuidade       := 300;
  • Membros Pro
Postado
26 minutos atrás, Aggille Sistemas de Gestão disse:

tinha um erro na unit ACBrBoletoW_Inter_API;, nas linhas 265 e 266.. ali ele estava fazendo o filtro por Vencimento mas usando as datas de Movimento.. segue unit alterada..

ACBrBoletoW_Inter_API.pas 24.67 kB · 0 downloads

Passei pelo mesmo problema do amigo acima e resolvi fazendo as modificações na unit conforme o amigo @Aggille Sistemas de Gestão.

Agora funcionou perfeitamente.

Rodrigo Cardilo

Card System Info

[email protected]

Postado
5 horas atrás, Aggille Sistemas de Gestão disse:

tinha um erro na unit ACBrBoletoW_Inter_API;, nas linhas 265 e 266.. ali ele estava fazendo o filtro por Vencimento mas usando as datas de Movimento.. segue unit alterada..

ACBrBoletoW_Inter_API.pas 24.67 kB · 0 downloads

 

 

5 horas atrás, Rodrigo Cardilo disse:

Passei pelo mesmo problema do amigo acima e resolvi fazendo as modificações na unit conforme o amigo @Aggille Sistemas de Gestão.

Agora funcionou perfeitamente.

Boa tarde pessoal, usei a unit enviada mais acho que o grande lance era mudar no exemplo do acbr de 

  FiltrosAPI.indicadorSituacao        := isbAberto;
  FiltrosAPI.dataMovimento.DataInicio := IncDay(Date,-30);
  FiltrosAPI.dataMovimento.DataFinal  := incDay(Date+30);

para 

  FiltrosAPI.indicadorSituacao        := isbAberto;
  FiltrosAPI.dataVencimento.DataInicio := IncDay(Date,-30);
  FiltrosAPI.dataVencimento.DataFinal  := incDay(Date+30);

Pelo dataMovimento nunca há retorno nem mesmo pela unit alterada, mais em geral a ajuda de vocês foi fundamental, muito obrigado a todos.

  • Curtir 1
  • Solution
Postado

eu faço desta forma.. e vêm retorno em todos os fitros...

 

// em aberto por vencimento
  aFiltros[0] := TACBrBoletoWSFiltroConsulta.Create;
  aFiltros[0].Clear;
  aFiltros[0].indicadorSituacao   := TACBrIndicadorSituacaoBoleto.isbAberto;
  aFiltros[0].boletoVencido := ibvSim;
  aFiltros[0].dataVencimento.DataInicio := AInicio;
  aFiltros[0].dataVencimento.DataFinal  := AFinal;

  // em aberto por emissao
  aFiltros[1] := TACBrBoletoWSFiltroConsulta.Create;
  aFiltros[1].Clear;
  aFiltros[1].indicadorSituacao   := TACBrIndicadorSituacaoBoleto.isbAberto;
  aFiltros[1].dataRegistro.DataInicio := AInicio;
  aFiltros[1].dataRegistro.DataFinal  := aFinal;
  aFiltros[1].boletoVencido := ibvSim;

  // liquidados
  aFiltros[2] := TACBrBoletoWSFiltroConsulta.Create;
  aFiltros[2].Clear;
  aFiltros[2].indicadorSituacao   := TACBrIndicadorSituacaoBoleto.isbBaixado;
  aFiltros[2].dataMovimento.DataInicio := AInicio;
  aFiltros[2].dataMovimento.DataFinal  := AFinal;

  • Curtir 1

AGGILLE-LOGO-500x180_fw.jpg.07c79ceacf0537ee105c0bbf0139435f.jpg

Aggille Sistemas de Gestão
Leandro do Couto
(51) 99105.1600
Novo Hamburgo / RS
[email protected]
www.aggille.com.br

  • Membros Pro
Postado
Em 14/02/2023 at 07:50, Aggille Sistemas de Gestão disse:

eu faço desta forma.. e vêm retorno em todos os fitros...

 

// em aberto por vencimento
  aFiltros[0] := TACBrBoletoWSFiltroConsulta.Create;
  aFiltros[0].Clear;
  aFiltros[0].indicadorSituacao   := TACBrIndicadorSituacaoBoleto.isbAberto;
  aFiltros[0].boletoVencido := ibvSim;
  aFiltros[0].dataVencimento.DataInicio := AInicio;
  aFiltros[0].dataVencimento.DataFinal  := AFinal;

  // em aberto por emissao
  aFiltros[1] := TACBrBoletoWSFiltroConsulta.Create;
  aFiltros[1].Clear;
  aFiltros[1].indicadorSituacao   := TACBrIndicadorSituacaoBoleto.isbAberto;
  aFiltros[1].dataRegistro.DataInicio := AInicio;
  aFiltros[1].dataRegistro.DataFinal  := aFinal;
  aFiltros[1].boletoVencido := ibvSim;

  // liquidados
  aFiltros[2] := TACBrBoletoWSFiltroConsulta.Create;
  aFiltros[2].Clear;
  aFiltros[2].indicadorSituacao   := TACBrIndicadorSituacaoBoleto.isbBaixado;
  aFiltros[2].dataMovimento.DataInicio := AInicio;
  aFiltros[2].dataMovimento.DataFinal  := AFinal;

Também fiz dessa forma e funcionou muito bem.

@Luiz Carlos Panoni Junior o exemplo é somente para dar um norteio. O componente é bem flexível seguindo o padrão do Banco.

 

  • Curtir 1
  • Obrigado 1

Rodrigo Cardilo

Card System Info

[email protected]

  • Consultores
Postado
Em 13/02/2023 at 11:33, Aggille Sistemas de Gestão disse:

tinha um erro na unit ACBrBoletoW_Inter_API;, nas linhas 265 e 266.. ali ele estava fazendo o filtro por Vencimento mas usando as datas de Movimento.. segue unit alterada..

ACBrBoletoW_Inter_API.pas 24.67 kB · 3 downloads

TK-3629

  • Obrigado 1
Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

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

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 !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

  • 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

  • Obrigado 1
Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

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

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 !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

Postado
9 horas atrás, Victor H. Gonzales - Panda disse:

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

9 horas atrás, Victor H. Gonzales - Panda disse:

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

Olá Victor, obrigado a emissão e consulta esta OK mais continuo não conseguindo enviar instrução de juros e multas, por mais que saia no boleto impresso as informações não são enviadas para o banco e na consulta no Internet Banking do Inter aparece Isento de Juros e Multas

  • Consultores
Postado
13 horas atrás, Luiz Carlos Panoni Junior disse:

Olá Victor, obrigado a emissão e consulta esta OK mais continuo não conseguindo enviar instrução de juros e multas, por mais que saia no boleto impresso as informações não são enviadas para o banco e na consulta no Internet Banking do Inter aparece Isento de Juros e Multas

Bom dia,
 

ValorMoraJuros está maior que 0 ?

e qual o CodigoMoraJuros ou CodigoMora você está informando?

para estar indo isento, possivelmente está recebendo código 3, cjIsento

na multa tem que estar informado no percentualMulta > 0

caso o problema persista, abra um tópico novo por favor.

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

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

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 !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

  • Consultores
Postado

2.2 - Permaneça no assunto - Quando tiver uma dúvida diferente do assunto no tópico, poste em novo tópico. Não use algo equivalente a "aproveitando o gancho... [dúvida não relacionada com o tópico aqui]". Favor leia as regras do fórum.

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

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

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 !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

  • Este tópico foi criado há 638 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.