Ir para conteúdo
  • Cadastre-se

dev botao
  • Este tópico foi criado há 506 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado

Boa tarde.

Iniciei o desenvolvimento pra utilização do boleto online sicoob e durante o registro ocorreu tudo ok, o problema foi na hora de consultar os títulos registrados e principalmente os pagos.

Vi que atualmente o sicoob só tem a opção tpConsultaDetalhe, que necessita que seja passado os dados do boleto(nosso número ou linha digitável) para que seja verificado se o mesmo foi pago. O que se torna inviável na realidade de alguns dos meus clientes que podem ter milhares de títulos em aberto.

Analisei a API do sicoob e entrei em contato com o suporte do banco e vi que existe um endpoint que retorna a movimentação de um período X a Y, não é a melhor forma, mas é o que tem.

Sendo assim, solicito que seja adicionada a opção tpConsulta ao banco sicoob consumindo esses dados.

Abaixo tentarei ser o mais claro possível pra ajudar na implementação, em caso de dúvidas estou à disposição.

Link da documentação: https://developers.sicoob.com.br/portal/apis

1) Obter o access token na mesma URL de autenticação que já é utilizada pra emissão dos boletos. O diferencial é ter que adicionar esses 3 scopes(sugiro até editar o tópico principal dos boletos por WS adicionando estes):

- cobranca_boletos_solicitacao_movimentacao_incluir
- cobranca_boletos_solicitacao_movimentacao_consultar
- cobranca_boletos_solicitacao_movimentacao_download

2) POST em /boletos/solicitacoes/movimentacao passando o período e o tipo da movimentação

- Será retornado o "codigoSolicitacao"

3) GET em /boletos/solicitacoes/movimentacao passando o "codigoSolicitacao"

- Será retornado um array de idArquivos a depender da quantidade de registros do período

4) GET em /boletos/movimentacao-download passando o "codigoSolicitacao" e um "idArquivo" por vez

- Será retornado um BASE64 de um arquivo .ZIP, dentro desse arquivo .ZIP haverá um arquivo .json onde de fato serão apresentados os boletos do período e que deverá alimentar a "ListaConsultaRetornoWeb" do ACBrBoleto.

Abaixo um exemplo do conteúdo desse arquivo .json
 

[
   {
      "siglaMovimento":"LIQUI",
      "dataInicioMovimento":"2023-05-24T00:00:00-03:00",
      "dataFimMovimento":"2023-05-25T00:00:00-03:00",
      "numeroCliente":36307,
      "numeroContrato":36307,
      "modalidade":1,
      "numeroTitulo":39548,
      "seuNumero":"NFE 24274-1/1",
      "dataVencimentoTitulo":"2023-06-15T00:00:00-03:00",
      "valorTitulo":145.9300,
      "codigoBarras":"75691938200000145931517701003630700039548001",
      "dataMovimentoEntrada":"",
      "dataEmissaoDocumento":"",
      "dataLimitePagamento":"",
      "numeroContaCorrente":60151,
      "valorTarifaMovimento":2.0000,
      "dataMovimentoProrrogacao":"",
      "dataVencimentoAnterior":"",
      "valorAbatimento":0.0000,
      "dataMovimentoLiquidacao":"2023-05-24T00:00:00-03:00",
      "dataLiquidacao":"2023-05-24T00:00:00-03:00",
      "dataPrevisaoCredito":"2023-05-24T00:00:00-03:00",
      "numeroBancoRecebedor":1,
      "numeroAgenciaRecebedora":2256,
      "idTipoOpFinanceira":58,
      "valorDesconto":0.0000,
      "valorMora":0.0000,
      "valorLiquido":145.9300
   },
   {
      "siglaMovimento":"LIQUI",
      "dataInicioMovimento":"2023-05-24T00:00:00-03:00",
      "dataFimMovimento":"2023-05-25T00:00:00-03:00",
      "numeroCliente":36307,
      "numeroContrato":36307,
      "modalidade":1,
      "numeroTitulo":39451,
      "seuNumero":"NFE 24229-1/1",
      "dataVencimentoTitulo":"2023-05-23T00:00:00-03:00",
      "valorTitulo":68.7700,
      "codigoBarras":"75696935900000068771517701003630700039451001",
      "dataMovimentoEntrada":"",
      "dataEmissaoDocumento":"",
      "dataLimitePagamento":"",
      "numeroContaCorrente":60151,
      "valorTarifaMovimento":2.0000,
      "dataMovimentoProrrogacao":"",
      "dataVencimentoAnterior":"",
      "valorAbatimento":0.0000,
      "dataMovimentoLiquidacao":"2023-05-24T00:00:00-03:00",
      "dataLiquidacao":"2023-05-24T00:00:00-03:00",
      "dataPrevisaoCredito":"2023-05-24T00:00:00-03:00",
      "numeroBancoRecebedor":1,
      "numeroAgenciaRecebedora":2256,
      "idTipoOpFinanceira":58,
      "valorDesconto":0.0000,
      "valorMora":0.1100,
      "valorLiquido":68.8800
   }
]

 

Espero que tenha sido claro. Caso haja algo em inconformidade me avisem que corrigirei. Obrigado pela atenção.

  • Curtir 3
  • Membros Pro
Postado

Bom dia, também estou tentando , mas até agora sem sucesso, gerar este extrato dos boletos liquidados. De fato, nosso amigo colocou exatamente o que precisa ser feito. É feito em 3 etapas, quando fui tentar alterar a primeira etapa, para consegui o primeiro código não obtive êxito. 

