Ir para conteúdo
  • Cadastre-se

Retorno via API do Banco Inter sem resultado


Ver Solução Respondido por Aggille Sistemas de Gestão,
  • Este tópico foi criado há 1236 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;
  • Membro Pro Verificado
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
  • Membros Pro
  • 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

  • Membro Pro Verificado
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á 1236 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.

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