VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API legada/Guia rápido/Primeiros passos

Erros

O formato de erro da API legada, com exemplos reais e o significado de cada código HTTP.

Quando algo dá errado, a API responde com um código HTTP (4xx para erro seu, 5xx para erro da plataforma) e um corpo JSON com a descrição. O código HTTP é o que decide o seu fluxo (repetir, corrigir, parar); a mensagem serve para o log e para a pessoa que vai investigar.

Pontos-chave
  • O corpo é {"status": 404, "message": "mensagem"}. O status repete o código HTTP.
  • A rota POST /api/v1.0/auth_tokens é a exceção: responde {"error": "..."} ou só {"message": "..."}.
  • Decida pelo código HTTP, nunca pelo texto da mensagem: o texto pode mudar.
  • As mensagens vêm em inglês, e algumas regras da loja em português. Elas são devolvidas como o servidor as escreve.
  • Guarde o cabeçalho X-Request-Id da resposta: é o que o suporte precisa para achar a chamada.

O formato do erro

json
{ "status": 404, "message": "Product not found" }

Mais exemplos reais: {"message":"user_id is required","status":400} (campo obrigatório) e {"message":"Invalid credentials","status":401}. A mensagem é uma frase curta; não há campos extras.

A rota POST /api/v1.0/auth_tokens responde por conta própria: {"error":"invalid credentials"} (401), {"message":"Required field: password"} (400) e {"error":"invalid JSON"} (400), sem o campo status.

Códigos HTTP

StatusSignificadoO que fazer
200, 201Deu certo. 201 indica que algo foi criado.Siga em frente.
204Deu certo e não há corpo (por exemplo, ao cancelar um pedido ou excluir um usuário).Siga em frente.
400Requisição inválida: JSON quebrado, campo obrigatório ausente, valor fora do permitido, regra de negócio violada.Corrija a requisição. Repetir igual falha de novo.
401Sem credencial, credencial inválida ou token vencido ou revogado.Peça um token novo. Em Basic, confira e-mail e chave.
403A credencial é válida, mas não tem permissão: usuário que não é administrador, ou token de outra loja.Ajuste permissões. Não adianta repetir.
404O registro não existe, ou a loja não foi encontrada.Confira o id e a loja.
422Uma regra da loja recusou a operação. A mensagem é a da loja.Mostre a mensagem; corrija os dados.
500Erro interno, ou uma validação que a rota não trata (um id malformado, por exemplo).Pode repetir com espera crescente; se persistir, abra um chamado com o X-Request-Id.
503Loja suspensa, em manutenção, ou a rota estourou o tempo.Espere e repita.

Exemplos reais

Falta a credencial (401)

json
{ "status": 401, "message": "Authentication required. Use HTTP Basic with email:api_key or Bearer <jwt>." }

Chave incorreta (401)

json
{ "status": 401, "message": "Invalid credentials" }

Sem permissão (403)

json
{ "status": 403, "message": "Forbidden: admin scope required" }

Registro inexistente (404)

json
{ "message": "Order not found", "status": 404 }

Validação (400)

json
{ "message": "product (name) is required", "status": 400 }
json
{ "message": "shipping_service_unavailable: a shipping method is required for physical products", "status": 400 }

Id malformado (500 em algumas rotas)

Algumas rotas não validam o formato do id e respondem 500 com a descrição do problema na mensagem. Valide o UUID no seu sistema antes de enviar:

json
{ "message": "Failed to retrieve product", "status": 500 }

Tempo esgotado (503)

Uma rota que demora demais é interrompida pela plataforma e responde 503. Trate como erro repetível.

Erros que acontecem antes da sua rota

Duas verificações rodam antes do código da operação, e por isso os erros delas se parecem em toda a API:

  1. A loja (Endereço e ambientes): 404 tenant not found, 503 tenant_suspended.
  2. A autenticação (Autenticação): 401 e 403 com as mensagens da tabela daquela página.

Como tratar erros no seu código

  1. Olhe o código HTTP primeiro

    2xx segue em frente. 401 pede um token novo (ou revê a chave). 503 e 5xx entram em repetição com espera. O resto é erro seu.

  2. Leia o corpo para o log e para o usuário

    Registre o corpo inteiro e o X-Request-Id. A descrição está em message.

  3. Repita só o que é seguro repetir

    Nunca repita um 400, 403 ou 404 sem mudar algo. Para criações (pedido), confira antes se o registro já existe (Limites e boas práticas).

Erros comuns

  • Procurar o campo error. Aqui a descrição está em message; só a rota auth_tokens usa error.
  • Repetir um 400 em loop. Ele nunca passa sem mudança.
  • Fazer if mensagem == "...". Use o código HTTP.
  • Ignorar o 500 numa consulta por id. Em geral é um id malformado.

Veja também

Autenticação
Os erros 401 e 403 em detalhe.
Limites e boas práticas
Repetição segura e tempo limite.
Referência completa
Todas as rotas da API legada.
Anterior
Convenções
Próxima
Limites e boas práticas
Nesta página
  • O formato do erro
  • Códigos HTTP
  • Exemplos reais
  • Falta a credencial (401)
  • Chave incorreta (401)
  • Sem permissão (403)
  • Registro inexistente (404)
  • Validação (400)
  • Id malformado (500 em algumas rotas)
  • Tempo esgotado (503)
  • Erros que acontecem antes da sua rota
  • Como tratar erros no seu código
  • Erros comuns
  • Veja também