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.