# Autenticação

A API Auvo usa **Bearer JWT** de 30 minutos emitido pelo endpoint `POST /login`.

## Fluxo básico

1. Cliente chama `POST /login` com `apiKey` + `apiToken`.
2. API responde com `result.accessToken` e `result.expiration` (ISO-8601).
3. Cliente envia `Authorization: Bearer <accessToken>` em toda requisição.
4. Antes do `expiration`, repita `POST /login` para renovar.


## Exemplo


```bash
curl -X POST https://api.auvo.com.br/v2/login \
  -H 'Content-Type: application/json' \
  -d '{"apiKey":"...","apiToken":"..."}'
```

## Boas práticas

- **Guarde credenciais em um secret manager** (AWS Secrets Manager, Doppler,
1Password). Nunca no código.
- **Um token por aplicação**: evite compartilhar o mesmo `accessToken` entre
processos diferentes; cada worker deve renovar o seu.
- **Margem de segurança**: renove o token com 2 minutos de antecedência para
cobrir clock skew.
- **Rotação**: rode `POST /login` em falhas 401 e reexecute a chamada original
apenas uma vez para evitar laço infinito.
- **Evite `GET /login`** em produção — credenciais aparecem em logs de URL.


## Erros comuns

| Código | Causa | Ação |
|  --- | --- | --- |
| 400 | `apiKey` ou `apiToken` vazios | Revise o body/query. |
| 401 | Token expirado | Renove com `POST /login`. |
| 403 | Rate limit excedido | Aguardar 60s ou aplicar backoff. |
| 404 | Credenciais incorretas | Confirmar em **Menu > Integração**. |