Consultores Daniel InfoCotidiano Posted September 17 Consultores Share Posted September 17 Agora o SICOOB V3 está implementada a consulta de movimentação. Para consulta de boletos em lista do Sicoob é necessário seguir 03 (três) passos: Solicitar a movimentação da carteira de cobrança registrada para beneficiário informado (As consultas estão limitadas em um período máximo de 2 dias); A API vai retornar o códigoSolicitação na propriedade NossoNumeroCorrespondente; Consultar a situação da solicitação da movimentação para saber se está disponível para download. Se estiver ele vai retornar os números arquivos disponível. (pode ser mais de um arquivo base64); Download e extração do(s) arquivo(s) de movimentação (a solução ACBr ja realiza o download e a descompactação internamente) e realiza leitura do retorno do arquivo e devolve a resposta padrão igual as outras API's; Vamos aos exemplos, como fazer (vou separar abaixo por tipo de Solução para ficar mais organizado): Se você utiliza componentes (Delphi ou Lazarus), clique aqui; Se você utiliza ACBrLibBoleto, clique aqui; Se você utiliza ACBrMonitor, clique aqui; Gostaria de agradecer o usuário @Rafaelbudag, que criou colaborou com a implementação inicial, realizamos alguns ajustes para compatibilizar com a versão V3 do Sicoob e com algumas propriedades já existentes em nossa solução. Obrigado também ao usuário @Microsys Sistemas por fornecer as credenciais de produção V3 para testes da consulta de movimentação, já que ambiente sandbox não é fiel a produção. *Em breve será disponibilizado vídeo exemplificando esta consulta em nosso portal de cursos* 2 Daniel de Morais (Infocotidiano) Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord Link to comment Share on other sites More sharing options...
Consultores Daniel InfoCotidiano Posted September 17 Author Consultores Share Posted September 17 Exemplo Componentes (Delphi e Lazarus) Solicitar a movimentação da carteira de cobrança registrada para beneficiário informado; Alimentar um titulo para que o componente pegue alguns parâmetros como contrato, cedente (valor pode estar zerado) Na consulta, passar os parâmetros: FACBrBoleto.Configuracoes.WebService.Filtro.Clear; FACBrBoleto.Configuracoes.WebService.Filtro.indicadorSituacao := isbBaixado; FACBrBoleto.Configuracoes.WebService.Filtro.dataMovimento.DataInicio := StrToDate('07/09/2024'); FACBrBoleto.Configuracoes.WebService.Filtro.dataMovimento.DataFinal := StrToDate('09/09/2024'); FACBrBoleto.Configuracoes.WebService.Filtro.indiceContinuidade := 0; Atenção, o envio das consultas deve ser realizado pelo parâmetro: TpConsulta Boleto.Configuracoes.WebService.Operacao := tpConsulta; Esta consulta vai te retornar o código da solicitação na propriedade NossoNumeroCorrespondente: Msg_Retorno=Solicitação recebida com sucesso. Utilize o 'Código da Solicitação' para verificar se já foi processada. Ori_Retorno= HTTP_Result=200 ... NossoNumeroCorrespondente = 28505038 Consultar a situação da solicitação da movimentação Alimentar um titulo para que o componente pegue alguns parâmetros como contrato, cedente (valor pode estar zerado) Na consulta, passar os parâmetros: CodigoSolicitacaoConsultaMovimentacao (numero devolvido na consulta anterior na propriedade NossoNumeroCorrespondente) FACBrBoleto.Configuracoes.WebService.Filtro.Clear; FACBrBoleto.Configuracoes.WebService.Filtro.indicadorSituacao := isbBaixado; FACBrBoleto.Configuracoes.WebService.Filtro.dataMovimento.DataInicio := StrToDate('07/09/2024'); FACBrBoleto.Configuracoes.WebService.Filtro.dataMovimento.DataFinal := StrToDate('09/09/2024'); FACBrBoleto.Configuracoes.WebService.Filtro.indiceContinuidade := 0; FACBrBoleto.Configuracoes.WebService.Filtro.NumeroProtocolo := 28505038; Esta consulta vai te retornar a lista Lista de arquivos de movimentação disponíveis para Download na propriedade: NossoNumeroCorrespondente No exemplo abaixo, observe que temos 2 ID de arquivos disponiveis dentro da lista de Boletos: [Boletos Index = 000] e [Boletos Index = 001] : Cod_Retorno= Msg_Retorno=-Quantidade de arquivos :2 Ori_Retorno= HTTP_Result=200 JSON= indicadorContinuidade=0 proximoIndice=0 [Boletos Index = 000] numeroBoleto = SeuNumero = dataRegistro = 30/12/1899 dataVencimento = 30/12/1899 NossoNumeroCorrespondente = 11694670 DataBaixa = 30/12/1899 [Boletos Index = 001] numeroBoleto = SeuNumero = dataRegistro = 30/12/1899 dataVencimento = 30/12/1899 NossoNumeroCorrespondente = 11694671 DataBaixa = 30/12/1899 Download e Leitura do(s) arquivo(s) de movimentação. Alimentar um titulo para que o componente pegue alguns parâmetros como contrato, cedente (valor pode estar zerado) Na consulta, passar os parâmetros: CodigoSolicitacaoConsultaMovimentacao (numero devolvido na primeira consulta na propriedade NossoNumeroCorrespondente) IDArquivoSolicitacaoConsultaMovimentacao (numero devolvido na consulta anterior devolvido na propriedade ListaArquivosConsultaMovimentacao *Lembrando que é necessário realizar uma consulta para cada IdArquivo da lista de consulta. FACBrBoleto.Configuracoes.WebService.Filtro.Clear; FACBrBoleto.Configuracoes.WebService.Filtro.indicadorSituacao := isbBaixado; FACBrBoleto.Configuracoes.WebService.Filtro.dataMovimento.DataInicio := StrToDate('07/09/2024'); FACBrBoleto.Configuracoes.WebService.Filtro.dataMovimento.DataFinal := StrToDate('09/09/2024'); FACBrBoleto.Configuracoes.WebService.Filtro.indiceContinuidade := 0; FACBrBoleto.Configuracoes.WebService.Filtro.NumeroProtocolo := 28505038; FACBrBoleto.Configuracoes.WebService.Filtro.Identificador := 11694670; Esta consulta vai fazer o download do arquivo de movimentação com id (11589536) e tratar automaticamente este arquivo, devolvendo como uma resposta padrão das consultas API; Filtro de Consultas Disponíveis: O Sicoob disponibiliza algumas consultas por tipo de movimento: Entrada, Prorrogação, A Vencer, Vencido, Liquidação e Baixa Exemplo de filtros de movimento na consulta: Entrada: Observe que além do IndicadorSituacao, passamos o filtro boleto vencido como ibvNenhum: FACBrBoleto.Configuracoes.WebService.Filtro.Clear; FACBrBoleto.Configuracoes.WebService.Filtro.indicadorSituacao := isbAberto; FACBrBoleto.Configuracoes.WebService.Filtro.boletoVencido := ibvNenhum; FACBrBoleto.Configuracoes.WebService.Filtro.dataMovimento.DataInicio := StrToDate('07/09/2024'); FACBrBoleto.Configuracoes.WebService.Filtro.dataMovimento.DataFinal := StrToDate('09/09/2024'); FACBrBoleto.Configuracoes.WebService.Filtro.indiceContinuidade := 0; A Vencer: Observe que além do IndicadorSituacao, passamos o filtro boleto vencido como ibvNao: FACBrBoleto.Configuracoes.WebService.Filtro.Clear; FACBrBoleto.Configuracoes.WebService.Filtro.indicadorSituacao := isbAberto; FACBrBoleto.Configuracoes.WebService.Filtro.boletoVencido := ibvNao; FACBrBoleto.Configuracoes.WebService.Filtro.dataMovimento.DataInicio := StrToDate('07/09/2024'); FACBrBoleto.Configuracoes.WebService.Filtro.dataMovimento.DataFinal := StrToDate('09/09/2024'); FACBrBoleto.Configuracoes.WebService.Filtro.indiceContinuidade := 0; Vencido Observe que além do IndicadorSituacao, passamos o filtro boleto vencido como ibvSim: FACBrBoleto.Configuracoes.WebService.Filtro.Clear; FACBrBoleto.Configuracoes.WebService.Filtro.indicadorSituacao := isbAberto; FACBrBoleto.Configuracoes.WebService.Filtro.boletoVencido := ibvSim; FACBrBoleto.Configuracoes.WebService.Filtro.dataMovimento.DataInicio := StrToDate('07/09/2024'); FACBrBoleto.Configuracoes.WebService.Filtro.dataMovimento.DataFinal := StrToDate('09/09/2024'); FACBrBoleto.Configuracoes.WebService.Filtro.indiceContinuidade := 0; Liquidados FACBrBoleto.Configuracoes.WebService.Filtro.Clear; FACBrBoleto.Configuracoes.WebService.Filtro.indicadorSituacao := isbBaixado; FACBrBoleto.Configuracoes.WebService.Filtro.dataMovimento.DataInicio := StrToDate('07/09/2024'); FACBrBoleto.Configuracoes.WebService.Filtro.dataMovimento.DataFinal := StrToDate('09/09/2024'); FACBrBoleto.Configuracoes.WebService.Filtro.indiceContinuidade := 0; Baixados FACBrBoleto.Configuracoes.WebService.Filtro.Clear; FACBrBoleto.Configuracoes.WebService.Filtro.indicadorSituacao := isbCancelado; FACBrBoleto.Configuracoes.WebService.Filtro.dataMovimento.DataInicio := StrToDate('07/09/2024'); FACBrBoleto.Configuracoes.WebService.Filtro.dataMovimento.DataFinal := StrToDate('09/09/2024'); FACBrBoleto.Configuracoes.WebService.Filtro.indiceContinuidade := 0; 1 Daniel de Morais (Infocotidiano) Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord Link to comment Share on other sites More sharing options...
Consultores Daniel InfoCotidiano Posted September 18 Author Consultores Share Posted September 18 Exemplo ACBrLibBoleto Solicitar a movimentação da carteira de cobrança registrada para beneficiário informado; Alimentar um titulo para que o componente pegue alguns parâmetros como contrato, cedente (valor pode estar zerado) Na consulta, passar os parâmetros no arquivo INI: [ConsultaAPI] IndicadorSituacaoBoleto=1 DataInicioMovimento=07/09/2024 DataFinalMovimento=09/09/2024 indiceContinuidade=0 Atenção, o envio das consultas deve ser realizado pelo parâmetro: TpConsulta Boleto.Configuracoes.WebService.Operacao := tpConsulta; Esta consulta vai te retornar o código da solicitação na propriedade NossoNumeroCorrespondente: Msg_Retorno=Solicitação recebida com sucesso. Utilize o 'Código da Solicitação' para verificar se já foi processada. Ori_Retorno= HTTP_Result=200 ... NossoNumeroCorrespondente = 28505038 Consultar a situação da solicitação da movimentação Alimentar um titulo para que o componente pegue alguns parâmetros como contrato, cedente (valor pode estar zerado) Na consulta, passar os parâmetros: CodigoSolicitacaoConsultaMovimentacao (numero devolvido na consulta anterior na propriedade NossoNumeroCorrespondente) [ConsultaAPI] IndicadorSituacaoBoleto=1 DataInicioMovimento=07/09/2024 DataFinalMovimento=09/09/2024 indiceContinuidade=0 NumeroProtocolo=28505038 Esta consulta vai te retornar a lista Lista de arquivos de movimentação disponíveis para Download na propriedade: NossoNumeroCorrespondente No exemplo abaixo, observe que temos 2 ID de arquivos disponíveis dentro da lista de Boletos: [Boletos Index = 000] e [Boletos Index = 001] : Cod_Retorno= Msg_Retorno=-Quantidade de arquivos :2 Ori_Retorno= HTTP_Result=200 JSON= indicadorContinuidade=0 proximoIndice=0 [Boletos Index = 000] numeroBoleto = SeuNumero = dataRegistro = 30/12/1899 dataVencimento = 30/12/1899 NossoNumeroCorrespondente = 11694670 DataBaixa = 30/12/1899 [Boletos Index = 001] numeroBoleto = SeuNumero = dataRegistro = 30/12/1899 dataVencimento = 30/12/1899 NossoNumeroCorrespondente = 11694671 DataBaixa = 30/12/1899 Download e Leitura do(s) arquivo(s) de movimentação. Alimentar um titulo para que o componente pegue alguns parâmetros como contrato, cedente (valor pode estar zerado) Na consulta, passar os parâmetros: CodigoSolicitacaoConsultaMovimentacao (numero devolvido na primeira consulta na propriedade NossoNumeroCorrespondente) IDArquivoSolicitacaoConsultaMovimentacao (numero devolvido na consulta anterior devolvido na propriedade ListaArquivosConsultaMovimentacao *Lembrando que é necessário realizar uma consulta para cada IdArquivo da lista de consulta. [ConsultaAPI] IndicadorSituacaoBoleto=1 DataInicioMovimento=07/09/2024 DataFinalMovimento=09/09/2024 indiceContinuidade=0 NumeroProtocolo=28505038 Identificador=11694671 Esta consulta vai fazer o download do arquivo de movimentação com id (11589536) e tratar automaticamente este arquivo, devolvendo como uma resposta padrão das consultas API; Filtro de Consultas Disponíveis: O Sicoob disponibiliza algumas consultas por tipo de movimento: Entrada, Prorrogação, A Vencer, Vencido, Liquidação e Baixa Exemplo de filtros de movimento na consulta: Entrada: Observe que além do IndicadorSituacao 1 (Aberto) , passamos o filtro boletoVencido como 0 (Nenhum): [ConsultaAPI] IndicadorSituacaoBoleto=1 boletoVencido=0 DataInicioMovimento=07/09/2024 DataFinalMovimento=09/09/2024 indiceContinuidade=0 A Vencer: Observe que além do IndicadorSituacao 1 (Aberto) , passamos o filtro boletoVencido como 1 (Não): [ConsultaAPI] IndicadorSituacaoBoleto=1 boletoVencido=1 DataInicioMovimento=07/09/2024 DataFinalMovimento=09/09/2024 indiceContinuidade=0 Vencido Observe que além do IndicadorSituacao 1 (Aberto) , passamos o filtro boletoVencido como 2 (Sim): [ConsultaAPI] IndicadorSituacaoBoleto=1 boletoVencido=2 DataInicioMovimento=07/09/2024 DataFinalMovimento=09/09/2024 indiceContinuidade=0 Liquidados Observe o IndicadorSituacao 2 (Baixado): [ConsultaAPI] IndicadorSituacaoBoleto=2 DataInicioMovimento=07/09/2024 DataFinalMovimento=09/09/2024 indiceContinuidade=0 Baixados Observe o IndicadorSituacao 3 (Cancelado): [ConsultaAPI] IndicadorSituacaoBoleto=3 DataInicioMovimento=07/09/2024 DataFinalMovimento=09/09/2024 indiceContinuidade=0 1 Daniel de Morais (Infocotidiano) Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord Link to comment Share on other sites More sharing options...
Consultores Daniel InfoCotidiano Posted September 18 Author Consultores Share Posted September 18 Exemplo ACBrMonitorPlus Solicitar a movimentação da carteira de cobrança registrada para beneficiário informado; Alimentar um titulo para que o componente pegue alguns parâmetros como contrato, cedente (valor pode estar zerado) Na consulta, passar os parâmetros no arquivo INI: BOLETO.ConsultarTitulosPorPeriodo("[ConsultaAPI] IndicadorSituacaoBoleto=1 DataInicioMovimento=07/09/2024 DataFinalMovimento=09/09/2024 indiceContinuidade=0") Atenção, o envio das consultas deve ser realizado pelo parâmetro: TpConsulta Boleto.Configuracoes.WebService.Operacao := tpConsulta; Esta consulta vai te retornar o código da solicitação na propriedade NossoNumeroCorrespondente: Msg_Retorno=Solicitação recebida com sucesso. Utilize o 'Código da Solicitação' para verificar se já foi processada. Ori_Retorno= HTTP_Result=200 ... NossoNumeroCorrespondente = 28505038 Consultar a situação da solicitação da movimentação Alimentar um titulo para que o componente pegue alguns parâmetros como contrato, cedente (valor pode estar zerado) Na consulta, passar os parâmetros: CodigoSolicitacaoConsultaMovimentacao (numero devolvido na consulta anterior na propriedade NossoNumeroCorrespondente) BOLETO.ConsultarTitulosPorPeriodo("[ConsultaAPI] IndicadorSituacaoBoleto=1 DataInicioMovimento=07/09/2024 DataFinalMovimento=09/09/2024 indiceContinuidade=0 NumeroProtocolo=28505038") Esta consulta vai te retornar a lista Lista de arquivos de movimentação disponíveis para Download na propriedade: NossoNumeroCorrespondente No exemplo abaixo, observe que temos 2 ID de arquivos disponiveis dentro da lista de Boletos: [Boletos Index = 000] e [Boletos Index = 001] : Cod_Retorno= Msg_Retorno=-Quantidade de arquivos :2 Ori_Retorno= HTTP_Result=200 JSON= indicadorContinuidade=0 proximoIndice=0 [Boletos Index = 000] numeroBoleto = SeuNumero = dataRegistro = 30/12/1899 dataVencimento = 30/12/1899 NossoNumeroCorrespondente = 11694670 DataBaixa = 30/12/1899 [Boletos Index = 001] numeroBoleto = SeuNumero = dataRegistro = 30/12/1899 dataVencimento = 30/12/1899 NossoNumeroCorrespondente = 11694671 DataBaixa = 30/12/1899 Download e Leitura do(s) arquivo(s) de movimentação. Alimentar um titulo para que o componente pegue alguns parâmetros como contrato, cedente (valor pode estar zerado) Na consulta, passar os parâmetros: CodigoSolicitacaoConsultaMovimentacao (numero devolvido na primeira consulta na propriedade NossoNumeroCorrespondente) IDArquivoSolicitacaoConsultaMovimentacao (numero devolvido na consulta anterior devolvido na propriedade ListaArquivosConsultaMovimentacao *Lembrando que é necessário realizar uma consulta para cada IdArquivo da lista de consulta. BOLETO.ConsultarTitulosPorPeriodo("[ConsultaAPI] IndicadorSituacaoBoleto=1 DataInicioMovimento=07/09/2024 DataFinalMovimento=09/09/2024 indiceContinuidade=0 NumeroProtocolo=28505038 Identificador=11694671") Esta consulta vai fazer o download do arquivo de movimentação com id (11589536) e tratar automaticamente este arquivo, devolvendo como uma resposta padrão das consultas API; Filtro de Consultas Disponíveis: O Sicoob disponibiliza algumas consultas por tipo de movimento: Entrada, Prorrogação, A Vencer, Vencido, Liquidação e Baixa Exemplo de filtros de movimento na consulta: Entrada: Observe que além do IndicadorSituacao 1 (Aberto) , passamos o filtro boletoVencido como 0 (Nenhum): BOLETO.ConsultarTitulosPorPeriodo("[ConsultaAPI] IndicadorSituacaoBoleto=1 boletoVencido=0 DataInicioMovimento=07/09/2024 DataFinalMovimento=09/09/2024 indiceContinuidade=0") A Vencer: Observe que além do IndicadorSituacao 1 (Aberto) , passamos o filtro boletoVencido como 1 (Não): BOLETO.ConsultarTitulosPorPeriodo("[ConsultaAPI] IndicadorSituacaoBoleto=1 boletoVencido=1 DataInicioMovimento=07/09/2024 DataFinalMovimento=09/09/2024 indiceContinuidade=0") Vencido Observe que além do IndicadorSituacao 1 (Aberto) , passamos o filtro boletoVencido como 2 (Sim): BOLETO.ConsultarTitulosPorPeriodo("[ConsultaAPI] IndicadorSituacaoBoleto=1 boletoVencido=2 DataInicioMovimento=07/09/2024 DataFinalMovimento=09/09/2024 indiceContinuidade=0") Liquidados Observe o IndicadorSituacao 2 (Baixado): BOLETO.ConsultarTitulosPorPeriodo("[ConsultaAPI] IndicadorSituacaoBoleto=2 DataInicioMovimento=07/09/2024 DataFinalMovimento=09/09/2024 indiceContinuidade=0") Baixados Observe o IndicadorSituacao 3 (Cancelado): BOLETO.ConsultarTitulosPorPeriodo("[ConsultaAPI] IndicadorSituacaoBoleto=3 DataInicioMovimento=07/09/2024 DataFinalMovimento=09/09/2024 indiceContinuidade=0") 3 Daniel de Morais (Infocotidiano) Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord Link to comment Share on other sites More sharing options...
Recommended Posts