> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sendaki.tech/llms.txt
> Use this file to discover all available pages before exploring further.

# Erros

> Códigos de estado e formato de erro usados por toda a API.

Todos os endpoints devolvem erros num destes dois formatos:

```json theme={null}
{ "error": "mensagem descritiva do erro" }
```

```json theme={null}
{ "errors": ["lista de erros de validação"] }
```

`POST /emails` usa o formato de lista (`errors`) para erros de validação (400). Todos os outros endpoints usam o formato singular (`error`).

## Códigos de estado

| Código | Significado          | Quando acontece                                                                                          |
| ------ | -------------------- | -------------------------------------------------------------------------------------------------------- |
| `200`  | OK                   | Leitura bem-sucedida (ex: URL de download gerada)                                                        |
| `201`  | Criado               | Email enviado, ou presigned URL de upload gerada                                                         |
| `400`  | Pedido inválido      | Campo obrigatório em falta ou inválido                                                                   |
| `401`  | Não autorizado       | `x-api-key` em falta, inválida ou revogada                                                               |
| `404`  | Não encontrado       | Ficheiro inexistente no S3                                                                               |
| `422`  | Não processável      | Email rejeitado pelo SES — domínio do `from` não verificado, ou (em Sandbox) destinatário não verificado |
| `500`  | Erro interno         | Falha inesperada no servidor                                                                             |
| `503`  | Serviço indisponível | Envio pausado pelo SES                                                                                   |

<Warning>
  Um `401` acontece sempre que a API key está em falta, é inválida, ou foi revogada — nunca assumas que uma chave que funcionou ontem continua válida hoje sem tratar este caso no teu código.
</Warning>

<Tip>
  Um `422` em `POST /emails` normalmente significa que o domínio do `from` ainda não está verificado — confirma o estado em **Settings → Domains** no [workspace](https://app.sendaki.tech) antes de reenviar.
</Tip>
