Ir para o conteúdo

Erros ​

Toda resposta de erro é JSON no formato abaixo. A API não devolve texto para mostrar a pessoas: use o code (estável) para decidir o que fazer e traduza no seu sistema.

json
{
  "code": "VALIDATION_FAILED",
  "fields": { "email": "invalid" }
}
CampoQuando vemSignificado
codesempreCódigo estável do erro (tabela abaixo).
fieldsem VALIDATION_FAILED e CONFLICT por campoMapa campo → código do problema (required, invalid, too_short, too_long, out_of_range, taken, weak, reused, too_soon, wrong_password, locked).
retryAfterSegem RATE_LIMITEDSegundos até poder tentar de novo (o mesmo valor vai no cabeçalho Retry-After).
excecoes, falhasem erros específicos de presençaDetalhes do pedido; veja o modelo ErroApi.
requestIdpode virIdentificador para citar ao falar com o suporte.

Status HTTP e códigos ​

StatuscodeO que fazer
400VALIDATION_FAILEDCorpo, parâmetro ou consulta inválidos; fields aponta onde. Corrija e envie de novo.
401UNAUTHENTICATEDToken ausente, vencido ou inválido. Renove ou entre de novo.
403FORBIDDENA conta não tem permissão neste escopo. Em rotas com escopo (turma, disciplina, instituição), um identificador que não existe também resulta em 403. Não adianta repetir.
404NOT_FOUNDO recurso não existe.
409CONFLICTConflito com o estado atual: por exemplo fields: { "sigla": "taken" } ao criar disciplina com sigla já usada. Também no aplicar parcial sem o hashConteudo correto.
413PAYLOAD_TOO_LARGECorpo maior que o limite (100 KB). Divida em partes.
422UNPROCESSABLEReservado para pedidos válidos que não podem ser processados; é raro nas rotas atuais.
429RATE_LIMITEDMuitas chamadas. Espere retryAfterSeg e tente de novo.
500INTERNALFalha do servidor. Tente de novo depois, com espera crescente.

Há ainda códigos de regras de negócio (por exemplo ALREADY_CONFIRMED, FEEDBACK_CLOSED, LAST_ADMIN, LAST_CURATOR); todos estão listados no modelo ErroApi.

Quais erros repetir ​

SituaçãoRepetir?
429, 500, falha de redeSim, com espera (respeite Retry-After; sem ele, comece em 1 s e dobre até 60 s).
401Uma vez, depois de renovar o token.
400, 403, 404, 409, 413, 422Não: o resultado será o mesmo até o pedido ou o estado mudar.

Operações de importação (.../importacoes/...) são idempotentes: repetir o mesmo arquivo não duplica nada. Já POST de criação unitária (por exemplo POST /turmas/{turmaId}/atividades) não é idempotente: repetir cria outra atividade. Veja as jornadas.

contato@presente.app.br