Ir para conteúdo
  • Cadastre-se

dev botao

Alteração de boleto Sicoob - ValorAbatimento


Ver Solução Respondido por BigWings,

Recommended Posts

  • Membros Pro
Postado

Prezados,

Estou realizado a implementação do boleto via WS, mais precisamente Sicoob. O processo de registro está OK.
No entanto estou precisando realizar alteração no boleto já registrado. A informação que desejo alterar é o "ValorAbatimento".

A informações de retorno (já tratadas) esta abaixo: 
Informações de Retorno
   Código Retorno.....: 400
   Mensagem Retorno...: Bad Request
   JSON...............: {"mensagens":[{"mensagem":"Preencha um dos campos para alteração.","codigo":"5002"}]}
   Código Rejeição....: 5002
   Mensagem Rejeição..: Preencha um dos campos para alteração.

Abaixo segue o log do ACBR com a sequencia de comandos:
11/02/25 15:12:48:608 - Autenticando Token... 
11/02/25 15:12:48:608 - Comando Enviar: TOAuth
11/02/25 15:12:48:623 - URL: [POST] https://auth.sicoob.com.br/auth/realms/cooperado/protocol/openid-connect/token
11/02/25 15:12:49:045 - Validade: 11/02/2025 15:17:49
11/02/25 15:12:49:045 - Comando Enviar: TBoletoW_Sicoob_V3
11/02/25 15:12:49:076 - Comando Enviar: {"numeroCliente":95818,"codigoModalidade":1}
11/02/25 15:12:49:076 - URL: [PATCH] https://api.sicoob.com.br/cobranca-bancaria/v3/boletos/237916
11/02/25 15:12:49:482 - Retorno Envio: TBoletoW_Sicoob_V3
11/02/25 15:12:49:482 - Código do Envio: 400 1.1 Bad Request

Informações do boleto configurado no componente:
Vencimento       : 05/03/2025
DataDocumento    : 10/02/2025
NumeroDocumento  : 10-02-2025/2
Carteira         : 1
NossoNumero      : 0023791
ValorDocumento   : 0,5
ValorDesconto    : 0
ValorMoraJuros   : 6
ValorAbatimento  : 0,25
DataAbatimento   : 04/04/2025

Configuracoes do componente ACBR:
Banco.Numero                          : 756
Banco.TamanhoMaximoNossoNum          : 7
Banco.TipoCobranca                      : cobBancoob
Banco.LayoutVersaoArquivo              : 81
Banco.LayoutVersaoLote                  : 40
Cedente.CodigoCedente                  : 95818
Cedente.Agencia                      : 3008
Cedente.AgenciaDigito                  : 0
Cedente.Conta                          : 000000056566
Cedente.ContaDigito                  : 0
Cedente.Modalidade                      : 1
Cedente.Convenio                      : 95818
Cedente.TipoCarteira                  : tctRegistrada
Cedente.CedenteWS.ClientID              : b21453e9-571d-4fe3-a164-1cb46b98853e
Cedente.CedenteWS.ClientSecret          : b21453e9-571d-4fe3-a164-1cb46b98853e
Cedente.CedenteWS.Scope              : boletos_inclusao boletos_consulta boletos_alteracao webhooks_alteracao'
Cedente.CedenteWS.IndicadorPix          : True
Cedente.PIX.TipoChavePIX              : tchNenhuma
LayoutRemessa                          : c240
Configuracoes.Arquivos.LogNivel         : logNormal
Configuracoes.WebService.SSLCryptLib : cryOpenSSL
Configuracoes.WebService.SSLHttpLib     : httpOpenSSL
Configuracoes.WebService.SSLDgst      : dgstMD5
Configuracoes.WebService.TimeOut      : 30000
Configuracoes.WebService.Ambiente      : tawsProducao
Configuracoes.WebService.Operacao      : tpAltera
Configuracoes.WebService.VersaoDF      : 'V3'

  • Consultores
Postado
1 hora atrás, Sistema Auditor disse:

No entanto estou precisando realizar alteração no boleto já registrado. A informação que desejo alterar é o "ValorAbatimento".