Este é o scopo da primeira solitiação, fiz pelo postman e deu certinho.


image.thumb.png.cf6e3497a1b3e8b3bfa52674ec9e1b3f.png a

Ele retorna um código que é utilizado no segundo comando enviado:

image.thumb.png.311e771cd68bd9bcf48bced98d5dc564.png

Com este código recebido envia na terceira solicitação.

image.thumb.png.fd2ceac4476d78551ce936d3039bba7c.png

image.png.5ece5c35bc3ac38bd3e5d291a743310a.png

image.thumb.png.12d6ef087f38b24fffa501872fe9247f.png

O resultado final é este, um link em formato base64 que ao ser convertido se torna um jason com os titulos

image.thumb.png.d1737317ee87e2acd37bc6032beabcac.png

  • Membros Pro
Postado

Irei postar aqui as units que iniciei as alterações.

AcbrBoletoRet_Bancoob  - DefinirUrl 

If Boleto.Configuracoes.WebService.Operacao = tpConsulta then begin
     FPURL := FPURL + '/boletos/solicitacoes/movimentacao';
End;

Na mesa unit.
GerarDados
  tpConsulta:
      begin
        FMetodoHTTP := htPOST;
        RequisicaoMovimento;
      end;

Criei esta RequisicoesMovimento

procedure RequisicaoMovimento;
var
 Dtinicio : string;
begin
   FPDadosMsg := '{';
   FPDadosMsg := FPDadosMsg + '"numeroContrato": '+Boleto.Cedente.Convenio+',';
   FPDadosMsg := FPDadosMsg + '"tipoMovimento": 5,';
   FPDadosMsg := FPDadosMsg + '"dataInicial": "'+FormatDateBr(Boleto.Configuracoes.WebService.Filtro.dataMovimento.DataInicio,'YYYY-MM-DD')+ 'T00:00:00-03:00",';
   FPDadosMsg := FPDadosMsg + '"dataFinal": "'+FormatDateBr(Boleto.Configuracoes.WebService.Filtro.dataMovimento.DataFinal,'YYYY-MM-DD')+ 'T00:00:00-03:00"';
   FPDadosMsg := FPDadosMsg + '}';
end;

*Aqui eu já sai fora do padrão ACBR , mas deu certo desta forma, consegui chegar no primeiro codigo. Porém para pegar este retorno não consegiu.

  • Moderadores
Postado
Em 06/06/2023 at 09:55, tiautomacao disse:

Irei postar aqui as units que iniciei as alterações.

AcbrBoletoRet_Bancoob  - DefinirUrl 

If Boleto.Configuracoes.WebService.Operacao = tpConsulta then begin
     FPURL := FPURL + '/boletos/solicitacoes/movimentacao';
End;

Na mesa unit.
GerarDados
  tpConsulta:
      begin
        FMetodoHTTP := htPOST;
        RequisicaoMovimento;
      end;

Criei esta RequisicoesMovimento

procedure RequisicaoMovimento;
var
 Dtinicio : string;
begin
   FPDadosMsg := '{';
   FPDadosMsg := FPDadosMsg + '"numeroContrato": '+Boleto.Cedente.Convenio+',';
   FPDadosMsg := FPDadosMsg + '"tipoMovimento": 5,';
   FPDadosMsg := FPDadosMsg + '"dataInicial": "'+FormatDateBr(Boleto.Configuracoes.WebService.Filtro.dataMovimento.DataInicio,'YYYY-MM-DD')+ 'T00:00:00-03:00",';
   FPDadosMsg := FPDadosMsg + '"dataFinal": "'+FormatDateBr(Boleto.Configuracoes.WebService.Filtro.dataMovimento.DataFinal,'YYYY-MM-DD')+ 'T00:00:00-03:00"';
   FPDadosMsg := FPDadosMsg + '}';
end;

*Aqui eu já sai fora do padrão ACBR , mas deu certo desta forma, consegui chegar no primeiro codigo. Porém para pegar este retorno não consegiu.

Estou tentando ajustar isso para o ACBr pois estou utilizando o mesmo em produção já! se tiver novidades posto aqui e aviso o commit

  • Curtir 1
Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • 2 semanas depois ...
  • Consultores
Postado

podem enviar as credenciais por email?

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

Bom dia @ARConsultoria e @tiautomacao !
Infelizmente em nossos testes algumas requisições demoraram 15 minutos para serem concluídas.
Enquanto isso recebíamos a reposta “Solicitação ainda em processamento”.

Screenshot_92.png

Screenshot_103.png


Nosso amigo @tiautomacao falou com o banco e recebemos a reposta:
 

"INFORMAÇÃO IMPORTANTE:
Conversei com nossa gerente financeira agora e ela disse assim:
1-Se no dia do Registro ela pedir o arquivo de boletos baixados, demora 20 minutos ou mais, (pelo site)
2-Se for em outros dias, que ela não registra nada, demorar entre 10 e 15 minutos para liberar o arquivo.
Então, a API demorar 15 minutos está super normal. Está dentro da normalidade viu."

Como o componente não pode ficar aguardando 15 minutos uma reposta, fica inviável implementar esta consulta.

Neste caso sugerimos tratar o retorno via arquivo CNAB.

  • Obrigado 2
Consultor SAC ACBr

Daniel de Morais (Infocotidiano)
Ajude o Projeto ACBr crescer - Assine o SAC

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

  • Consultores
Postado

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

Consultor SAC ACBr

Alexandre de Paula
Ajude o Projeto ACBr crescer - Assine o SAC                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

 

 

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