Документация по API

Сервис EnergyFather помогает покупать (арендовать) энергию и пропускную способность, необходимые для отправки транзакций в USDT и других TRC20 крипто-токенах; пропускная способность также необходима для отправки любого типа транзакций на TRON блокчейне, например, отправки TRX, получения вознаграждений и голосования за Super Representatives.

Процедура покупки энергии

Чтобы купить энергию, необходимо зарегистрироваться в сервисе EnergyFather, получить токен авторизации на странице "Покупатель > API токены" и пополнить баланс счета Покупателя.

После создания ордера (метод ‘buy/energy’) энергия может поступать с задержкой в несколько секунд или даже минут, поэтому при разработке автоматизированных систем рекомендуется периодически проверять исполнение ордера, запрашивая метод ‘order/get/{guid}’.

Например, если вы планируете отправить USDT и хотите сделать транзакции дешевле, купив энергию, вы сделаете следующее:

  • запросите метод ‘buy/energy’, чтобы оценить необходимое количество энергии и купить ее,
  • периодически запрашивать ‘order/get/{guid}’ метод, пока энергия не будет делегирована (обычно это занимает несколько секунд),
  • отправить USDT (купленная энергия будет использована для оплаты комиссии за транзакцию).

Общие замечания

В этой документации выражение, заключенное в фигурные скобки, например ‘{guid}’ или ‘{id}’, означает значение соответствующей переменной:

  • ‘{guid}’ - глобальный уникальный идентификатор объекта в формате EnergyFather (обычно 8 цифр),
  • ‘{id}’ - порядковый номер объекта для данного пользователя (нумерация начинается с ‘1’ для каждого пользователя).

Конечная точка API

https://panel.energyfather.com/api/v1/private

Отправляйте запросы, используя метод POST.

Авторизация запросов

Для подтверждения (авторизации) запросов к частному API необходимо передать заголовок HTTP:

Token: {token}

Управление токенами авторизации находится в панели управления, на странице "Покупатель > API токены".

Например, вы можете получить информацию о заказе 123456 следующим образом:

CURL -X POST 'https://panel.energyfather.com/api/v1/private/order/get/123456' 
-H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS'

Статус заказа

  • "0" - Ожидается. Заказ только что был создан.
  • "1" - Ожидание платежа. Ссылка на оплату уже сгенерирована, EnergyFather ожидается обратный звонок от платежной системы. Этот статус не используется, если заказ оплачивается полностью за счет средств, имеющихся на внутреннем счете.
  • "2" - Процедура делегирования энергии продолжается.
  • "3" - Делегирование. Энергия отдается.
  • "4" - Восстановленный (Неделегированный). Энергия изымается в связи с окончанием оплаченного периода времени.
  • "5" - Оплачено. Заказ оплачен и добавлен в очередь на доставку энергии.
  • "6" - Ошибка.

Обычная последовательность статусов: 0, 5, 2, 3, 4.

API методы
  • /api/v1/private/buy/energy - купить энергию (оплачивается с внутреннего счета)
  • /api/v1/private/order/list - получить список ваших заказов
  • /api/v1/private/order/get/{guid} - получить информацию о вашем заказе
  • /api/v1/private/account/list - получите список ваших внутренних счетов
  • /api/v1/private/account/get/{id} - получить информацию о вашем внутреннем счете

Метод "buy/energy" - покупка энергии (оплата с внутреннего счета)

Запрос на покупку энергии зарегистрированным клиентом со списанием с внутреннего счета. Энергия немедленно отправляется по указанному адресу.

Если на внутреннем счете недостаточно средств, заявка будет создана и сразу же получит статус "6" (Ошибка). В этом случае необходимо посетить панель, пополнить счет, а затем отправить новую API заявку на покупку энергии.

Существует два способа определения количества закупаемой энергии:

a) Вы можете задать точное количество энергии в параметре "amount", тогда вы также должны задать amount_source="amount".

