Skip to main content

Formato do erro

Toda resposta de erro segue o mesmo shape:
  • code — string estável (não muda entre versões). Programe contra isto.
  • message — texto humano. Pode mudar entre releases (é pra log/debug).
  • details — opcional, presente em VALIDATION. Array com um item por campo problemático.

Códigos possíveis

Códigos HTTP

207 Multi-Status em detalhe

Endpoints de escrita em lote (POST /produtos, /variantes, /estoque, /precos) processam cada item individualmente. Se alguns falham, o response é HTTP 207 com o mesmo formato de sucesso — mas com contagem de erros e resultados[].acao === "erro" em cada item problemático.
Comportamento programático:
  • Se parcial === true: pelo menos 1 item falhou, pelo menos 1 sucedeu → retrata só os itens que falharam (não o lote inteiro)
  • Se totalmente_falho === true: nenhum item passou → response vem com HTTP 400; investigar antes de retentar

Quando retentar

Regra geral: retente 5xx e 429. Não retente 4xx — problema é no payload ou no estado, retentar sem mudar nada gera o mesmo erro.

Exemplo de tratamento