API: códigos de erro

Formato padronizado e catálogo completo.

Formato

json
{
  "error": {
    "code": "validation_failed",
    "message": "Transição de status inválida: aceito → rascunho",
    "status": 422,
    "details": { "field": "status" }
  }
}

Catálogo

CódigoHTTPSignificado
invalid_request400Payload malformado ou campo obrigatório ausente.
unauthorized401API key ausente ou inválida.
forbidden403Key não tem o escopo necessário.
freight_not_found404Frete não existe ou não pertence à empresa.
driver_not_found404Motorista não existe ou não pertence à empresa.
conflict409Recurso já existe (ex: code duplicado).
validation_failed422Falha em regra de negócio (transição inválida, etc.).
rate_limited429Limite de requisições excedido. Veja headers X-RateLimit-*.
internal_error500Erro interno. Tente novamente; persiste? Abra ticket.