Ir para conteúdo
  • Cadastre-se

dev botao

Emissão de Boleto do Sicoob via API Authorization Code


Jhonlenon Ribeiro
Ver Solução Respondido por CARLOS EDUARDO,
  • Este tópico foi criado há 908 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

6 horas atrás, CARLOS EDUARDO disse:

Jhon Lenon, 

Você viu na imagem que postei que o  Fluxo Authorization Code esta desativado? Por isso perguntei como você fez, rsrs

Vou tentar falar com o banco pra ver!

Obrigado heim

Att;

Boa noite como tinha lhe falando..enviei um e-mail para o Sicoob e eles me retornaram hoje.

Boa tarde, Ricardo.

O fluxo client credential é utilizado para a API Pix. Por enquanto a API de cobrança bancária ainda está utilizando o autorization code.
Caso deseje obter suas credenciais do ambiente de produção por favor, entre em contato com a sua cooperativa.

Obrigada,
Time Open Banking
Sicoob Confederação
SIG quadra 6 lotes 2080 SIG, St. Sudoeste
70610-460 - Brasília - DF
https://developers.sicoob.com.br
28 minutos atrás, duduccosta disse:

Olá, obrigado pela resposta. Estou desenvolvendo em C#, não tenho familiaridade com a linguagem que você mostrou. Confesso que não entendi quase nada. kkkk

Quais parâmetros diferem da homologação para produção?

Boa noite...aí fica difícil de lhe ajudar se vc não usa o Delphi... infelizmente o que podia fazer pra lhe ajudar já fiz.

Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois ...
  • Membros Pro
Em 27/01/2022 at 19:26, duduccosta disse:

Olá, obrigado pela resposta. Estou desenvolvendo em C#, não tenho familiaridade com a linguagem que você mostrou. Confesso que não entendi quase nada. kkkk

Quais parâmetros diferem da homologação para produção?

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
Em 27/01/2022 at 19:26, duduccosta disse:

Olá, obrigado pela resposta. Estou desenvolvendo em C#, não tenho familiaridade com a linguagem que você mostrou. Confesso que não entendi quase nada. kkkk

Quais parâmetros diferem da homologação para produção?

Dudu, tbm estou desenvolvendo em C# e passei pelo problema do payload. Vc resolve criando um objeto root que engloba todos os outros. Instancia ele quando for pegar o response da requisição:

 public SicoobBoleto ReadResponseAsync(IRestResponse response)
        {

            SicoobRoot root = null;

            switch (response.StatusCode)
            {
                case HttpStatusCode.MultiStatus:

                    var resultOK = response.Content;
                    try
                    {
                        root = JsonConvert.DeserializeObject<SicoobRoot>(resultOK);
                    }
                    catch (Exception ex)
                    {
                        root = JsonConvert.DeserializeObject<SicoobRoot>(resultOK);
                    }
                    break;
                case HttpStatusCode.Created:
                    var resultCreated = response.Content;
                    root = JsonConvert.DeserializeObject<SicoobRoot>(resultCreated);
                    break;

                case HttpStatusCode.BadRequest:
                    SicoobRequestException exception = null;
                    var result = response.Content;
                    SicoobError[] errors = JsonConvert.DeserializeObject<SicoobError[]>(result);

                    //todo testar aqui
                    foreach (var error in errors)
                    {
                        Debug.WriteLine("erro da cielo = " + $"Cielo Error[{error.Code}] : {error.Message}");
                        exception = new SicoobRequestException(error.Message, error, exception);
                    }
                    throw exception;
                case HttpStatusCode.NotFound:
                    throw new SicoobRequestException("Not found", new SicoobError((int)response.StatusCode, "Not found"));

                default:
                    //verificaStatus(response);
                    Debug.WriteLine("erro da cielo =>  " + $"Sicoob - Unknown status [{(int)response.StatusCode}] : {response.Content}");
                    break;
            }
            //pedir um boleto por vez
            return root.resultado[0].boleto;

Link para o comentário
Compartilhar em outros sites

Joabe Geraldo Boa tarde...eu mexei muito com sicoob, mais não fiz essa implementação de alterar vencimento de boleto...mais se vc estiver usando o scope de incluir boleto, comsultar boleto deve dá certo...na dúvida faz como eu fiz coloquei todos os scope na requisição...até o de consultar extrato e saldo...acabei de ver aqui o sicoob finalmente parece que lançou API de Cobrança v2....

Link para o comentário
Compartilhar em outros sites

São 2 Fluxo de Autorização da API de Cobrança do Sicoob.

Fluxo Client Credential - API de Cobrança V2 

Para o novo fluxo, devem ser seguidos os passos abaixo:

1) Faça login no Portal Developers e acesse o menu Dashboard.

