Skip to main content

Formato de Erro

Todos os erros seguem o mesmo formato JSON:
{
  "error": "Descrição legível do problema."
}
Sem envelope, sem array, sem campo code separado — só error com a mensagem. Isso mantém o tratamento simples no frontend.

Status Codes

StatusSignificadoQuando ocorre
200OKLeitura ou atualização bem-sucedida
201CreatedRecurso criado com sucesso
400Bad RequestCampos obrigatórios faltando ou valor inválido
401UnauthorizedToken ausente ou expirado
403ForbiddenToken válido, mas o recurso pertence a outro usuário
404Not FoundRecurso não existe no banco
409ConflictViolação de unicidade (ex: CPF duplicado, contrato ativo)
500Internal ErrorErro inesperado no servidor — verifique os logs

Exemplos Reais

{
  "error": "contratoId, descricao, valor, dataVencimento e tipo são obrigatórios."
}

Tratamento no Frontend

const res = await fetch("https://api.patrimonion.com.br/financeiro", {
  method: "POST",
  credentials: "include", // envia o cookie imob_session automaticamente
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify(payload),
});

if (!res.ok) {
  const { error } = await res.json();
  // error é sempre uma string legível
  toast.error(error);
  return;
}

const data = await res.json();