# Autenticação (/guias/autenticacao)

Gere a chave de API no painel e envie em toda chamada no header Authorization.

A API identifica a sua conta pela **chave de API**. Toda chamada leva a chave no
header `Authorization`, no formato `Bearer`. Sem a chave, ou com uma chave
inválida, a API responde `401`.

## Gerar a chave

Cadastre ao menos um IP de servidor em **Integração**. A chave só é gerada para
contas com IP cadastrado; veja [Liberação de IP](/guias/liberacao-de-ip).

No [painel](https://painel.gates2b.com), abra **Integração** e gere a chave de API.

Copie a chave e guarde no cofre de segredos da sua aplicação. Ela não é exibida
de novo.

## Enviar a chave

Envie estes headers em todas as chamadas:

```http
Authorization: Bearer <sua-chave-de-api>
Content-Type: application/json
```

Antes de executar qualquer operação, a API confere duas coisas, nesta ordem:

*Figura: O que a API confere em cada chamada antes de executar a operação.*
- A chave é válida?: 1ª checagem — Se faltar, estiver fora do formato Bearer ou for inválida: 401.
- O IP está liberado?: 2ª checagem — Se a chamada vier de IP fora da lista: 403 API_KEY_IP_NOT_ALLOWED.
- Operação executada: liberada — A chamada segue para o endpoint pedido.

Para confirmar que a chave funciona antes de integrar o resto:

```bash
curl "https://api.gates2b.com/api-key/validate" \
  -H "Authorization: Bearer $API_KEY"
```

A resposta e os campos estão em [Validar chave de API](/api-reference/endpoint/api-key-validate).

## Erros de autenticação [#erros-de-autenticação]

| Status | `code` | Quando |
| --- | --- | --- |
| `401` | `UNAUTHORIZED` | Header ausente, fora do formato `Bearer <chave>` ou chave inválida/revogada. |
| `403` | `API_KEY_IP_NOT_ALLOWED` | A chave é válida, mas a chamada saiu de um IP fora da lista da conta. |

## Guarde a chave como senha

**A chave de API movimenta a sua conta**
Quem tem a chave cria cobranças e reembolsos em seu nome. Trate como senha de
produção.

- Guarde em cofre de segredos ou variável de ambiente, nunca no código-fonte nem
  no repositório.
- Use só no backend. Não coloque no front-end, no app mobile nem em URL.
- Não registre a chave em log e não envie por e-mail, chat ou atendimento.
- Se a chave vazar, gere uma nova no painel, troque nos seus servidores e avise o
  [suporte](https://t.me/Gates2b) para invalidar a anterior.
