Skip to content
Translated page. The English version is the source of truth.

GET /apiv2/order_check

Отримання детальної інформації про конкретне замовлення 1-годинної енергії, включно з деталізацією вартості, даними про активацію та інформацією про націнку для субкористувачів.

URL кінцевої точки

GET https://netts.io/apiv2/order_check

Заголовки запиту

ЗаголовокОбов'язковийОпис
X-API-KEYТакВаш API-ключ із панелі керування Netts

Параметри запиту (query)

ПараметрТипОбов'язковийОпис
order_idрядокТакІдентифікатор замовлення у форматі 1H{hash} (наприклад, 1Ha1b2c3d4e5)

Приклади запитів

cURL

bash
curl -X GET "https://netts.io/apiv2/order_check?order_id=1Ha1b2c3d4e5" \
  -H "X-API-KEY: your_api_key"

Python

python
import requests

url = "https://netts.io/apiv2/order_check"
headers = {
    "X-API-KEY": "your_api_key"
}
params = {
    "order_id": "1Ha1b2c3d4e5"
}

response = requests.get(url, headers=headers, params=params)
data = response.json()

if data.get("success"):
    order = data.get("order", {})
    print(f"Order ID: {order.get('id')}")
    print(f"Total Cost: {order.get('cost')} TRX")
    print(f"Energy: {order.get('energy')}")
    print(f"Rate: {order.get('rate_sun')} sun/energy")
    print(f"Target Address: {order.get('target_address')}")

    # Check if activation was performed
    activation = data.get("activation")
    if activation:
        print(f"Activation Cost: {activation.get('cost')} TRX")
        print(f"Activation Hash: {activation.get('tx_hash')}")
else:
    print(f"Error: {data.get('msg')}")

JavaScript (Node.js)

javascript
const axios = require('axios');

const url = 'https://netts.io/apiv2/order_check';
const headers = {
    'X-API-KEY': 'your_api_key'
};
const params = {
    order_id: '1Ha1b2c3d4e5'
};

axios.get(url, { headers, params })
    .then(response => {
        const data = response.data;
        if (data.success) {
            console.log('Order:', data.order);
            console.log('Activation:', data.activation);
        } else {
            console.log('Error:', data.msg);
        }
    })
    .catch(error => console.error('Request failed:', error));

Відповідь

Успішна відповідь (200 OK)

json
{
    "success": true,
    "code": 10000,
    "order": {
        "id": "1Ha1b2c3d4e5",
        "cost": 2.535,
        "target_address": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE",
        "energy": 65000,
        "duration": "1 hour",
        "tx_hashes": ["a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef12345678"],
        "timestamp": "2025-12-03T15:21:34.182127",
        "rate_sun": 39.0,
        "comments": null
    },
    "activation": null,
    "subuser_payout": null
}

Успішна відповідь з активацією (200 OK)

Якщо цільова адреса потребувала активації:

json
{
    "success": true,
    "code": 10000,
    "order": {
        "id": "1Ha1b2c3d4e5",
        "cost": 3.635,
        "target_address": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE",
        "energy": 65000,
        "duration": "1 hour",
        "tx_hashes": ["a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef12345678"],
        "timestamp": "2025-12-03T15:21:34.182127",
        "rate_sun": 39.0,
        "comments": "Includes activation: 1.1 TRX"
    },
    "activation": {
        "cost": 1.1,
        "tx_hash": "b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456789a"
    },
    "subuser_payout": null
}

Успішна відповідь із виплатою субкористувача (200 OK)

Для батьківських користувачів під час перегляду замовлень субкористувачів:

json
{
    "success": true,
    "code": 10000,
    "order": {
        "id": "1Ha1b2c3d4e5",
        "cost": 3.93,
        "target_address": "TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE",
        "energy": 65000,
        "duration": "1 hour",
        "tx_hashes": ["c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456789abc"],
        "timestamp": "2025-12-03T16:55:16.525118",
        "rate_sun": 60.5,
        "comments": "Includes activation: 1.1 TRX"
    },
    "activation": {
        "cost": 1.1,
        "tx_hash": "b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456789a"
    },
    "subuser_payout": {
        "parent_id": 12,
        "gross_cost": 3.93,
        "energy_markup": 0.195,
        "activation_markup": 0.1,
        "total_markup": 0.295,
        "net_cost": 3.635,
        "subuser_rate_sun": 43.5,
        "parent_rate_sun": 39.0
    }
}

Поля відповіді

Основна відповідь

ПолеТипОпис
successбулевийtrue, якщо запит виконано успішно
codeціле число10000 для успішних запитів
orderоб'єктДеталі замовлення
activationоб'єкт | nullДеталі активації (якщо адресу було активовано)
subuser_payoutоб'єкт | nullДеталі націнки субкористувача (лише для батьківських користувачів)

Об'єкт Order

ПолеТипОпис
idрядокІдентифікатор замовлення у форматі 1H{hash}
costчислоЗагальна вартість, сплачена користувачем (TRX)
target_addressрядокАдреса, яка отримала енергію
energyціле числоКількість делегованої енергії
durationрядокТривалість делегування (завжди "1 hour")
tx_hashesмасивСписок хешів транзакцій делегування
timestampрядокЧас створення замовлення (формат ISO 8601)
rate_sunчислоТариф енергії в sun за одиницю енергії
commentsрядок | nullДодаткова інформація (наприклад, повідомлення про активацію)