Mensagem Rejeição..: Preencha um dos campos para alteração.

Vamos la, como vc esta fazendo esta alteração ?
Observe q o tipo de ocorrencia, vc precisa passar toRemessaAlterarVencimento
e alimentar o titulo com os dados iguais o que vc registrou o boleto, mas informando no campo vencimento a nova data.
Quando for enviar API , vc precisa utilizar tpAltera

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

  • Membros Pro
Postado

Daniel, no nosso caso, o problema não estava no campo "data de vencimento", mas sim no campo "Valor Abatimento". No entanto, conseguimos resolver isso no escopo "tpAltera".

Tínhamos também outro problema no escopo "tpInclui", relacionado ao campo "Valor Abatimento". Após ajustes no código, conseguimos enviar o registro do boleto com o valor de abatimento corretamente.

Gostaria de saber como podemos enviar essa alteração para avaliação de vocês. Posso fazer isso por aqui mesmo ou é necessário outro meio?

  • 2 semanas depois ...
  • Moderadores
Postado
Em 11/02/2025 at 14:45, Sistema Auditor disse:

Estou realizado a implementação do boleto via WS, mais precisamente Sicoob. O processo de registro está OK.
No entanto estou precisando realizar alteração no boleto já registrado. A informação que desejo alterar é o "ValorAbatimento".

Analisando o código que anexou, entendi que o teu problema é no registro de boleto já com valor de abatimento, correto?

Porque testando o código atual, a alteração do abatimento está enviando correto.

Com o teu código me pareceu que vai passar a funcionar o registro com abatimento, e vai deixar de funcionar a alteração, por causa da diferença de layout do json de envio.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

  • Membros Pro
Postado
Em 28/02/2025 at 16:42, BigWings disse:

Analisando o código que anexou, entendi que o teu problema é no registro de boleto já com valor de abatimento, correto?

Porque testando o código atual, a alteração do abatimento está enviando correto.

Com o teu código me pareceu que vai passar a funcionar o registro com abatimento, e vai deixar de funcionar a alteração, por causa da diferença de layout do json de envio.

Estamos realizando alguns testes e logo te responderemos com exatidão.

  • 2 semanas depois ...
  • Membros Pro
Postado

Sua observação está correta. O ajuste gerado provocou uma diferença no JSON de envio fazendo com que a alteração deixasse de funcionar.

Realizado novos ajustes e após os testes, ambos os processos funcionaram corretamente.

Segue ajuste realizado na unit "ACBrBoletoW_Sicoob_V3":

procedure TBoletoW_Sicoob_V3.AtribuirAbatimento(AJson: TACBrJSONObject);
var
  LJsonAbatimento : TACBrJSONObject;
begin
  if not Assigned(ATitulo) or not Assigned(AJson) then
    Exit;

  if (ATitulo.ValorAbatimento = 0) then
    Exit;

  if  Boleto.Configuracoes.WebService.Operacao = tpAltera then
    begin
    LJsonAbatimento := TACBrJSONObject.Create;
    LJsonAbatimento.AddPair('valorAbatimento',aTitulo.ValorAbatimento);
    AJson.AddPair('abatimento',LJsonAbatimento);
    end
  else 
    AJson.AddPair('valorAbatimento',aTitulo.ValorAbatimento);
end;


 

ACBrBoletoW_Sicoob_V3.pas

  • Moderadores
  • Solution
Postado

Enviei para o SVN, rev. 37982, uma correção, implementada de um modo um pouco diferente da sua.

Favor fazer cópia do teu fonte atual, e atualizar com os do SVN, e fazer os testes.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

  • Membros Pro
Postado

Em conformidade com os testes realizados, as alterações implementadas apresentaram o efeito esperado. Dessa forma, considero este tópico finalizado.  

Agradeço pela atenção dispensada.  

Atenciosamente,  
Douglas Miiller
Analista de Implantação/Suporte  
Sistema Auditor  
[www.sistemaauditor.com.br]

  • Curtir 2
  • 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

 

 

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