Документация для разработчиков

Пространство API
https://api.rentron.xyz/v1
Схема OpenAPI

Создать заказ

// POST

API для реальных заказов

Создание заказа

Создайте идемпотентный заказ аренды Energy и получите зафиксированную сумму и URL для проверки статуса.

POST /v1/energy/orders
На этой странице

Каждое бизнес-событие должно иметь стабильный уникальный client_request_id. Это обязательная защита от дублей при сетевых повторах.

Тело запроса

{"client_request_id":"order-1042","address":"TJRabPrwbZy45sbavfcjinPJC18kjpRTv8","energy":65000,"duration_minutes":60,"expected_total_trx":"3.200000"}
Поле Тип Обязательно Описание
client_request_id string да Ваш уникальный ID операции. Повторяйте его только для того же заказа.
address string да Корректный TRON-адрес получателя.
energy integer да Положительный объём, кратный размеру порции.
duration_minutes integer да Разрешённый срок в минутах из полученных параметров аренды.
expected_total_trx string да Точный total_trx из последней котировки, строго с шестью знаками после точки.

Лишние JSON-поля запрещены. Отправляйте Content-Type: application/json.

Ответ 201 или 200

{"id":"7c0c9a54-517c-4bbb-a946-bf14bf86c113","client_request_id":"order-1042","address":"TJRabPrwbZy45sbavfcjinPJC18kjpRTv8","energy":65000,"duration_minutes":60,"total_trx":"3.200000","status":"created","lifecycle_final":false,"delivery_final":false,"created_at":1784376000,"updated_at":1784376000,"energy_usable":false}

В ответе — полная структура заказа из получения заказа, без полей, у которых ещё нет значения: у только что созданного заказа ключей rental_expires_at и failure в ответе нет вовсе, а не приходит null.

  • 201 Created — новый заказ; заголовок Location содержит /v1/energy/orders/{id}.
  • 200 OK — точный идемпотентный повтор, возвращён уже существующий заказ.
  • 409 Conflict с code: energy_order_idempotency_conflict — тот же client_request_id использован с другим адресом, объёмом или сроком.
  • 409 Conflict с code: energy_price_changed — получите новую котировку и подтвердите ещё раз. Заказ не создан, TRX не удержаны.
  • 409 Conflict с code: insufficient_balance — сумма котировки превышает available_trx. Пополните аккаунт и отправьте запрос снова. Заказ не создан, TRX не удержаны.

Идемпотентность

Если время ожидания истекло, не генерируйте новый ID. Повторите тот же JSON и тот же client_request_id. Новый ID создавайте только для нового бизнес-события.

Поля состояния

status показывает стадию заказа. Для автоматического завершения используйте lifecycle_final и delivery_final, а не список строковых статусов. Подробности — в получении заказа.

Ошибки

Возможны 400, 401, 409, 413, 415, 429, 500 и 503. Небезопасно автоматически повторять 400, 401, 409, 413 или 415 без исправления причины.