POST /apiv2/subusergen
Создать нового SUB-пользователя (субаккаунт), привязанного к вашему основному аккаунту. У SUB-пользователей есть собственный API-ключ, адрес для депозита и отдельный баланс для независимых операций с Energy.
URL эндпоинта
POST https://netts.io/apiv2/subusergenЗаголовки запроса
| Заголовок | Обязательный | Описание |
|---|---|---|
| Content-Type | Да | application/json |
| X-API-KEY | Да | Ваш API-ключ из панели управления Netts |
| X-Real-IP | Да | IP-адрес из вашего белого списка |
Тело запроса
json
{}Параметры не требуются. SUB-пользователь автоматически привязывается к аккаунту, идентифицированному по API-ключу.
Примеры запросов
cURL
bash
curl -X POST https://netts.io/apiv2/subusergen \
-H "Content-Type: application/json" \
-H "X-API-KEY: your_api_key" \
-H "X-Real-IP: your_whitelisted_ip" \
-d '{}'Python
python
import requests
url = "https://netts.io/apiv2/subusergen"
headers = {
"Content-Type": "application/json",
"X-API-KEY": "your_api_key",
"X-Real-IP": "your_whitelisted_ip"
}
response = requests.post(url, headers=headers, json={})
data = response.json()
if response.status_code == 200:
print(f"SUB User ID: {data['user_id']}")
print(f"Google ID: {data['google_id']}")
print(f"Email: {data['email']}")
print(f"Deposit Address: {data['deposit_address']}")
print(f"API Key: {data['api_key']}")
print(f"Referral Code: {data['referral_code']}")
print(f"Parent User ID: {data['referrer_user_id']}")
else:
print(f"Error: {data.get('detail', 'Unknown error')}")Node.js
javascript
const axios = require('axios');
async function createSubUser(apiKey, whitelistedIp) {
const url = 'https://netts.io/apiv2/subusergen';
const response = await axios.post(url, {}, {
headers: {
'Content-Type': 'application/json',
'X-API-KEY': apiKey,
'X-Real-IP': whitelistedIp
},
timeout: 30000
});
const data = response.data;
console.log(`SUB User ID: ${data.user_id}`);
console.log(`API Key: ${data.api_key}`);
console.log(`Deposit Address: ${data.deposit_address}`);
return data;
}
// Usage
createSubUser('your_api_key', 'your_whitelisted_ip')
.then(result => console.log('Created:', result))
.catch(err => console.error('Error:', err.response?.data || err.message));PHP
php
<?php
$url = 'https://netts.io/apiv2/subusergen';
$options = [
'http' => [
'header' => implode("\r\n", [
"Content-Type: application/json",
"X-API-KEY: your_api_key",
"X-Real-IP: your_whitelisted_ip"
]),
'method' => 'POST',
'content' => '{}',
'timeout' => 30
]
];
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
$data = json_decode($response, true);
echo "SUB User ID: {$data['user_id']}\n";
echo "API Key: {$data['api_key']}\n";
echo "Deposit Address: {$data['deposit_address']}\n";
?>Ответ
Успешный ответ (200 OK)
json
{
"user_id": 1379,
"google_id": "SUB123456789012345678",
"email": "[email protected]",
"name": "SUB123456789012345678",
"deposit_address": "TExampleAddress1234567890123456789",
"api_key": "mock1234567890abcdef1234567890ab",
"referral_code": "A2B4K9",
"created_at": "2026-03-14T12:00:00",
"referrer_user_id": 42,
"comment": "SUB user linked to main user (referrer_user_id). Google ID, Email and Name are mock data (not real) that can be updated via separate endpoint. For API services usage, requests must include this SUB user's API key and IP from main user's whitelist. Calculations use SUB user's balance. Generated deposit address is not active."
}Поля ответа
| Поле | Тип | Описание |
|---|---|---|
| user_id | integer | Уникальный ID созданного SUB-пользователя |
| google_id | string | Фиктивный идентификатор (формат: SUB + 18 цифр). Не является реальным Google-аккаунтом — используется только для внутренней идентификации SUB-пользователя |
| string | Фиктивный email (google_id + @gmail.com). Не является реальным адресом электронной почты — используется только для внутренней идентификации | |
| name | string | Отображаемое имя (по умолчанию google_id). Может быть изменено в панели управления |
| deposit_address | string | Сгенерированный адрес депозита TRON (по умолчанию не активен) |
| api_key | string | API-ключ для SUB-пользователя (префикс: mock) |
| referral_code | string | Сгенерированный реферальный код (6 символов) |
| created_at | string | Временная метка создания в формате ISO 8601 |
| referrer_user_id | integer | ID родительского пользователя (аккаунт, создавший этого SUB-пользователя) |
| comment | string | Инструкции по использованию и примечания |
Фиктивные данные Google
Поля google_id, email и name содержат фиктивные данные — они не являются реальными аккаунтами Google или адресами электронной почты. Эти поля существуют исключительно для внутренней идентификации SUB-пользователя в системе. Имя и тег SUB-пользователя можно изменить в панели управления.
Как работают SUB-пользователи
Ключевые концепции
- Отдельный баланс: у каждого SUB-пользователя собственный баланс TRX, независимый от родительского
- Общий белый список IP: запросы к API от имени SUB-пользователя проверяются по белому списку IP родительского аккаунта
- Собственный API-ключ: каждый SUB-пользователь получает уникальный API-ключ для аутентификации
- Привязка к родительскому аккаунту: SUB-пользователь навсегда привязан к создавшему его аккаунту через реферальную систему
- Все эндпоинты API: SUB-пользователи могут использовать все эндпоинты API (order1h, time/order и т. д.) со своим собственным API-ключом и балансом
Порядок использования
- Создайте SUB-пользователя с помощью этого эндпоинта
- Пополните баланс SUB-пользователя, отправив TRX на его адрес депозита или переведя средства с баланса
- Используйте API-ключ SUB-пользователя в последующих запросах к API (order1h, time/order и т. д.)
- Отслеживайте состояние через эндпоинт userinfo с использованием API-ключа SUB-пользователя
Ответы с ошибками
Ошибка аутентификации (401)
json
{
"detail": "X-API-KEY header required"
}Доступ запрещен (403)
json
{
"detail": "Invalid API key or IP not whitelisted"
}Ошибка валидации (422)
json
{
"detail": [...],
"body": {...}
}Внутренняя ошибка сервера (500)
json
{
"detail": "Failed to create mock user: ..."
}Справочник кодов ошибок
| HTTP-статус | Описание |
|---|---|
200 | SUB-пользователь успешно создан |
401 | Отсутствует заголовок с API-ключом |
403 | Неверный API-ключ или IP отсутствует в белом списке |
422 | Ошибка валидации запроса |
500 | Внутренняя ошибка сервера |
Примечания
- Требуется пустое тело запроса
{}(Content-Type должен быть application/json) - Сгенерированный адрес депозита по умолчанию не активен
- Поля SUB-пользователя
google_idиemailсодержат фиктивные данные (не реальные Google-аккаунты) и используются только для внутренней идентификации - Имя и тег SUB-пользователя можно изменить в панели управления
- API-ключ SUB-пользователя начинается с префикса
mock - Для проверки белого списка IP используется белый список родительского пользователя
- Каждый SUB-пользователь имеет собственный баланс, отдельный от родительского
- SUB-пользователей можно удалить через эндпоинт DELETE /apiv2/subuserdel
- Адрес депозита можно сменить через эндпоинт POST /apiv2/address/rotate