Коды ошибок
При сбое API-вызова ответ содержит ненулевой code и понятное человеку сообщение error.
Формат ответа с ошибкой
json
{
"code": 60,
"key": "address_from",
"request_id": "550e8400-e29b-41d4-a716-446655440000",
"error": "Invalid TRON address"
}| Поле | Описание |
|---|---|
code | Ненулевой целочисленный код ошибки. |
key | Название поля, вызвавшего ошибку, если применимо. Иначе пустая строка. |
request_id | Уникальный идентификатор запроса. Указывайте при обращении в поддержку. |
error | Понятное человеку описание ошибки. |
HTTP-коды статуса
| HTTP-статус | Значение |
|---|---|
200 | Запрос выполнен успешно (code: 0) или ошибка на уровне приложения (code: non-zero). |
429 | Превышен лимит запросов — 1 запрос/секунда/IP на эндпоинтах /v1/orders*. |
422 | Неприемлемый запрос — ошибка валидации (также возвращается как code: non-zero в теле). |
500 | Внутренняя ошибка сервера — непредвиденный сбой на нашей стороне. |
Распространённые случаи ошибок
| Ситуация | Вероятная причина |
|---|---|
Неверный address_from или address_to | Не является корректным адресом TRON (должен начинаться с T, 34 символа). |
duration не равно 1 | Поддерживается только аренда на 1 час. |
Оба поля energy и bandwidth равны 0 | Необходимо запросить хотя бы один ресурс. |
energy или bandwidth вне допустимых пределов | Запрошенное количество ниже минимума или выше максимума для данного проекта. |
| Дублирующий активный заказ | Активный заказ для той же пары address_from + address_to уже существует в статусе new. |
order_id не найден | order_id, переданный в check или cancel, не существует. |
| Превышен лимит запросов | Вы отправляете более 1 запроса/секунду с одного IP. Сделайте паузу и повторите попытку. |
referral_code слишком длинный | Строка referral_code превышает 64 символа. |
Обработка ошибок
- Всегда проверяйте
codeв теле ответа — HTTP 200 не гарантирует успех. - Записывайте
request_idвместе с любой ошибкой для отладки. - При HTTP 429 реализуйте экспоненциальную задержку перед повторной попыткой.
- При ошибке
duplicate active orderиспользуйте Проверку заказа, чтобы получить существующий заказ вместо создания нового.
