Pular para o conteúdo principal
Quando uma chamada falha, a API responde com um status HTTP de erro e, na maioria dos casos, um corpo JSON curto com o status e a mensagem. Trate os erros pelo status HTTP: a mensagem serve para log e depuração, não para lógica.

Formato da resposta

422 Unprocessable Content
string
O código HTTP, como string ("404", "422").
string
A mensagem do erro, em inglês. Quando há mais de uma, elas vêm juntas na mesma string, separadas por |.
O formato vale para a Merchant API V3, a Partner API V2 e o Open Delivery.
Exceções ao formato. Não assuma que todo erro tem corpo:
  • 401 vem com status numérico: { "title": "Unauthorized", "status": 401 }.
  • 403 por falta de scope vem sem corpo.
  • O endpoint de token (/authentication/v1/oauth/token) usa o padrão OAuth2, com error e error_description. Veja Autenticação.
  • 429 pode vir sem o corpo padrão. Veja Rate limiting.

Códigos HTTP

Sucesso sem corpo. 204 No Content não é erro: o polling sem eventos novos e as listagens sem resultados respondem 204, sem corpo. Não tente fazer parse do JSON nesses casos.

Tratando erros no código

Repita só o que pode dar certo na segunda vez. 401 (com token novo), 429 e 5xx merecem nova tentativa com backoff. 400, 403, 404, 406 e 422 precisam de correção antes.