Об'єкт Activation

ПолеТипОпис
costчислоВартість активації (TRX)
tx_hashрядокХеш транзакції активації

Об'єкт Subuser Payout

Тільки для батьківських користувачів

Поле subuser_payout додається лише для батьківських користувачів під час перегляду замовлень їхніх субкористувачів. Субкористувачі (mock-користувачі) це поле не побачать.

ПолеТипОпис
parent_idціле числоІдентифікатор батьківського користувача
gross_costчислоЗагальна вартість, сплачена субкористувачем (TRX)
energy_markupчислоСума націнки на енергію (TRX)
activation_markupчислоСума націнки на активацію (TRX)
total_markupчислоЗагальна націнка (енергія + активація)
net_costчислоВартість мінус націнка (фактична вартість для батьківського користувача)
subuser_rate_sunчислоТариф, сплачений субкористувачем (sun/energy)
parent_rate_sunчислоФактичний тариф без націнки (sun/energy)

Відповіді з помилками

Відсутній ідентифікатор замовлення (400)

json
{
    "success": false,
    "code": -2,
    "msg": "order_id parameter required"
}

Помилка автентифікації (401)

json
{
    "success": false,
    "code": -1,
    "msg": "API key not provided"
}
json
{
    "success": false,
    "code": -1,
    "msg": "Invalid API key or IP not in whitelist"
}

Доступ заборонено (403)

Під час спроби переглянути замовлення, яке належить іншому користувачеві:

json
{
    "success": false,
    "code": -4,
    "msg": "Order does not belong to this user"
}

Замовлення не знайдено (404)

json
{
    "success": false,
    "code": -3,
    "msg": "Order not found"
}

Внутрішня помилка сервера (500)

json
{
    "success": false,
    "msg": "Internal server error"
}

Довідник кодів помилок

КодОписСтатус HTTP
10000Успішно200
-1Помилка автентифікації401
-2Відсутній параметр order_id400
-3Замовлення не знайдено404
-4Доступ заборонено (чуже замовлення)403

Ліміти запитів

До цього ендпоінта застосовуються такі ліміти швидкості (на одну IP-адресу):

ПеріодЛімітОпис
1 секунда50 запитівМаксимум 50 запитів на секунду

Заголовки ліміту швидкості

http
RateLimit-Limit: 50
RateLimit-Remaining: 49
RateLimit-Reset: 1
X-RateLimit-Limit-Second: 50
X-RateLimit-Remaining-Second: 49

Перевищено ліміт запитів (429)

json
{
    "message": "API rate limit exceeded"
}

Керування доступом

Право власності на замовлення

Користувачі можуть переглядати лише власні замовлення. API перевіряє право власності на основі:

  • Користувачі Google: Зіставлення google_user_id із замовлення з Google ID користувача
  • Користувачі Telegram: Зіставлення tg_user_id із замовлення з Telegram ID користувача

Доступ батьківських користувачів і субкористувачів

Батьківські користувачі можуть переглядати замовлення, створені їхніми субкористувачами. У цьому випадку:

  • Поле subuser_payout додається до відповіді
  • Батьківський користувач бачить деталізацію націнки та свою фактичну вартість

Доступ субкористувача (Mock)

Субкористувачі, переглядаючи власні замовлення, бачать:

  • Свою фактичну вартість (разом із націнкою) у order.cost
  • Свій тариф (разом із націнкою) у order.rate_sun
  • Поле subuser_payout не включається

Варіанти використання

1. Перевірка завершення замовлення

Після розміщення замовлення за допомогою /apiv2/order1h використовуйте цей ендпоінт, щоб перевірити:

  • Замовлення було успішно оброблено
  • Енергію було делеговано на правильну адресу
  • Було списано правильну суму

2. Отримання хешу транзакції

Отримання хешу транзакції делегування для перевірки в блокчейні:

python
response = requests.get(
    "https://netts.io/apiv2/order_check",
    headers={"X-API-KEY": "your_api_key"},
    params={"order_id": "1Ha1b2c3d4e5"}
)

data = response.json()
if data["success"]:
    tx_hashes = data["order"]["tx_hashes"]
    if tx_hashes:
        print(f"Verify on Tronscan: https://tronscan.org/#/transaction/{tx_hashes[0]}")

3. Відстеження витрат субкористувачів (батьківські користувачі)

Батьківські користувачі можуть відстежувати замовлення своїх субкористувачів та прибуток від націнки:

python
response = requests.get(
    "https://netts.io/apiv2/order_check",
    headers={"X-API-KEY": "parent_api_key"},
    params={"order_id": "1Ha1b2c3d4e5"}
)

data = response.json()
if data["success"] and data.get("subuser_payout"):
    payout = data["subuser_payout"]
    print(f"Subuser paid: {payout['gross_cost']} TRX")
    print(f"Your markup: {payout['total_markup']} TRX")
    print(f"Your actual cost: {payout['net_cost']} TRX")

Примітки

  • Замовлення можна запитувати одразу після створення
  • Хеші транзакцій можуть бути порожніми, якщо провайдер їх не повертає
  • Поле rate_sun показує ефективний тариф за одиницю енергії в sun
  • Вартість активації включається в загальну вартість cost, коли це застосовно
  • Поле comments надає додатковий контекст (наприклад, повідомлення про активацію)
  • Цей ендпоінт повертає лише 1-годинні замовлення, створені через /apiv2/order1h