2) Acesse a opção Nova Aplicação.

3) Caso o seu cadastro esteja desatualizado há algum tempo, será exigido a atualização das informações de sua conta.

4) Faça login com dados de sua cooperativa, conta corrente ou chave de acesso e senha do App Sicoob Mobile Banking para confirmar a criação do aplicativo em sua conta.

5) Prossiga com o cadastro do aplicativo seguindo os passos da tela de geração da credencial que será apresentada.

6) Após a geração, as credenciais de acesso e as URLs de produção estarão disponíveis no menu Dashboard para cada aplicativo criado.

Observação: Será permitido criar uma credencial por API e conta do cooperado. Então, se você for um cooperado que possua 2 contas correntes, poderá criar até duas credenciais API Pix e duas credenciais para API Cobrança Bancária.
 



Fluxo Authorization Code - API de Cobrança V1 

Para esse fluxo, devem ser seguidos os passos abaixo:

1) O cooperado deve manifestar o interesse de integração com o Open Banking Sicoob a partir de sua cooperativa. Nesse contato, é necessário que o cooperado já esteja com a posse das informações necessárias para solicitação de credenciais de acordo com o fluxo de autorização da API:

Informações solicitadas para o fluxo Authorization Code

  • Número da Central

  • Número da Cooperativa

  • Número da Conta Corrente

  • Gerente no Sicoob

  • Informações sobre seu aplicativo/Website

  • Nome do Responsável

  • CNPJ da empresa

  • Razão Social da empresa

  • Nome Fantasia

  • Logradouro

  • Cidade do Cooperado

  • CEP

  • UF

  • Telefone Celular

  • E-mail

  • URL de Callback

2) Por meio da solicitação do cooperado, a cooperativa faz a solicitação internamente no Sicoob Central de Suporte do CCS conforme a API desejada pelo cooperado.

3) O Sicoob analisa e faz a geração das credenciais.

4) O Sicoob envia para o e-mail do cooperado e para o telefone celular do cooperado o acesso às credenciais.

Atenção: Somente o cooperado pode solicitar as credenciais de produção. Se você for um desenvolvedor prestador de serviço, solicite ao cooperado responsável que entre em contato com o Sicoob.

Link para o comentário
Compartilhar em outros sites

19 horas atrás, JHONLENON disse:

Joabe Geraldo Boa tarde...eu mexei muito com sicoob, mais não fiz essa implementação de alterar vencimento de boleto...mais se vc estiver usando o scope de incluir boleto, comsultar boleto deve dá certo...na dúvida faz como eu fiz coloquei todos os scope na requisição...até o de consultar extrato e saldo...acabei de ver aqui o sicoob finalmente parece que lançou API de Cobrança v2....

Boa tarde. Vou fazer o teste incluindo todos os escopos de cobrança.

Obrigado @JHONLENON

Link para o comentário
Compartilhar em outros sites

Boa tarde amigos, alguém já implementou essa Client Credentials no Sicoob?
No fluxo antigo de Authorization Code pra gerar os tokens tinha alguns exemplos na documentação do Sicoob, mas nesse client credentials não encontrei nada, estou com algumas dúvidas sobre quais parâmetros enviar pra url de tokens pra gerar eles. Vou acabar tendo que entrar em contato com o Sicoob mesmo

