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

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

Получить заказ

// GET

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

Получение заказа

Прочитайте состояние одного принадлежащего аккаунту заказа, узнайте момент, когда Energy можно тратить, и определите финал доставки.

GET /v1/energy/orders/{id}
На этой странице

Используйте UUID из ответа создания или путь из Location.

Параметр пути

Параметр Тип Описание
id UUID Публичный идентификатор заказа.

Ответ 200

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

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

Поле Тип Описание
status string created, executing, available, delivered, rental_finished, failed или rental_interrupted.
energy_usable boolean Energy на адресе, её уже можно тратить. Истинно и для available, и для delivered — пока не наступил rental_expires_at. После этого момента — ложно, хотя статус ещё какое-то время остаётся delivered: окончание аренды подтверждается по финализированным данным сети.
rental_expires_at integer, отсутствует, если не задано Unix-время окончания оплаченной аренды. Пока Energy не появилась на адресе, ключа нет; в статусе failed его снова нет: удержание возвращено целиком, вместе с ним аннулировано и окно. В статусе rental_interrupted окно сохраняется — эта аренда шла, её лишь прервали.
lifecycle_final boolean Вся аренда завершена; дальнейших переходов не будет.
delivery_final boolean Попытка доставки завершена. В статусе available остаётся false: доставка ещё не подтверждена независимо. true не означает успех — проверьте failure.
failure object, отсутствует, если не задано Приходит в статусе failed с code: energy_delivery_failed и в статусе rental_interrupted с code: energy_delivery_interrupted. В обоих случаях — этот стабильный code и безопасный message.
created_at, updated_at integer Unix-время в секундах.

Когда отправлять транзакцию

Ориентируйтесь на energy_usable, а не на delivered.

{"status":"available","lifecycle_final":false,"delivery_final":false,"energy_usable":true,"rental_expires_at":1784379612}

available означает, что Energy уже делегирована на адрес и её можно тратить, а оплаченное время идёт до rental_expires_at. Примерно через минуту статус сменится на delivered — это независимая проверка доставки; rental_expires_at при этом не сдвигается. Ожидание delivered просто расходует уже оплаченное время аренды.

Когда прекратить опрос

Останавливайтесь только когда оба флага равны true. Успешный полный цикл заканчивается rental_finished. failed и rental_interrupted содержат failure.

Не найдено

Отсутствующий и принадлежащий другому аккаунту ID одинаково возвращают:

{"type":"https://rentron.xyz/docs/errors/codes#energy_order_not_found","title":"Not Found","status":404,"detail":"Order was not found.","code":"energy_order_not_found"}