# Falha de Autenticação

A autenticação falhou porque o token está ausente, inválido ou expirado. A API não consegue verificar a identidade do chamador.

**HTTP Status:** `401 Unauthorized`

## Códigos de Erro

| Código | Descrição |
|  --- | --- |
| `missing_token` | Nenhum header `Authorization` fornecido |
| `invalid_token` | O token não é reconhecido ou foi revogado |
| `token_expired` | O token expirou -- obtenha um novo via `/auth/token` |
| `invalid_client` | O client ID não é reconhecido |
| `invalid_client_secret` | O client secret não confere |
| `credential_revoked` | A credencial de API foi revogada |
| `credential_expired` | A credencial de API expirou |


## Exemplo de Resposta

```json
{
  "type": "https://docs.dinie.com/errors/authentication-failed",
  "title": "Unauthorized",
  "status": 401,
  "detail": "The access token has expired. Please request a new token.",
  "code": "token_expired"
}
```

## Como Resolver

- **`missing_token`** -- Inclua o header `Authorization: Bearer <token>` em todas as requisições.
- **`invalid_token`** -- Verifique se está usando o token correto. Se a credencial foi revogada, crie uma nova via `/auth/credentials`.
- **`token_expired`** -- Tokens expiram após 1 hora. Solicite um novo token em `POST /auth/token` e mantenha-o em cache até a expiração. Consulte [Autenticação](/apis/concepts/authentication) para padrões de renovação de token.
- **`invalid_client` / `invalid_client_secret`** -- Verifique suas credenciais de client. Confira espaços extras ou problemas de encoding.
- **`credential_revoked`** -- Crie uma nova credencial via `POST /auth/credentials`.
- **`credential_expired`** -- Crie uma nova credencial. Considere definir um prazo de expiração mais longo ou sem expiração.


## Veja Também

- [Guia de Autenticação](/apis/concepts/authentication) -- Gerenciamento e renovação de tokens
- [Guia de Tratamento de Erros](/apis/concepts/errors) -- Padrões completos de tratamento de erros e exemplos de código