Link para o comentário
Compartilhar em outros sites

blodinho Boa tarde, estou esperando um cliente me passar o certificado digital dele pra nos enviar pelo site do developers para fazer ums testes nessa novo fluxo Client Credentials.....amigo eu também estou perdido pra saber como é enviando o certificado digital na requisição! se é na extensão .cer, crt ou .pem, no site tem apenas como passar o HERDERS e BODY e URL... mais não fala o certificado é enviando na requisição. Qualquer avanço que eu tiver vou postar aqui no topico igual fiz API de cobrança V1 do Sicoob

Access token

URL

Headers

Content-Type:application/x-www-form-urlencoded

Body

grant_type=client_credentials
client_id=xxxxxxxxxxxxxxxxxxxxxxxxxxx
client_secret=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
scope=Lista de escopos > APIs > Cobrança Bancária V2

Informar o certificado na requisição

URL

Headers

Content-Type:application/x-www-form-urlencoded

Body

grant_type=refresh_token
refresh_token=[[REFRESH_TOKEN]]

Informar o certificado na requisição

URL

 

Headers

Content-Type:application/json
Authorization:Bearer [[ACCESS_TOKEN]]
client_id:xxxxxxxxxxxxxxxxxxxxxxxxxxxxx

 

Editado por JHONLENON
Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Bom, eu usei uma dinâmica e está funcionando, basicamente são dois métodos, um pega o "Code" e o outro o "Token". Está em C# mas dá pra entender:

 

getCode(string code = "") {

       if (code =="")
            {
                Redirect($"https://api.sisbr.com.br/auth/oauth2/authorize?response_type=code&redirect_uri=https://www.seusite/sistema.com.br/api/&client_id=seuClientID&versaoHash=3&scope=cobranca_boletos_consultar+cobranca_boletos_incluir");
            }
            else
            {
                Token token = getToken(code);
            }
            return Redirect($"https://www.seusite/sistema.com.br");
        }

 

 

   getToken(string code)
        {
            Token token = new Token();
            var client = new RestClient("https://apis.sisbr.com.br/cooperado/cobranca-bancaria/mtls/oauth2/token");

            var request = new RestRequest(Method.POST);
            request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
            request.AddHeader("Authorization", oauthConfig.Token_Basic);
            request.AddParameter("grant_type", "authorization_code");
            request.AddParameter("code", code);
            request.AddParameter("redirect_uri", oauthConfig.Redirect_uri);
            IRestResponse response = client.Execute(request);

            if (response.StatusCode == System.Net.HttpStatusCode.OK)
            {
               token = Newtonsoft.Json.JsonConvert.DeserializeObject<OauthToken>(response.Content);                
            }else{
               token.Error = Newtonsoft.Json.JsonConvert.DeserializeObject<Error>(response.Content);                
            }
            token;
        }

 

 

 

Link para o comentário
Compartilhar em outros sites

Eu recebi isso do sicoob para autenticação com certificado digital na emissão de boleto na API de Cobrança V2

Boa tarde,

Segue um exemplo utilizando o cURL:

curl -v -X POST https://apis.sisbr.com.br/cooperado/cobranca-bancaria/mtls/oauth2/token --key chaveprivada.key --cert mtls-certificado.cer --header 'Content-Type: application/x-www-form-urlencoded' --data-urlencode 'grant_type=client_credentials' --data-urlencode 'client_id=xxxx' --data-urlencode 'client_secret=xxxx' --data-urlencode 'scope=xxxx'

Qualquer dúvida nos contate.
Atenciosamente,

Time Open Banking
Sicoob Confederação
SIG quadra 6 lotes 2080 SIG, St. Sudoeste
70610-460 - Brasília - DF
https://developers.sicoob.com.br

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 1 mês depois ...

Olá?!

Não sei se alguém aqui tentou recentemente credenciar algum correntista no Sicoob, mas agora os caras não estão mais aceitando via Authorization Code. Pelo que vimos, tem que usar a V2 e Client Credential.

