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" - Сплачено. Замовлення оплачено і додано в чергу на доставку енергії.
  • Помилка.

Звичайна послідовність статусів: 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".

b) Якщо ви не знаєте, скільки енергії потрібно для відправки транзакції 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, 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" - тривалість енергозабезпечення в днях, якщо "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" - тривалість енергозабезпечення в днях, якщо "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 - ГІД замовлення
  • 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 користувача