Saltar para o conteúdo principal

Formato de erros

Os erros chegam em um de três formatos. A maioria dos endpoints usa o primeiro; os outros dois existem em caminhos específicos e estão listados aqui para que o seu cliente não deixe de encontrar um código de erro que procura. Padrão. Um code para tratamento programático, aninhado em detail.error:
Limite de taxa no nível da conta. Os mesmos campos, porém no nível superior, sem detail — esta resposta é produzida antes de a requisição chegar ao endpoint:
Plano. As etapas de verificação de saque colocam code ao lado de detail, e detail contém a própria mensagem:
Nem toda resposta traz um código. Falhas de validação da requisição voltam no formato próprio do framework, em que detail é um array de erros de campo, não uma string, e algumas verificações internas retornam {"detail": "..."} com uma mensagem simples. Algumas respostas 422 trazem sim um código, no formato padrão — uma chave de idempotência reutilizada, por exemplo.
Leia o código do primeiro campo presente: detail.error.code, depois error.code, depois code. Recorra ao status HTTP quando nenhum deles existir, e nunca presuma que detail é uma string: no formato padrão ele é um objeto e, num erro de validação, um array.

Códigos de status HTTP

Códigos de erro comuns

Retornados no formato padrão, em detail.error.code:
O Node API (node.tronrental.com) tem códigos de erro próprios, em outro formato — veja Node API → Limites e erros.
INSUFFICIENT_BALANCE não é usado em todos os lugares. POST /api/v1/smart-mode/activate e POST /api/v1/transfer-packages/buy relatam a mesma condição como 400, com mensagem e sem código: {"detail":{"error":{"message":"Insufficient balance"}}}. Nesses dois endpoints, não detecte um problema de saldo apenas pelo código.

Códigos da Recarga automática

Retornados no formato padrão pelos endpoints de Recarga automática:

Códigos de verificação de saque

POST /api/v1/account/withdrawal retorna estes códigos de verificação no formato plano, com code ao lado de detail. Os demais erros do mesmo endpoint usam o formato padrão:

Estratégia de novas tentativas

Repita respostas 5xx com recuo exponencial. Para 429, prefira o cabeçalho Retry-After quando a resposta o trouxer, e leia o corpo primeiro — nem todo 429 é um limite de taxa (veja Limites de Taxa).