Temos clientes em várias partes do país e as agências, no geral, não sabem ao certo o que fazer.

Duas coisas que ferram o uso do Client Credential:

a. Precisa ter um certificado digital

b. Precisa ter um IP fixo para cadastrar no firewall do banco.

O suporte dos caras é bem complicado. Você escreve pra lá, o ticket é aberto e simplesmente ninguém responde.

Nossos clientes que ainda usam o Authorization Code estão funcionando sem problema. O credenciamento de novos correntistas não estamos mais conseguindo fazer.

Alguém está passando por dificuldades com eles também?

Muito obrigado.

Link para o comentário
Compartilhar em outros sites

_asseinfo Boa tarde...para cooperados novos (correntista) sicoob tem usar a API de Cobrança nova V2 que usa a autenticação por client_credentials...authorization Code vai continuar funcionando mais só para os cooperados que usava....que precisaram no futuro migrar também pra nova API de cobrança V2 do sicoob...essa nova API de Cobrança V2 usa client_id e client_secret e token...junto com certificado digital. você faz o cadastro do cooperado no portal do developers e solicita as credencais em produção por proprio portal....mais para isso vc precisa enviar o certificado do cooperado no formato .pem aceite pelo sicoob...outro detalhe seu cooperado precisa de IP FIXO ou então faz uma API Server com IP Fixo para ser consumido pelo cliente.....resumindo amigo é bucha....já homologuei faz de 11 bancos via api e webservice e o sicoob foi um deles.

Link para o comentário
Compartilhar em outros sites

_asseinfo estou parado no sicoob estou parado na API de V2 com esse erro....{ "httpCode": "401", "httpMessage": "Unauthorized", "moreInformation": "Client certificates for mutual TLS in the API request does not match the registered certificate." }

O fornecedor da API e Supervisor de suporte do sicoob fez uma reunião por video conferência comigo....no exemplo testamos pelo postman pra dizer que era minha aplicação...resumido....sem sucesso....já faz uns 15 que to sem retorno do sicoob...já mandei varios email...liguei na central da cooperativa e nada.

Link para o comentário
Compartilhar em outros sites

Em 20/04/2022 at 14:48, _asseinfo disse:

@JHONLENON bucha, cara.

 

 

Você conseguiu gerar o token na API de Cobrança V2? aqui só dá esse erro...

{
    "httpCode""401",
    "httpMessage""Unauthorized",
    "moreInformation""Client certificates for mutual TLS in the API request does not match the registered certificate."
}
Editado por JHONLENON
Link para o comentário
Compartilhar em outros sites

  • Consultores
Em 20/04/2022 at 14:39, JHONLENON disse:

Supervisor de suporte do sicoob fez uma reunião por video conferência comigo

Boa noite @JHONLENON,

Uma sugestão, caso você ainda tenha o contato do suporte, confirme com eles se existe algum método da api para cadastrar o certificado que será utilizado.

Se já foi cadastrado, tente recadastrá-lo, pois aparentemente o retorno acusa que o certificado não é o esperado.

Link para o comentário
Compartilhar em outros sites

Renato Rubinho Mexer com sicoob é complicado...eles respondi quando quer...já tive vez deles passar mais 30 dias pra responder ao e-mail...vou entrar em contato com cooperativa e protocolocar uma reclamação....mais obrigado pela a dica....fiz o mesmo processo com banco INTER e foi concluido com sucesso.

Link para o comentário
Compartilhar em outros sites

Em 02/03/2022 at 13:56, JHONLENON disse:

blodinho Boa tarde, estou esperando um cliente me passar o certificado digital dele pra nos enviar pelo site do developers para fazer ums testes nessa novo fluxo Client Credentials.....amigo eu também estou perdido pra saber como é enviando o certificado digital na requisição! se é na extensão .cer, crt ou .pem, no site tem apenas como passar o HERDERS e BODY e URL... mais não fala o certificado é enviando na requisição. Qualquer avanço que eu tiver vou postar aqui no topico igual fiz API de cobrança V1 do Sicoob

