Autenticação
Antes de ter acesso ao ambiente de produção da API do Banco BS2 é necessário efetuar o processo de homologação em nosso ambiente de sandbox.
Para ter acesso ao ambiente de sandbox, por favor entre em contato conosco por meio do e-mail [email protected]
Nota:
Utilizamos em nossas API’s de autenticação um rate-limit, que permite até 10 requisições de token e refresh por minuto, sendo necessário realizar o gerenciamento de token.
Gerar Token de Autenticação
Para usar a API é necessário obter o token de autenticação vinculado a um usuário BS2. Para e emissão do token de acesso reproduza os seguintes passos:
- Realizar uma requisição Basic Auth no endpoint abaixo;
- Definir o valor password para o campo
grant_type
; - Definir o valor onboarding-pj para o campo
scope
; - Inserir usuário e senha válidos nos campos de
username
epassword
POST /auth/oauth/v2/token
{
"grant_type":"password",
"scope":"onboarding-pj",
"username":"valid_username",
"password":"valid_password"
}
{
"access_token": "seu_access_token_guid",
"token_type": "tipo_de_token",
"expires_in": "tempo_de_expiracao_em_segundos",
"refresh_token": "seu_refresh_token_guid",
"scope": "onboarding-pj"
}
Parâmetros
Nome | Localizado em | Descrição | Requerido |
---|---|---|---|
grant_type | body | Define o tipo de requisição | Sim |
scope | body | Define qual o escopo da requisição | Sim |
username | body | Inserir um usuário previamente cadastrado no banco BS2 | Sim |
password | body | Inserir uma senha válida referente ao usuário informado no campo acima | Sim |
Resposta
Código | Descrição |
---|---|
200 | Success |
400 | Bad Request |
401 | Unauthorized |
SANDBOX | PRODUÇÃO | |
---|---|---|
Requisições | Solicitar URL ao time BS2 | Solicitar URL ao time BS2 |
Importante:
O token de autenticação é necessário para todas as requisições em nossas APIs. Fique atento ao tempo de expiração (em segundos) informado no retorno de sua requisição. Gerencie sua aplicação para que atualize o token antes de sua expiração conforme o fluxo a seguir.
Gerenciamento do Token
É necessário realizar o gerenciamento do access_token _e do _refresh_token dentro da sua aplicação.
- Gerar um token utilizando
ClientId
,ClientSecret
,username
epassword
. Fluxo de geração de token descrito no passo acima. O token possui uma validade em segundos, apresentada no campoexpires_in
. 420 segundos em sandbox e 300 segundos em Produção. - Utilizando o refresh_token gerado no passo anterior, deve-se fazer o fluxo de refresh_token. Desta forma, não se deve utilizar usuário e senha para gerar novo token.
- Antes do refresh_token expirar (10 minutos de duração), é necessário renovar o token usando fluxo de refresh_token.
Pontos Importantes
Ao gerar um token utilizando username
e password
, deve-se apenas gerar novos tokens usando o fluxo de refresh_token (utilizando o refresh_token e não o username
e password
).
Só é necessário gerar um novo token, utilizando usuário e senha, caso não consiga realizar o fluxo de refresh_token.
O campo expires_in
representa a validade do token em segundos, enquanto o token estiver válido, este token deve ser utilizado.
O refresh_token possui um tempo de validade maior que a validade do token (10 min), ou seja, mesmo se o token estiver inválido por tempo e o refresh_token estiver válido, ainda é possível fazer o fluxo de refresh_token para gerar um token válido.
Quando o token estiver próximo da validade, deve-se gerar um novo token, usando um refresh_token, para assim, receber um novo token valido pelo mesmo período.
Não há limite de requisições enquanto o token estiver válido.
Quando um novo token é gerado, o token anterior passa a ser inválido.
Atualização de token
Após a geração de um token de autenticação é recomendável que o gerenciamento do seu tempo de expiração seja feito pelo fluxo de atualização de token conforme os seguintes passos:
- Realizar uma requisição Basic Auth no endpoint abaixo;
- Definir o valor refresh_token para o campo
grant_type
; - Definir o valor onboarding-pj para o campo
scope
; - Definir o valor do refresh_token recebido previamente para o campo
refresh_token
.
{
"grant_type": "refresh_token",
"scope": "onboarding-pj",
"refresh_token": "refresh_token"
}
{
"access_token": "seu_access_token_guid",
"token_type": "tipo_de_token",
"expires_in": "tempo_de_expiracao_em_segundos",
"refresh_token": "seu_refresh_token_guid",
"scope": "onboarding-pj"
}
Parâmetros
Nome | Localizado em | Descrição | Requerido |
---|---|---|---|
grant_type | body | Define o tipo de requisição | Sim |
scope | body | Define qual o escopo da requisição | Sim |
refresh_token | body | Inserir o refresh token recebido previamente | Sim |
Resposta
Código | Descrição |
---|---|
200 | Success |
400 | Bad Request |
401 | Unauthorized |
O fluxo de atualização de token elimina a necessidade de informar usuário e senha na obtenção de um novo token de autenticação.
Updated 8 months ago