б) Если вы не знаете, сколько энергии требуется для транзакции, чтобы отправить USDT или другой токен, вы можете установить amount_source="estimate" и заполнить соответствующие параметры (estimate_to, estimate_token, estimate_adjust_percent).

buy/energy: Пример запроса с точным количеством энергии

curl -X 'POST' 
  'https://panel.energyfather.com/api/v1/private/buy/energy' 
  -H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS' 
  -d '{
    "format": "json",
    "to":     "TQHAAJWLLEjBgYq2sjUnq4kbKfajEXEvyE",
    "amount_source": "amount", 
    "amount": 31895,
    "period_type": "days",
    "period_amount": 3
}'

buy/energy: Пример запроса с расчетом необходимого количества энергии

curl -X 'POST' 
  'https://panel.energyfather.com/api/v1/private/buy/energy' 
  -H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS' 
  -d '{
    "format": "json",
    "to":     "TQHAAJWLLEjBgYq2sjUnq4kbKfajEXEvyE",
    "amount_source": "estimate", 
    "estimate_to": "TLVkYEp4Ue2RpK5v1XNZAB3769g44BSZyH,TJm6HiCMVZdBHbNHThdMv1RambstJPrfYo",
    "estimate_token": "USDT",
    "estimate_adjust_percent": 0.04,
    "period_type": "days",
    "period_amount": 3
}'

buy/energy: Параметры запроса

  • to (строка, обязательно) - TRON адрес, на который должна быть делегирована энергия
  • period_amount (целое число, обязательно) - период времени для покупки энергии
  • period_type (строка, обязательно) - тип периода времени. Возможные значения: days, hours.
  • format (строка, необязательно) - формат ответа. Возможные значения: json (default), xml.
  • amount_source (строка, обязательно) - алгоритм определения количества делегированной энергии. Если значение "amount", то используется значение параметра "amount". Если значение "estimate", то необходимое количество энергии рассчитывается на основе параметров estimate_to, estimate_token, estimate_adjust_percent. Возможные значения: amount, estimate.
  • amount (целое число, обязательно, если amount_source="amount") - количество приобретаемой энергии. Игнорируется, если amount_source="estimate".
  • estimate_to (строка, обязательно, если amount_source="estimate") - список TRON адресов, на которые планируется отправлять транзакции с токенами, разделенный запятыми
  • estimate_token (строка, обязательна, если amount_source="estimate") - токен TRC20. Возможные значения (с учетом регистра): USDT, USDC, USDD, USDJ, JST, TUSD, stUSDT, WTRX.
  • estimate_adjust_percent (десятичное, обязательно, если amount_source="estimate") - количество избыточной энергии, выраженное в процентах. Этот избыток необходим для того, чтобы избежать сгорания TRX, которое может произойти, если адрес имеет ровно необходимое количество энергии. Рекомендуемое значение 0.04%..

Важно: В настоящее время действуют только 6 периодов: 1 hour и 1, 3, 7, 15, 30 days.

buy/energy: Ответ

В случае успеха в ответе будет указан заказ GUID, по которому впоследствии можно будет получить его фактические данные.

{
	"status": "ok",
	"data": {
		"guid": 81373165,
		"estimate_task_id": null,
		"status": 0,
		"order_cost": "6.051",
		"to": "TQHAAJWLLEjBgYq2sjUnq4kbKfajEXEvyE",
		"energy_amount": 61000,
		"period_type": "hours",
		"energy_delegation_fee": "0.561000000000000000",
		"address_activation_fee": "0.000000000000000000",
		"hours": 1,
		"days": 0,
		"estimate_task": null
	},
	"balance": "7.29412"
}

Если запрос содержит amount_source="estimate", то ответ содержит дополнительную секцию "estimate_task". Например:

