Skip to content

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"
}

Параметры

ПараметрТипОбязательныйОписание
amountintegerДаКоличество энергии для аренды (минимум: 61000, максимум: 5000000)
receiveAddressstringДа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.codeintegerВсегда 10000 для успешных заказов
detail.msgstringСообщение об успехе с суммой списания
detail.data.orderIdstringУнифицированный ID заказа (формат: 1H{request_id})
detail.data.paidTRXnumberОбщая стоимость в TRX (включает комиссию за активацию если адрес не был активирован)
detail.data.hashstringХеш транзакции (может быть пустым если провайдер его не предоставляет)
detail.data.delegateAddressstringАдрес пула, который делегировал энергию
detail.data.energyintegerКоличество энергии + буфер (обычно +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 секунд)