Ir para conteúdo
  • Cadastre-se

dev botao

Erro "HTTP_Code=400 Erro=Invalid client credentials" para API Boleto do Sicoob


Ver Solução Respondido por SisMaster Sistemas,

Recommended Posts

  • Membros Pro
Postado

Olá, bom dia a todos

Estou iniciando agora a implementação da API de Boletos em meu ERP e não tenho experiência alguma com o componente do ACBr da API, por isso já peço desculpas se alguma pergunta for muito óbvia.

Li bastante a documentação do Sicoob (apesar de algumas coisas eu não ter entendido pela falta de experiência com isso antes) e vi diversos tópicos aqui do forum com duvidas de outros usuários para tentar implementar o básico no Demo ACBrBoleto para eu experimentar a API já em produção para, depois, implementar tudo em meu ERP, mas estou "travado" no erro "400". Parece que minhas credenciais não estão corretas, mas não consigo imaginar o que possa ser. O erro apontado no log é esse:

HTTP_Code=400 Erro=Invalid client credentials

Eu deixei o Demo ACBR setado da seguinte maneira:

image.thumb.png.362381369d12c23c1b287ea5c08b05a7.png

já no botão de Registrar Boleto On Line, baseado em outros usuários aqui que tiveram erros parecidos com os que eu estava tendo, ficou assim:

  Boleto := FACBrBoleto;

  //Função de Envio
  Boleto.Configuracoes.WebService.Operacao := tpInclui;

  Boleto.Configuracoes.WebService.Ambiente := tawsProducao;
  Boleto.Configuracoes.WebService.ArquivoCRT := 'C:\Temp\OpenSSL\certificado.pem';
  Boleto.Configuracoes.WebService.ArquivoKEY := 'C:\Temp\OpenSSL\certificado.key';
  Boleto.Configuracoes.WebService.Senha := '*****'; // aqui coloquei a senha correta
  Boleto.Configuracoes.WebService.VersaoDF := '';
  Boleto.Cedente.CedenteWS.KeyUser := '';

//  Boleto.Cedente.CedenteWS.IndicadorPix    := True; //para boleto híbrido
  Boleto.Configuracoes.WebService.SSLCryptLib        := cryOpenSSL;
  Boleto.Configuracoes.WebService.SSLHTTPLib         := httpOpenSSL;
  Boleto.Configuracoes.WebService.SSLType            := LT_TLSv1_2;
  Boleto.Configuracoes.WebService.TimeOut            := 30000;
  Boleto.Configuracoes.WebService.UseCertificateHTTP := True;

  Boleto.Enviar; // <<< retorna como false se o httpresult code for diferente de 200,201,202
  //Verifica Lista com os retornos


  
Para que alguém possa nos ajudar, posso disponibilizar o "AcbrBoletoDemo.ini", mas não sei se posso fazer isso aqui pois contém os dados da minha empresa.

Também posso disponibilizar o log completo de erro, apesar que acho que ele não irá ajudar muito nisso. Aqui está o último trecho:

25/11/24 11:12:30:490 - URL: [POST] https://auth.sicoob.com.br/auth/realms/cooperado/protocol/openid-connect/token
25/11/24 11:12:30:734 - Erro: HTTP_Code=400 Erro=Invalid client credentials
25/11/24 11:12:33:275 - Falha Envio: Falha na Autenticação: HTTP_Code=400 Erro=Invalid client credentials
25/11/24 11:14:02:667 - Autenticando Token... 
25/11/24 11:14:02:668 - Comando Enviar: TOAuth
25/11/24 11:14:02:690 - URL: [POST] https://auth.sicoob.com.br/auth/realms/cooperado/protocol/openid-connect/token
25/11/24 11:14:03:738 - Erro: HTTP_Code=400 Erro=Invalid client credentials
25/11/24 11:14:08:962 - Falha Envio: Falha na Autenticação: HTTP_Code=400 Erro=Invalid client credentials
25/11/24 11:31:41:894 - Autenticando Token... 
25/11/24 11:31:41:895 - Comando Enviar: TOAuth
25/11/24 11:31:41:908 - URL: [POST] https://auth.sicoob.com.br/auth/realms/cooperado/protocol/openid-connect/token
25/11/24 11:31:42:246 - Erro: HTTP_Code=400 Erro=Invalid client credentials
25/11/24 11:31:43:815 - Falha Envio: Falha na Autenticação: HTTP_Code=400 Erro=Invalid client credentials

Como estou usando já no ambiente em produção (com a autorização do financeiro aqui da empresa), deixei os dados do Pagador com um CNPJ real, para realmente gerar um boleto a ser pago mas com um "nosso número" bem alto, para não confundir com outros boletos que enviamos aos clientes, conforme a imagem abaixo:

image.thumb.png.40076181ce9a0841ac49d8fae3a6d57e.png

Outra coisa que notei, é que converti o meu certificado em PFX para PEM e KEY, conforma o ótimo tutorial que vocês fizeram aqui: https://www.projetoacbr.com.br/forum/topic/73380-exportar-certificado-pem-crt-e-key/

Mas, consultando o ChatGPT, ele respondeu que o conteúdo deles precisa iniciar dessa forma:

-----BEGIN CERTIFICATE-----

mas o arquivo PEM que converti inicia com esse código abaixo (mudei alguns valores para não expor o meu arquivo verdadeiro):

