Erros e limites
O formato de todo erro, os códigos que sua integração deve tratar e o limite de chamadas.
Formato
Todo erro da API tem o mesmo corpo:
{
"code": "invalid_parameter",
"detail": "\"page_size\" vai até 100."
}
codeé para o seu programa. É estável: um código publicado não muda de nome nem some.detailé para pessoas. Pode mudar de redação a qualquer momento: não compare texto.
O que fazer com cada um
| HTTP | code | O que fazer |
|---|---|---|
| 400 | invalid_parameter |
Erro do seu lado: corrija a chamada. O detail diz qual parâmetro. Não repita igual |
| 401 | missing_api_key, invalid_api_key |
Confira o cabeçalho e o ambiente. Não repita em laço |
| 401 | api_key_revoked, api_key_expired |
A chave parou de valer. Peça uma nova ao administrador do cliente |
| 403 | insufficient_scope |
A chave não tem o escopo do endpoint. Peça o acesso |
| 403 | module_disabled |
O cliente não tem o módulo contratado |
| 403 | store_not_allowed |
A chave está restrita a algumas lojas e você pediu outra |
| 404 | not_found |
Rota inexistente. Confira o caminho e a versão |
| 405 | method_not_allowed |
Método HTTP errado para a rota |
| 409 | idempotency_key_reused |
Você repetiu um Idempotency-Key com outro corpo. Gere uma chave nova para cada lote diferente |
| 429 | rate_limited |
Espere os segundos do cabeçalho Retry-After e repita |
| 500 | internal_error |
Repita com espera crescente. Se persistir, fale com o suporte informando hora e prefixo da chave |
A lista completa, sempre atualizada, está na referência.
Limite de chamadas
Cada chave pode fazer 120 chamadas por minuto. Acima disso, a resposta é 429
rate_limited com o cabeçalho Retry-After, em segundos.
Para ficar longe do limite:
- use
page_size=100em vez de muitas páginas pequenas; - nos envios, mande lotes cheios (até 500 itens por chamada) em vez de um item por chamada;
- use
updated_sinceem vez de ler tudo de novo: Paginação e sincronização; - não rode várias cópias do mesmo laço em paralelo com a mesma chave.
Repetir com segurança
Repita só o que pode dar certo na segunda vez: 429, 500, timeout e erro de rede. Use espera
crescente, por exemplo 1 s, 2 s, 4 s e 8 s, e pare depois de algumas tentativas. Erros 4xx
(menos o 429) não se resolvem repetindo.