POST /apiv2/order1h
Создание заказа на аренду энергии на 1 час через множественных провайдеров с автоматическим переключением.
URL эндпоинта
POST https://netts.io/apiv2/order1h
Заголовки запроса
Заголовок | Обязательный | Описание |
---|---|---|
Content-Type | Да | application/json |
X-API-KEY | Да | Ваш API ключ из панели Netts |
X-Real-IP | Да | IP адрес из вашего белого списка |
Тело запроса
json
{
"amount": 131000,
"receiveAddress": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE"
}
Параметры
Параметр | Тип | Обязательный | Описание |
---|---|---|---|
amount | integer | Да | Количество энергии для аренды (минимум: 61000, максимум: 5000000) |
receiveAddress | string | Да | TRON адрес, который получит энергию (формат TRC-20) |
Выбор провайдера
API автоматически выбирает оптимального провайдера энергии на основе:
- Эффективности стоимости - Всегда находит самую низкую доступную цену
- Доступности - Обеспечивает достаточные резервы энергии
- Надежности - Использует провайдеров с высоким уровнем успешности
- Скорости - Приоритет самому быстрому времени доставки
Примеры запросов
cURL
bash
curl -X POST https://netts.io/apiv2/order1h \
-H "Content-Type: application/json" \
-H "X-API-KEY: your_api_key" \
-H "X-Real-IP: your_whitelisted_ip" \
-d '{
"amount": 131000,
"receiveAddress": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE"
}'
Python
python
import requests
import json
url = "https://netts.io/apiv2/order1h"
headers = {
"Content-Type": "application/json",
"X-API-KEY": "your_api_key",
"X-Real-IP": "your_whitelisted_ip"
}
payload = {
"amount": 131000,
"receiveAddress": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE"
}
response = requests.post(url, headers=headers, json=payload)
data = response.json()
if response.status_code == 200:
detail = data.get('detail', {})
order_data = detail.get('data', {})
print(f"ID заказа: {order_data.get('orderId')}")
print(f"Хеш транзакции: {order_data.get('hash')}")
print(f"Доставлено энергии: {order_data.get('energy')}")
print(f"Стоимость: {order_data.get('paidTRX')} TRX")
print(f"Адрес делегата: {order_data.get('delegateAddress')}")
else:
error_detail = data.get('detail', data)
print(f"Код ошибки: {error_detail.get('code', 'N/A')}")
print(f"Сообщение об ошибке: {error_detail.get('msg', error_detail)}")
Node.js
javascript
const axios = require('axios');
const url = 'https://netts.io/apiv2/order1h';
const headers = {
'Content-Type': 'application/json',
'X-API-KEY': 'your_api_key',
'X-Real-IP': 'your_whitelisted_ip'
};
const data = {
amount: 32000,
receiveAddress: 'TExampleAddress1234567890123456789'
};
async function orderEnergy() {
try {
const response = await axios.post(url, data, { headers });
const result = response.data;
console.log('Заказ создан успешно!');
console.log(`ID заказа: ${result.data.order_id}`);
console.log(`Стоимость: ${result.data.price} TRX`);
console.log(`Статус: ${result.data.status}`);
} catch (error) {
console.error('Error:', error.response.data.msg);
}
}
orderEnergy();
PHP
php
<?php
$url = 'https://netts.io/apiv2/order1h';
$headers = [
'Content-Type: application/json',
'X-API-KEY: your_api_key',
'X-Real-IP: your_whitelisted_ip'
];
$data = [
'amount' => 32000,
'receiveAddress' => 'TExampleAddress1234567890123456789'
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode == 200) {
$result = json_decode($response, true);
echo "Заказ создан успешно!\n";
echo "ID заказа: " . $result['data']['order_id'] . "\n";
echo "Стоимость: " . $result['data']['price'] . " TRX\n";
echo "Статус: " . $result['data']['status'] . "\n";
} else {
$error = json_decode($response, true);
echo "Ошибка: " . $error['msg'] . "\n";
}
?>
Ответ
Успешный ответ (200 OK)
json
{
"detail": {
"code": 10000,
"msg": "Successful, 2.23 TRX deducted",
"data": {
"orderId": "1H123456",
"paidTRX": 2.23,
"hash": "a1b2c3d4e5f6789...",
"delegateAddress": "TDelegatePoolAddress...",
"energy": 131050
}
}
}
Поля ответа
Поле | Тип | Описание |
---|---|---|
detail.code | integer | Всегда 10000 для успешных заказов |
detail.msg | string | Сообщение об успехе с суммой списания |
detail.data.orderId | string | Унифицированный ID заказа (формат: 1H{request_id} ) |
detail.data.paidTRX | number | Общая стоимость в TRX (включает комиссию за активацию если адрес не был активирован) |
detail.data.hash | string | Хеш транзакции (может быть пустым если провайдер его не предоставляет) |
detail.data.delegateAddress | string | Адрес пула, который делегировал энергию |
detail.data.energy | integer | Количество энергии + буфер (обычно +50) |
Ответы с ошибками
Ошибка аутентификации (401)
json
{
"detail": "Invalid API key or IP not in whitelist"
}
Недостаточный баланс (403)
json
{
"code": 1004,
"msg": "Insufficient funds. Required: 2.23 TRX, Available: 1.50 TRX"
}
Сервис недоступен (503)
json
{
"code": 5003,
"msg": "Service temporarily unavailable. All energy providers are currently unavailable."
}
Ошибки провайдеров (503)
json
{
"code": 5001,
"msg": "Energy provider temporarily unavailable"
}
json
{
"code": 5002,
"msg": "Energy provider temporarily unavailable"
}
json
{
"code": 5004,
"msg": "Energy provider requires higher minimum amount"
}
Внутренняя ошибка сервера (500)
json
{
"code": 5000,
"msg": "Internal server error occurred"
}
Справочник кодов ошибок
Код | Описание | HTTP статус |
---|---|---|
10000 | Успех | 200 |
1004 | Недостаточный баланс | 403 |
5000 | Внутренняя ошибка сервера | 500 |
5001 | Провайдер энергии недоступен | 503 |
5002 | Провайдер энергии недоступен | 503 |
5003 | Сервис энергии недоступен | 503 |
5004 | Минимум провайдера не достигнут | 503 |
Примечания
- Энергия доставляется мгновенно при успешном заказе (обычно в течение 0.5-10 секунд)
- Таймаут API ответа: Максимум 10 секунд, обычно отвечает до 2 секунд
- Активация адреса: Если адрес получателя не активирован, Netts активирует его по себестоимости
- Задержка при активации: Для неактивированных адресов ответ API может занять до 6 секунд из-за процесса активации
- Заказы обрабатываются 24/7 с автоматическим переключением между провайдерами
- Минимальное количество энергии: 61,000 единиц
- Максимальное количество энергии: 5,000,000 единиц за заказ
- Буфер энергии: +50 единиц добавляется автоматически для компенсации провайдера (бесплатно)
- Хеш транзакции: Может быть пустым в ответе если провайдер энергии не предоставляет хеш делегирования
- Выбор провайдера: Автоматический на основе стоимости и доступности
- Формат ID заказа:
1H{request_id}
для унифицированного отслеживания - Ценообразование: Динамическое в зависимости от времени суток и количества энергии
- Длительность: Фиксированный 1 час (3600 секунд)