Access token

URL

Headers

Content-Type:application/x-www-form-urlencoded

Body

grant_type=client_credentials
client_id=xxxxxxxxxxxxxxxxxxxxxxxxxxx
client_secret=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
scope=Lista de escopos > APIs > Cobrança Bancária V2

Informar o certificado na requisição

URL

Headers

Content-Type:application/x-www-form-urlencoded

Body

grant_type=refresh_token
refresh_token=[[REFRESH_TOKEN]]

Informar o certificado na requisição

URL

 

Headers

Content-Type:application/json
Authorization:Bearer [[ACCESS_TOKEN]]
client_id:xxxxxxxxxxxxxxxxxxxxxxxxxxxxx

 

Muito estranho, pois estou mandando um POST para a url https://apis.sisbr.com.br/cooperado/cobranca-bancaria/mtls/oauth2/token, com certificado embutido, mas ele retorna erro 404.
Não é erro de autenticação, mas sim de página não encontrada.

 

URL: https://apis.sisbr.com.br/cooperado/cobranca-bancaria/mtls/oauth2/token
Params: grant_type=client_credentials&scope=cobranca_boletos_incluir cobranca_boletos_consultar cobranca_boletos_solicitacao_movimentacao_incluir cobranca_boletos_solicitacao_movimentacao_consultar cobranca_boletos_solicitacao_movimentacao_download cobranca_boletos_consultar cobranca_boletos_segunda_via&client_id=xxxxx&client_secret=yyyyy
Method: POST
Content Type: application/x-www-form-urlencoded

E mesmo assim, retorna erro 404.

Editado por duduccosta
Link para o comentário
Compartilhar em outros sites

duduccosta Boa noite amigo....eu ainda não consegui obter sucesso com autenticação do token...eu recebo o erro 401....só que esse erro de 404 é de IP não cadastrado na API...lá no portal do developers quando agente solicita as credenciais em produção eles pedi pra informar um IP FIXO (Real) pra liberar a api...se eu testar no postman fora do meu IP fixo recebo erro 404 amigo...

01.png

02.png

Link para o comentário
Compartilhar em outros sites

57 minutos atrás, JHONLENON disse:

duduccosta Boa noite amigo....eu ainda não consegui obter sucesso com autenticação do token...eu recebo o erro 401....só que esse erro de 404 é de IP não cadastrado na API...lá no portal do developers quando agente solicita as credenciais em produção eles pedi pra informar um IP FIXO (Real) pra liberar a api...se eu testar no postman fora do meu IP fixo recebo erro 404 amigo...

01.png

02.png

Estou fazendo via C#, portanto fica fácil passar o CRT + Senha do certificado.
Pelo Postman é possível passar o client certificate?

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Duduccosta, tbm estou desenvolvendo em C#.

Vc usou vc esta usando a versão 1 ou 2 da API?

Estou consumindo desse endPoint: https://api.sisbr.com.br/auth/token

A parte do token já consegui resolver, da uma olhada nesses métodos. Não repare que tá meio bagunçado, rsrs

OauthAuthorization.cs

Link para o comentário
Compartilhar em outros sites

37 minutos atrás, Adilson Donizete Ferreira disse:

Duduccosta, tbm estou desenvolvendo em C#.

Vc usou vc esta usando a versão 1 ou 2 da API?

Estou consumindo desse endPoint: https://api.sisbr.com.br/auth/token

A parte do token já consegui resolver, da uma olhada nesses métodos. Não repare que tá meio bagunçado, rsrs

OauthAuthorization.cs 4 kB · 0 downloads

Boa tarde!

Então, essa que você usou é a versão 1 (Code Credential).
Estou precisando usar a versão 2, que é via Client Credentials, ou seja, o usuário não precisa autenticar para gerar o access_token, basta passar certificado + credenciais.

Link para o comentário
Compartilhar em outros sites

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