Erros
O formato de um erro, o que cada status significa e quando tentar de novo.
A API responde com códigos de status HTTP padrão: 2xx deu certo, 4xx significa que a solicitação precisa mudar, 5xx significa que algo falhou do nosso lado.
O corpo do erro
Todos os erros têm o mesmo formato JSON:
{
"name": "BadRequest",
"message": "Validation error; `data` holds the message for each invalid field",
"code": 400,
"className": "bad-request",
"data": {
"recipient": { "phone": "Invalid phone number" }
}
}coderepete o status HTTP enamedá o nome dele.messageé para você, não para os seus clientes.data, em um erro de validação, traz uma mensagem para cada campo inválido, aninhada como o corpo que você enviou.
Códigos de status
| Status | Nome | O que fazer |
|---|---|---|
400 | BadRequest | Corrija os campos listados em data e envie de novo. |
401 | NotAuthenticated | Faça login de novo: o token está faltando, vencido ou malformado. |
403 | Forbidden | O usuário não pode fazer isso nesta conta. |
404 | NotFound | O objeto não existe, ou pertence a uma conta da qual você não é membro. |
409 | Conflict | O objeto mudou enquanto você o alterava. Leia de novo e tente outra vez. |
429 | TooManyRequests | Diminua o ritmo e tente mais tarde. |
5xx | Tente mais tarde, com uma espera cada vez maior. |
Tentar de novo com segurança
Tente de novo apenas em 409, 429 e 5xx, e espere mais depois de cada tentativa (por exemplo 1, 2, 4 e 8 segundos). Antes de repetir uma solicitação que compra algo, como POST /shipments/labels, leia o envio primeiro: se a primeira tentativa deu certo, ele já tem etiqueta.
Falar com o suporte
As respostas de erro trazem um cabeçalho wsy-request-id. Inclua-o quando falar com o suporte sobre uma solicitação que falhou; ele nos permite encontrar exatamente essa chamada.