Autenticação e permissões
As chamadas protegidas usam um token bearer de curta duração, obtido pelo fluxo OAuth 2.0 client credentials. As credenciais da chave de API são usadas somente para obter esse token; não as envie nos demais endpoints.
Gere e envie o token
Chame POST /api/auth/token/ com o corpo application/x-www-form-urlencoded contendo grant_type=client_credentials, e autentique o cliente com HTTP Basic: cabeçalho Authorization: Basic <base64(client_id:client_secret)>.
A resposta inclui access_token, token_type (Bearer), expires_in e scope. Em cada chamada protegida, envie o token no cabeçalho:
Authorization: Bearer <access_token>
O token identifica a loja (tenant) e o ambiente (environment) associados à chave. Esses valores não são selecionados por parâmetros da chamada. Veja Primeiros passos para um exemplo completo.
Permissões
O acesso de uma chave é delimitado pela loja, pelo ambiente e pelos escopos que foram concedidos a ela. O campo scope da resposta de POST /api/auth/token/ mostra os escopos concedidos ao token, separados por espaço. Consulte o guia Escopos de acesso para ver os recursos e endpoints correspondentes.
Por padrão, o token recebe todos os escopos da chave. Para um token mais restrito, envie o parâmetro scope com um subconjunto deles (ex.: scope=store menu); pedir um escopo que a chave não possui resulta em 400 com error igual a invalid_scope. Use credenciais emitidas para a loja e o ambiente que a integração deve consultar. Se precisar de acesso a outro recurso, loja ou ambiente, peça ao responsável pela gestão das chaves que ajuste a configuração.
Expiração e renovação
Os tokens expiram. Confira expires_in na resposta de emissão e solicite outro token com o mesmo client_id e client_secret antes de fazer novas chamadas após a expiração. O endpoint não emite um token de renovação separado.
O valor padrão configurado é de 900 segundos (15 minutos), mas a resposta de POST /api/auth/token/ é a referência para a validade efetiva naquele ambiente.
Revogação e armazenamento seguro
- Proteja o
client_secretcomo uma senha: não o coloque no navegador, no aplicativo móvel, no repositório de código ou em registros de aplicação. - Armazene credenciais e tokens em um cofre de segredos e use HTTPS.
- A revogação da chave ou da sessão invalida imediatamente os tokens e impede a emissão de novos tokens para a chave revogada.
- Um token bearer ausente, inválido ou expirado resulta em
401, com o cabeçalhoWWW-Authenticate: Bearer ..., error="invalid_token"; emita um token novo e repita a chamada protegida uma vez.
Erros do endpoint de token
Os erros de POST /api/auth/token/ seguem a RFC 6749 §5.2: o corpo traz error e error_description, além dos campos code e detail usados no resto da API, com os mesmos valores.
| Status | error |
Significado |
|---|---|---|
400 |
invalid_request |
Parâmetro ausente, repetido ou corpo malformado |
400 |
unsupported_grant_type |
grant_type diferente de client_credentials |
400 |
invalid_scope |
Escopo desconhecido ou não concedido à chave |
400 |
unauthorized_client |
Chave inativa ou loja bloqueada |
401 |
invalid_client |
client_id ou client_secret incorretos, ou chave revogada |