{
	"status": "ok",
	"data": {
		"guid": 77082757,
		"estimate_task_id": 42708906,
		"status": 0,
		"order_cost": "0.561",
		"to": "TQHAAJWLLEjBgYq2sjUnq4kbKfajEXEvyE",
		"energy_amount": null,
		"period_type": "hours",
		"energy_delegation_fee": "0.561000000000000000",
		"address_activation_fee": "0.000000000000000000",
		"hours": 1,
		"days": 0,
		"estimate_task": {
			"id": 42708906,
			"token": "USDT",
			"currency": "USD",
			"from": "TQHAAJWLLEjBgYq2sjUnq4kbKfajEXEvyE",
			"to": [
				"TLVkYEp4Ue2RpK5v1XNZAB3769g44BSZyH",
				"TJm6HiCMVZdBHbNHThdMv1RambstJPrfYo"
			]
		}
	},
	"balance": "18.29412"
}

buy/energy: Параметры ответа

  • guid - заказ GUID
  • balance - средства, имеющиеся в данный момент на внутреннем счете, TRX
  • days - продолжительность предоставления энергии в днях, если "period_type=days"
  • hours - продолжительность предоставления энергии в часах, если "period_type=hours"
  • estimate_task - расчет (оценка) энергии, необходимой для отправки TRC20 транзакций с одного TRON адреса в список других TRON адресов

Метод "order/get/{guid}" - получение деталей заказа

Получение информации о конкретном заказе.

order/get/{guid} - Пример запроса

curl -X 'POST' 
  'https://panel.energyfather.com/api/v1/private/order/get/12345' 
  -H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS'

order/get/{guid} - Пример ответа

{
	"status": "ok",
	"data": {
		"guid": 81373165,
		"estimate_task_id": 32301594,
		"status": 3,
		"payment_status": 0,
		"order_cost_paid": "4.146350000000000000",
		"order_cost": "4.146350000000000000",
		"to": "TQHAAJWLLEjBgYq2sjUnq4kbKfajEXEvyE",
		"energy_amount": 31895,
		"period_type": "hours",
		"energy_delegation_fee": "0.000000000000000000",
		"address_activation_fee": "0.000000000000000000",
		"hours": 1,
		"days": 0,
		"resource_txs": [
			{
				"order_guid": 81373165,
				"delegate_txid": "961b6fbd7cc2090d1a65abc06bfabde1046e02d35394f6eca8d05812a6e3ab7"
			}
		],
		"estimate_task": {
			"id": 42708906,
			"token": "USDT",
			"currency": "USD",
			"from": "TQHAAJWLLEjBgYq2sjUnq4kbKfajEXEvyE",
			"to": [
				"TLVkYEp4Ue2RpK5v1XNZAB3769g44BSZyH",
				"TJm6HiCMVZdBHbNHThdMv1RambstJPrfYo"
			]
		}
	}
}

order/get/{guid} - Параметры ответа

  • guid - заказ GUID
  • balance - средства, имеющиеся в данный момент на внутреннем счете, TRX
  • days - продолжительность предоставления энергии в днях, если "period_type=days"
  • hours - продолжительность предоставления энергии в часах, если "period_type=hours"
  • to - TRX адрес, по которому поставляется энергия
  • energy_amount - количество энергии
  • order_cost - стоимость заказа, TRX
  • order_cost_paid - сумма, которая уже оплачена, TRX (в случае недостатка средств на внутреннем счете эта сумма будет меньше "order_cost")
  • address_activation_fee - размер платы за активацию адреса назначения, TRX
  • energy_delegation_fee - плата за слишком маленький размер заказа TRX
  • resource_txs - массив, содержащий список транзакций в блокчейне TRON, в которых ресурсы делегированы и возвращены (не делегированы)
  • status - статус заказа, возможные значения описаны в начале данного руководства
  • payment_status - статус оплаты заказа в платежной системе (возможные значения зависят от платежной системы)

Метод "order/list" - получение списка заказов

Получение списка заказов.

order/list - Пример запроса

curl -X 'POST' 
  'https://panel.energyfather.com/api/v1/private/order/list' 
  -H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS'

order/list - Параметры запроса

  • sort (строка, необязательно) - сортировка записей, по умолчанию "created_at|desc"
  • per_page (целое число, необязательно) - ограничение количества записей в ответе
  • page (целое число, необязательно) - порядковый номер страницы ответа
  • filter (массив arrays(objects), необязательно) - фильтр записей

