Saltar al contenido principal

Formato de errores

Los errores llegan en una de tres formas. La mayoría de los endpoints usa la primera; las otras dos existen en rutas concretas y se listan aquí para que tu cliente no pase por alto un código de error que está buscando. Estándar. Un code para manejo programático, anidado en detail.error:
Límite de tasa a nivel de cuenta. Los mismos campos, pero en el nivel superior y sin detail: esta respuesta se produce antes de que la solicitud llegue al endpoint:
Plana. Los pasos de verificación de retiro colocan code junto a detail, y detail contiene el mensaje en sí:
No toda respuesta trae un código. Los fallos de validación de la solicitud llegan en el formato propio del framework, donde detail es un array de errores de campo y no una cadena; unas pocas comprobaciones internas devuelven {"detail": "..."} con un mensaje simple. Algunas respuestas 422 sí traen código, en la forma estándar — por ejemplo una clave de idempotencia reutilizada.
Lee el código del primero de estos campos que esté presente: detail.error.code, luego error.code, luego code. Si no hay ninguno, guíate por el estado HTTP, y nunca supongas que detail es una cadena: en la forma estándar es un objeto y, en un error de validación, un array.

Códigos de estado HTTP

Códigos de error comunes

Se devuelven en la forma estándar, en detail.error.code:
Node API (node.tronrental.com) tiene sus propios códigos de error, en otro formato — consulta Node API → Límites y errores.
INSUFFICIENT_BALANCE no se usa en todas partes. POST /api/v1/smart-mode/activate y POST /api/v1/transfer-packages/buy informan la misma condición como 400, con mensaje y sin código: {"detail":{"error":{"message":"Insufficient balance"}}}. En esos dos endpoints, no detectes un problema de saldo solo por el código.

Códigos de Recarga automática

Se devuelven en la forma estándar desde los endpoints de Recarga automática:

Códigos de verificación de retiro

POST /api/v1/account/withdrawal devuelve estos códigos de verificación en la forma plana, con code junto a detail. Los demás errores del mismo endpoint usan la forma estándar:

Estrategia de reintentos

Reintenta las respuestas 5xx con retroceso exponencial. Para 429, prefiere la cabecera Retry-After cuando la respuesta la incluya, y lee primero el cuerpo: no todo 429 es un límite de tasa (ver Límites de tasa).