# Autenticação

A API Easypay utiliza autenticação por chave API para proteger as solicitações servidor-a-servidor.

## Como Funciona

Todas as solicitações à API devem incluir dois cabeçalhos HTTP:


```
AccountId: <SEU_ACCOUNT_ID>
ApiKey: <SUA_API_KEY>
```

Estas credenciais autenticam a sua aplicação e autorizam o acesso aos recursos da sua conta Easypay.

## Obter as Suas Credenciais

Para criar credenciais para a sua conta:

1. Inicie sessão na sua conta Easypay
2. Siga [este guia](https://www.easypay.pt/blog/como-gerar-chaves-de-autenticacao/) para gerar as suas chaves API


## Credenciais de Teste

Para desenvolvimento e testes, pode usar estas credenciais:


```
AccountId: 2b0f63e2-9fb5-4e52-aca0-b4bf0339bbe6
ApiKey: eae4aa59-8e5b-4ec2-887d-b02768481a92
```

**Importante**:

- Estas credenciais apenas funcionam no **ambiente de teste**
- **Não funcionarão** em produção
- Nunca use credenciais de produção no seu ambiente de teste


## Erros de Autenticação

Quando os cabeçalhos de autenticação estão em falta ou incorretos, a API retorna um código de estado HTTP `403 Forbidden`.

### Erros Comuns de Autenticação

**Cabeçalhos em Falta**


```json
{
  "status": "error",
  "message": "Authentication Error: Missing AccountId or ApiKey headers"
}
```

**Credenciais Inválidas**


```json
{
  "status": "error",
  "message": "Authentication Error: Invalid AccountId or ApiKey"
}
```

**Conta Bloqueada**


```json
{
  "status": "error",
  "message": "Authentication Error: Your account has been blocked"
}
```

**Permissões Insuficientes**


```json
{
  "status": "error",
  "message": "Authentication Error: Insufficient permissions for this action"
}
```

## Exemplo de Solicitação

Aqui está um exemplo de uma solicitação devidamente autenticada:


```bash
curl -L -X GET 'https://api.test.easypay.pt/2.0/single/5eca7446-14e9-47bb-aabb-5ee237159b8b' \
  -H 'AccountId: 2b0f63e2-9fb5-4e52-aca0-b4bf0339bbe6' \
  -H 'ApiKey: eae4aa59-8e5b-4ec2-887d-b02768481a92'
```

## Boas Práticas de Segurança

1. **Mantenha as Credenciais Secretas**: Nunca exponha as suas chaves API em código do lado do cliente, repositórios públicos ou logs
2. **Use Variáveis de Ambiente**: Armazene credenciais em variáveis de ambiente, não no seu código-fonte
3. **Rode as Chaves Regularmente**: Regenere periodicamente as suas chaves API
4. **Use Chaves Diferentes**: Use chaves separadas para ambientes de teste e produção
5. **Monitorize o Uso**: Reveja regularmente os logs de uso da API para atividades suspeitas


## Próximos Passos

- [Ambientes](/docs/environments) - Aprenda sobre os ambientes de teste e produção
- [Tratamento de Erros](/docs/error-handling) - Trate erros de autenticação e outros
- [Início Rápido](/docs/quickstart) - Faça a sua primeira chamada autenticada à API