Tratamento de Erros
Estrutura padrão de respostas de erro da Perpetuus API.
A Perpetuus API utiliza códigos de status HTTP padrão para indicar o sucesso ou falha de uma requisição de API. Em caso de erro, a API retorna um payload JSON estruturado contendo detalhes sobre o problema para facilitar o diagnóstico.
Estrutura do Erro JSON
Todos os erros retornados pela API seguem este formato de envelope:
{
"error": {
"status": 400,
"name": "ValidationError",
"message": "x-tenant-id header is required",
"details": {}
}
}status: O código de status HTTP correspondente.name: A classe ou categoria do erro (ex:ValidationError,UnauthorizedError,ForbiddenError,NotFoundError).message: Uma descrição clara do erro legível por humanos.details: Detalhes adicionais específicos (como validação de campos ausentes ou chaves duplicadas).
Tabela de Códigos de Status HTTP
| Código | Nome do Erro | Causa Comum | Como Resolver |
|---|---|---|---|
| 400 | Bad Request | Parâmetros inválidos, payloads incorretos ou ausência do header x-tenant-id | Verifique o payload enviado e garanta que o header x-tenant-id esteja presente. |
| 401 | Unauthorized | Token ausente, expirado ou inválido no header Authorization | Gere um novo token de API nas Configurações da Organização e verifique a expiração. |
| 403 | Forbidden | Usuário ou token autenticado não possui permissão para o recurso ou o plano não dá direito à feature | Verifique os papéis de acesso do usuário ou contate o administrador sobre limites do plano contratado. |
| 404 | Not Found | Registro com o documentId especificado não existe ou a URL está incorreta | Valide se o documentId (ex: de um card ou board) foi digitado corretamente e não foi excluído. |
| 422 | Unprocessable Entity | Validação de negócio falhou (ex: tentar mover card para fase bloqueada ou preço abaixo do mínimo) | Revise as regras do board ou fluxo de automação para entender qual validação de negócio bloqueou a ação. |
| 429 | Too Many Requests | Limite de taxa (Rate Limit) de requisições excedido para o token ou IP | Reduza a frequência das requisições e implemente uma estratégia de backoff exponencial. |
| 500 | Internal Server Error | Erro inesperado nos servidores do Perpetuus | Tente novamente em alguns segundos. Se persistir, entre em contato com nosso suporte técnico. |
Exemplo de Erro de Validação (400)
Ao tentar criar um card sem preencher os campos dinâmicos obrigatórios definidos para a fase de entrada (Phase 0):
{
"error": {
"status": 400,
"name": "ValidationError",
"message": "Fields validation failed",
"details": {
"errors": [
{
"path": ["name"],
"message": "O campo 'name' é obrigatório no formulário de entrada deste Board."
}
]
}
}
}