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
curl -X GET "https://netts.io/apiv2/order_check?order_id=1Ha1b2c3d4e5" \
-H "X-API-KEY: your_api_key"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)
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)
{
"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)
Якщо цільова адреса потребувала активації:
{
"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)
Для батьківських користувачів під час перегляду замовлень субкористувачів:
{
"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)
{
"success": false,
"code": -2,
"msg": "order_id parameter required"
}Помилка автентифікації (401)
{
"success": false,
"code": -1,
"msg": "API key not provided"
}{
"success": false,
"code": -1,
"msg": "Invalid API key or IP not in whitelist"
}Доступ заборонено (403)
Під час спроби переглянути замовлення, яке належить іншому користувачеві:
{
"success": false,
"code": -4,
"msg": "Order does not belong to this user"
}Замовлення не знайдено (404)
{
"success": false,
"code": -3,
"msg": "Order not found"
}Внутрішня помилка сервера (500)
{
"success": false,
"msg": "Internal server error"
}Довідник кодів помилок
| Код | Опис | Статус HTTP |
|---|---|---|
10000 | Успішно | 200 |
-1 | Помилка автентифікації | 401 |
-2 | Відсутній параметр order_id | 400 |
-3 | Замовлення не знайдено | 404 |
-4 | Доступ заборонено (чуже замовлення) | 403 |
Ліміти запитів
До цього ендпоінта застосовуються такі ліміти швидкості (на одну IP-адресу):
| Період | Ліміт | Опис |
|---|---|---|
| 1 секунда | 50 запитів | Максимум 50 запитів на секунду |
Заголовки ліміту швидкості
RateLimit-Limit: 50
RateLimit-Remaining: 49
RateLimit-Reset: 1
X-RateLimit-Limit-Second: 50
X-RateLimit-Remaining-Second: 49Перевищено ліміт запитів (429)
{
"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. Отримання хешу транзакції
Отримання хешу транзакції делегування для перевірки в блокчейні:
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. Відстеження витрат субкористувачів (батьківські користувачі)
Батьківські користувачі можуть відстежувати замовлення своїх субкористувачів та прибуток від націнки:
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