Bag Attributes
    localKeyID: 3Z B5 44 9B BF 3D F1 E5 5A E8 7D 64 10 91 8B 37 06 5D 5D 38 
    friendlyName: JJ FEMINA00000000000000
subject=/C=BR/O=ICP-Brasil/ST=SP/L=Araras/OU=AC SOLUTI Multipla v5/OU=23264444002166/OU=Videoconferencia/OU=Certificado PJ A1/CN=J.J. FEMINA:00000000000000
issuer=/C=BR/O=ICP-Brasil/OU=AC SOLUTI v5/CN=AC SOLUTI Multipla v5
-----BEGIN CERTIFICATE-----

Deixei algumas informações aqui ocultas pois não sei se posso abrir um tópico expondo elas, mas se quem puder ajudar precisar delas, posso enviar por DM ou outra forma.

Bom, se precisarem de mais informações, estarei verificando esse tópico com frequência e já agradeço as possíveis ajudas

  • Moderadores
Postado
41 minutos atrás, SisMaster Sistemas disse:
Bag Attributes
    localKeyID: 3Z B5 44 9B BF 3D F1 E5 5A E8 7D 64 10 91 8B 37 06 5D 5D 38 
    friendlyName: JJ FEMINA00000000000000
subject=/C=BR/O=ICP-Brasil/ST=SP/L=Araras/OU=AC SOLUTI Multipla v5/OU=23264444002166/OU=Videoconferencia/OU=Certificado PJ A1/CN=J.J. FEMINA:00000000000000
issuer=/C=BR/O=ICP-Brasil/OU=AC SOLUTI v5/CN=AC SOLUTI Multipla v5
-----BEGIN CERTIFICATE-----

pode editar o arquivo e remover o restante pra cima

deixa só do ---- begin até o --- end

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
 

 

  • Consultores
Postado

@SisMaster Sistemas atenção as particularidades:
3.16 Banco Bancoob/ Sicoob

Atenção com os preenchimentos dos dados.
No campo “Digito da agência” informar o Número do Posto.
No campo “Agência” informar o numero da Cooperativa.

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
2 horas atrás, Juliomar Marchetti disse:

pode editar o arquivo e remover o restante pra cima

deixa só do ---- begin até o --- end

Oi Juliomar, tudo bem? Obrigado por responder

Testei alterando o arquivo e, inclusive com a informação que o Daniel postou depois de você, corrigindo o DV da agência e colocando o Número do Posto, mas não deu certo ainda. Continua o erro "HTTP_Code=400 Erro=Invalid client credentials"...

Nesse outro tópico (aqui) que vocês estavam ajudando outra pessoa, vocês informaram no campo do caminho do arquivo CRT o caminho do arquivo PEM. Eles não são iguais no meu caso, o arquivo com extensão PEM possui mais chaves do que o arquivo CRT, que possui uma só. Qual deles devo usar? Já tentei com os 2 e continua o erro. No meu código, ainda está assim:

Boleto.Configuracoes.WebService.ArquivoCRT := 'C:\Temp\OpenSSL\certificado.pem';

E já aproveitando pra perguntar outra coisa, nessa parte do código abaixo que eu ocultei no meu post original, eu coloquei a senha de login do Portal Developers no Sicoob.

Boleto.Configuracoes.WebService.Senha := '*****'; // aqui coloquei a senha correta

É isso mesmo que deve ser preenchido ali? Já tentei também usando a senha do certificado digital e sempre retornou o mesmo erro. Não sei exatamente a que senha isso se refere, eu acabei vendo isso em outro tópico que vocês ajudaram outra pessoa com outro problema também.

Agradeço desde já

1 hora atrás, Daniel InfoCotidiano disse:

@SisMaster Sistemas atenção as particularidades:
3.16 Banco Bancoob/ Sicoob

Atenção com os preenchimentos dos dados.
No campo “Digito da agência” informar o Número do Posto.
No campo “Agência” informar o numero da Cooperativa.

Hm, obrigado por responder. Eu não sabia disso.

Hoje, em nosso ERP, já emitimos os boletos para o Sicoob por CNAB e lá enviamos o DV da Agência dessa conta apenas como um zero nesse campo:

AACBrBoleto.Cedente.AgenciaDigito := qryConta.FieldByName('AGENCIA_CEDENTE_DIGITO').AsString;

Achei que via API seria o mesmo, tanto que copiei todos os outros dados de lá, exceto o ClienteID que é novo.

Pedi ao financeiro para falar com o gerente da conta e ele nos informou que o Número do Posto é "6". Tentei tanto como "6" quanto como "06" e, mesmo fazendo a correção que o Juliomar também passou, continua o mesmo retorno do erro "400".

  • Membros Pro
  • Solution
Postado

Oi, bom dia

Consegui resolver e era o ClientID que estava errado. Não entendi porque, eu havia copiado do portal developers provavelmente para testes o ID de Sandbox, sendo que eu estou tentando usar já em produção mesmo. Em algum momento, sei que usei o ID certo mas, como estava em meio aos testes variados de outros campos, pode ser que no momento de usar o ID correto eu troquei alguma outra coisa que fez não funcionar e voltei o ID do Sandbox, mesmo usando em produção.

Como eu fui revendo campo a campo o que poderia estar errado, quando vi o ID incorreto, apenas troquei ele e funcionou.

Portanto, podem fechar o tópico como resolvido. Agradeço a ajuda de vocês.

  • Curtir 3
  • Consultores
Postado

Obrigado por reportar.

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

Consultor SAC ACBr

Diego Folieni
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 !!

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