Documentation
Códigos de erro
A CoffeeMail usa códigos HTTP padrão combinados com um campo `code` legível por máquina no envelope de erro. O SDK Node tipa cada status como uma classe especializada você sempre recebe a instância correta para inspecionar e tratar.
| Código | HTTP | Descrição |
|---|---|---|
| VALIDATION_ERROR | 400 | Payload inválido. Verifique o schema e os tipos dos campos. |
| UNAUTHORIZED | 401 | API Key ausente, inválida ou expirada. |
| PAYMENT_REQUIRED | 402 | Limite do plano atingido ou assinatura suspensa. Faça upgrade. |
| FORBIDDEN | 403 | A chave não tem permissão para este recurso. |
| NOT_FOUND | 404 | Recurso não encontrado ou inacessível pela sua organização. |
| CONFLICT | 409 | Conflito de unicidade (ex: domínio já cadastrado). |
| RATE_LIMIT_EXCEEDED | 429 | Rate limit excedido. Respeite o header Retry-After. |
| INTERNAL_SERVER_ERROR | 500 | Falha interna da plataforma. Tente novamente em alguns instantes. |
Exemplo de payload
JSONjson
Tratamento com o SDK Node
O SDK mapeia cada código acima para uma classe especializada exportada de @coffeemail/node:
handle-errors.ts
Política de retentativas
Recomendamos retries com backoff exponencial e jitter para erros 5xx e 429. Nunca retentative erros 4xx (exceto 429) sem antes corrigir o payload.