# Autenticação

## Esquema

A API usa **Basic Auth** padrão HTTP. A Movvia fornece as credenciais (`client_id:client_secret`) no onboarding.

Codifique em Base64 e envie no header `Authorization`:


```bash
# Codificar credenciais
CREDENTIALS=$(echo -n "client_id:client_secret" | base64)

# Usar na requisição
curl https://hml.api.pedagioeletronico.com.br/gestao-webhooks-api/v1/me \
  -H "Authorization: Basic $CREDENTIALS"
```

Variável de ambiente
Armazene as credenciais já codificadas em `MV_KEY` e use `-H "Authorization: Basic $MV_KEY"` nas requisições. Nunca comite credenciais no código.

## Descoberta de identidade

Antes de fazer qualquer outra chamada, obtenha seu `parceiroId` via `GET /me`:


```bash
curl https://hml.api.pedagioeletronico.com.br/gestao-webhooks-api/v1/me \
  -H "Authorization: Basic $MV_KEY"
```

Resposta:


```json
{
  "parceiroId": "par_7f3a1b2c",
  "nome": "Parceiro Exemplo Ltda",
  "modo": "FILTRADO",
  "status": "ativo"
}
```

## Header obrigatório: x-parceiro-id

Após obter o `parceiroId`, inclua-o em **todas** as demais requisições:


```bash
curl https://hml.api.pedagioeletronico.com.br/gestao-webhooks-api/v1/placas \
  -H "Authorization: Basic $MV_KEY" \
  -H "x-parceiro-id: par_7f3a1b2c" \
  -H "Content-Type: application/json" \
  -d '{"placa":"ABC1D23"}'
```

Requisições sem `x-parceiro-id` retornam `400 Bad Request`.

## Erros de autenticação

| Código | Causa | Ação |
|  --- | --- | --- |
| `401 Unauthorized` | Credenciais inválidas ou expiradas | Verificar `MV_KEY`; solicitar novas credenciais |
| `403 Forbidden` | Parceiro sem permissão para o recurso | Verificar plano; contatar suporte |
| `400 Bad Request` | Header `x-parceiro-id` ausente | Incluir o header em todas as requisições |


## Rotação de credenciais

Credenciais não expiram automaticamente. Para rotacionar, solicite ao suporte. O período de sobreposição é de 24h — ambas as credenciais funcionam durante a transição.