These docs are for v1.2. Click to read the latest docs for v1.4.

Comunidade

Ask a Question
Back to All

Fluxo de autenticação "Client Credentials"

Olá,

Estamos tentando usar o fluxo de autenticação "Client Credentials" para obter o acess token, porém estamos nos deparando com um problema. Por exemplo, para podermos obter o "accountId", necessário para a geração do primeiro boleto, precisamos dos escopos "openid" e "empresas.btgpactual.com/accounts", para a geração do access token. Porém, parece que o escopo "openid" não vem na resposta da obtenção do access token usando o fluxo "Client Credentials". No fluxo "Authorization Code", o "openid" aparece corretamente no escopo da resposta:

Resposta usando o fluxo "Client Credentials":

{
"access_token": "XXXXXXX",
"scope": "empresas.btgpactual.com/accounts",
"token_type": "Bearer",
"expires_in": 86400
}

Resposta usando o fluxo "Authorization Code":

{
"access_token": "XXXXXXX",
"refresh_token": "YYYYYYY",
"empresas.btgpactual.com/accounts": "BBBBBBBBBBBBB",
"scope": "empresas.btgpactual.com/accounts openid",
"id_token": "AAAAAAAAAAA",
"session_id": "ZZZZZZZZZZZZ",
"token_type": "Bearer",
"expires_in": 86400
}

Nos dois casos o parâmetro do escopo é passado como "openid empresas.btgpactual.com/accounts".

URL utilizada para obter o access token: https://id.sandbox.btgpactual.com/oauth2/token

Com o access token do fluxo "Authorization Code", conseguimos gerar corretamente o boleto, mas com o access token do fluxo "Client Credentials", não, creio que devido a este problema de não estar vindo o "openid" no escopo da resposta. Resposta da tentativa de obtenção do "accountid" usando o acess token gerado pelo "Client Credentials":

{
"fault": {
"faultstring": "Invalid token: policy(VerifyJWT)",
"detail": {
"errorcode": "steps.jwt.InvalidToken"
}
}
}

Preciso passar alguma informação adicional ao tentar obter o acess token via fluxo "Client Credentials" e obter o "openid" na resposta do escopo?