A autenticação das APIs da ANBIMA varia de acordo com o produto utilizado. Antes de gerar o access_token, verifique qual fluxo de autenticação corresponde à API que será acessada.
Atenção — API de Títulos Privados: os recursos de Títulos Privados do ANBIMA Input não utilizam o endpoint padrão de autenticação apresentado para as demais APIs. Para esse produto, utilize o endpoint específico apresentado na seção Autenticação da API de Títulos Privados.
Protocolo de Transporte
Todas as informações trafegadas pelas APIs são transmitidas por meio do protocolo HTTPS, que garante um canal seguro para o envio das credenciais, tokens e demais dados das requisições.
Autenticação da API de Títulos Privados
Para acessar os recursos de Títulos Privados do ANBIMA Input, a aplicação deverá obter um access_token por meio do endpoint específico do domínio de autenticação input-api.
O endpoint de autenticação utilizado para Títulos Privados é:
https://[ambiente]/realms/input-api/protocol/openid-connect/token
Ambiente: auth.anbima.com.br (Produção) ou auth.hml.anbima.cloud (Sandbox)
1. Obtenção do Client ID e Client Secret
Para iniciar o processo de autenticação, é necessário possuir as credenciais disponibilizadas para a integração com a API de Títulos Privados:
client_id: identificação da aplicação cliente.client_secret: credencial secreta utilizada para autenticar a aplicação.
Essas credenciais devem ser armazenadas de forma segura e não devem ser expostas no código-fonte de aplicações públicas ou em ambientes acessíveis por terceiros.
2. Obtenção do Access Token
Com o client_id e o client_secret, realize uma requisição POST para o endpoint de autenticação da API de Títulos Privados.
Os parâmetros de autenticação devem ser enviados no corpo da requisição no formato application/x-www-form-urlencoded.
POST
https://[ambiente]/realms/input-api/protocol/openid-connect/token
HEADER
Content-Type: application/x-www-form-urlencoded
REQUEST BODY
grant_type=client_credentials
client_id=SEU_CLIENT_ID
client_secret=SEU_CLIENT_SECRET
Exemplo utilizando cURL:
curl --request POST \
--url 'https://[ambiente]/realms/input-api/protocol/openid-connect/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=SEU_CLIENT_ID' \
--data-urlencode 'client_secret=SEU_CLIENT_SECRET'
Após a autenticação, será retornada uma resposta semelhante ao exemplo abaixo:
{
"access_token": "SEU_ACCESS_TOKEN",
"expires_in": 3600,
"token_type": "Bearer",
"scope": "openid"
}
O campo expires_in informa, em segundos, o período de validade do token. Após a expiração, uma nova requisição deverá ser realizada para obtenção de outro access_token.
3. Chamadas à API de Títulos Privados
O access_token obtido deverá ser enviado no header Authorization das chamadas aos recursos da API, utilizando o tipo Bearer.
Authorization: Bearer SEU_ACCESS_TOKEN
Exemplo de estrutura de uma chamada:
POST
https://[ambiente]/input/titulos-privados/v1/[recurso]
HEADER
Authorization: Bearer SEU_ACCESS_TOKEN
Content-Type: application/json
Importante: não utilize o endpoint
https://api.anbima.com.br/oauth/access-tokenpara obter o token da API de Títulos Privados. Para esse produto, a autenticação deverá ser realizada pelo endpointhttps://[ambiente]/realms/input-api/protocol/openid-connect/token.
Autenticação padrão das demais APIs ANBIMA
Para as demais APIs que utilizam o fluxo padrão do portal, a autenticação é realizada com a informação de um par de tokens no cabeçalho das requisições.
client_id: identificação de acesso do cliente. Essa credencial é gerada por meio do cadastro de uma aplicação na área logada do portal.
access_token: token temporário que armazena as permissões de acesso associadas ao client_id.
Este fluxo padrão não deve ser utilizado para a API de Títulos Privados.
OAuth2
OAuth2 é um padrão de autenticação amplamente utilizado que permite que uma aplicação acesse recursos protegidos sem manipular diretamente nomes de usuários e senhas.
Abaixo estão os passos necessários para conclusão do processo padrão de integração OAuth2:
1. Obtenção do Client ID e Client Secret
Na área logada do portal, realize o cadastro de uma aplicação para obtenção do client_id e do client_secret.
2. Obtenção do Access Token
Para as APIs que utilizam o fluxo padrão, realize a chamada abaixo:
POST
https://api.anbima.com.br/oauth/access-token
HEADER
Content-Type: application/json
Authorization: Basic base64(client_id:client_secret)
REQUEST BODY
{
"grant_type": "client_credentials"
}
As informações enviadas no campo Authorization devem ser codificadas em Base64.
Considerando, por exemplo, o par client_id = aC2yaac23 e client_secret = 1bhS45TT, deverá ser codificada a string aC2yaac23:1bhS45TT.
O header terá a seguinte estrutura:
Authorization: Basic YUMyeWFhYzIzOjFiaFM0NVRU
Após a chamada, será retornada uma resposta semelhante à seguinte:
{
"access_token": "222rkya88",
"token_type": "Bearer",
"expires_in": 3600
}
Na resposta, o campo expires_in indica o período de validade do access_token, em segundos. Após a expiração, o procedimento deverá ser repetido para obtenção de um novo token.
3. Chamadas às demais APIs
Nas APIs que utilizam o fluxo padrão do portal, o client_id e o access_token deverão ser enviados nos headers da requisição.
client_id: SEU_CLIENT_ID
access_token: SEU_ACCESS_TOKEN
| URL de Produção | URL de Sandbox |
|---|---|
https://api.anbima.com.br |
https://api-sandbox.anbima.com.br |
Erros de Autenticação
Durante o processo de autenticação ou acesso aos recursos, poderão ser retornados os seguintes códigos:
| Código | Tipo de erro | Descrição |
|---|---|---|
| 400 | Requisição de autenticação inválida | Pode ocorrer quando algum parâmetro obrigatório não é enviado ou quando o formato da requisição de obtenção do token está incorreto. |
| 401 | Credencial ou token inválido | Pode ocorrer quando o client_id, o client_secret ou o access_token estiver incorreto, inexistente ou expirado. |
| 403 | Acesso não autorizado ao recurso | O token foi reconhecido, mas não possui permissão para acessar o recurso solicitado. |
Nos casos de token expirado, realize novamente o processo de autenticação correspondente à API utilizada. Para credenciais revogadas ou ausência de permissão, será necessário solicitar a regularização do acesso.
“`