order/list - Пример ответа

{
	"current_page": 1,
	"data": [
		{
			"guid": 96134274,
			"status": 4
		},
		{
			"guid": 81373165,
			"status": 3
		}
	],
	"first_page_url": "/api/v1/private/order/list?page=1",
	"from": 1,
	"last_page": 1,
	"last_page_url": "/api/v1/private/order/list?page=1",
	"links": [
		{
			"url": null,
			"label": "pagination.previous",
			"active": false
		},
		{
			"url": "/api/v1/private/order/list?page=1",
			"label": "1",
			"active": true
		},
		{
			"url": null,
			"label": "pagination.next",
			"active": false
		}
	],
	"next_page_url": null,
	"path": "/api/v1/private/order/list",
	"per_page": 15,
	"prev_page_url": null,
	"to": 2,
	"total": 2,
	"draw": null,
	"status": "ok"
}

order/list - Параметры ответа

  • guid - GUID заказа
  • status - статус API ответа

Метод "account/list" - перечисление внутренних счетов

Получение списка внутренних счетов, включая количество средств, доступных в данный момент. Поскольку для каждого раздела сайта существует отдельный внутренний счет (buyer, affiliate, seller, dealer), в нем есть несколько счетов.

account/list - Пример запроса

curl -X 'POST' 
  'https://panel.energyfather.com/api/v1/private/account/list' 
  -H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS'

account/list - Пример ответа

{
	"current_page": 1,
	"data": [
		{
			"guid": 29778748,
			"user_id": 81841325,
			"id": 1,
			"section": "affiliate",
			"currency": "TRX",
			"balance": "2.511531"
		},
		{
			"guid": 64463815,
			"user_id": 81841325,
			"id": 2,
			"section": "buyer",
			"currency": "TRX",
			"balance": "41.704"
		}
	],
	"first_page_url": "/api/v1/private/account/list?page=1",
	"from": 1,
	"last_page": 1,
	"last_page_url": "/api/v1/private/account/list?page=1",
	"links": [
		{
			"url": null,
			"label": "pagination.previous",
			"active": false
		},
		{
			"url": "/api/v1/private/account/list?page=1",
			"label": "1",
			"active": true
		},
		{
			"url": null,
			"label": "pagination.next",
			"active": false
		}
	],
	"next_page_url": null,
	"path": "/api/v1/private/account/list",
	"per_page": 15,
	"prev_page_url": null,
	"to": 2,
	"total": 2,
	"draw": null,
	"status": "ok"
}

account/list - Параметры ответа

  • guid - GUID внутреннего счета
  • id - последовательный ID внутренний счет
  • section - к какому EnergyFather разделу относится данный баланс
  • balance - свободные средства
  • currency - валюта
  • user_id - GUID пользователя

Метод "account/get/{id}" - получение точного внутреннего счета

Получение баланса внутреннего счета для конкретного раздела EnergyFather. Поскольку каждый раздел имеет свой собственный счет (buyer, affiliate, seller, dealer), для каждого пользователя существует несколько счетов. Вы можете сначала использовать метод "account/list", чтобы получить их список, узнать ‘id’ интересующего вас счета, а затем использовать этот ‘id’ для получения баланса конкретного счета.

account/get/{id} - Пример запроса

curl -X 'POST' 
  'https://panel.energyfather.com/api/v1/private/account/get/1' 
  -H 'Token: 123456xxxxxxxxxxxxxxxxxxxxxxNOPQRS'

account/get/{id} - Пример ответа

{
	"status": "ok",
	"data": {
		"guid": 64463815,
		"user_id": 81841325,
		"id": 2,
		"section": "buyer",
		"currency": "TRX",
		"balance": "41.704"
	}
}

account/get/{id} - Параметры ответа

  • guid - GUID внутреннего счета
  • id - последовательный идентификатор внутреннего счета
  • section - к какому EnergyFather разделу относится данный баланс
  • balance - свободные средства
  • currency - валюта
  • user_id - GUID пользователя