POST /apiv2/subusergen
Crea un nuevo SUB-usuario (subcuenta) vinculado a tu cuenta principal. Los SUB-usuarios tienen su propia clave API, dirección de depósito y saldo independiente para operaciones de Energy por separado.
URL del Endpoint
POST https://netts.io/apiv2/subusergenEncabezados de Solicitud
| Encabezado | Requerido | Descripción |
|---|---|---|
| Content-Type | Sí | application/json |
| X-API-KEY | Sí | Tu clave API del panel de Netts |
| X-Real-IP | Sí | Dirección IP de tu lista blanca |
Cuerpo de la Solicitud
json
{}No se requieren parámetros. El SUB-usuario se vincula automáticamente a la cuenta identificada por la clave API.
Solicitudes de Ejemplo
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";
?>Respuesta
Respuesta Exitosa (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."
}Campos de Respuesta
| Campo | Tipo | Descripción |
|---|---|---|
| user_id | integer | ID único del SUB-usuario creado |
| google_id | string | Identificador ficticio (formato: SUB + 18 dígitos). No es una cuenta de Google real; se utiliza únicamente para la identificación interna del SUB-usuario |
| string | Correo electrónico ficticio (google_id + @gmail.com). No es una dirección de correo electrónico real; se utiliza únicamente para la identificación interna | |
| name | string | Nombre visible (por defecto es google_id). Se puede cambiar en el panel de control |
| deposit_address | string | Dirección de depósito TRON generada (no activa por defecto) |
| api_key | string | Clave API para el SUB-usuario (prefijo: mock) |
| referral_code | string | Código de referencia generado (6 caracteres) |
| created_at | string | Marca de tiempo de creación en formato ISO 8601 |
| referrer_user_id | integer | ID del usuario padre (la cuenta que creó este SUB-usuario) |
| comment | string | Instrucciones de uso y notas |
Datos Ficticios de Google
Los campos google_id, email y name son datos ficticios; no son cuentas de Google ni direcciones de correo electrónico reales. Estos campos existen únicamente para la identificación interna del SUB-usuario dentro del sistema. El nombre y la etiqueta de un SUB-usuario se pueden cambiar en el panel de control.
Cómo Funcionan los SUB-Usuarios
Conceptos Clave
- Saldo separado: Cada SUB-usuario tiene su propio saldo en TRX independiente del usuario padre
- Lista blanca de IP compartida: Las solicitudes a la API del SUB-usuario se validan con respecto a la lista blanca de IP del usuario padre
- Clave API propia: Cada SUB-usuario obtiene una clave API única para autenticación
- Vinculación con el usuario padre: El SUB-usuario está vinculado permanentemente a la cuenta creadora mediante el sistema de referidos
- Todos los endpoints de la API: Los SUB-usuarios pueden utilizar todos los endpoints de la API (order1h, time/order, etc.) con su propia clave API y saldo
Flujo de Uso
- Crear el SUB-usuario mediante este endpoint
- Financiar el SUB-usuario depositando TRX en su dirección de depósito o transfiriendo saldo
- Utilizar la clave API del SUB-usuario en solicitudes de API posteriores (order1h, time/order, etc.)
- Monitorear mediante el endpoint userinfo utilizando la clave API del SUB-usuario
Respuestas de Error
Error de Autenticación (401)
json
{
"detail": "X-API-KEY header required"
}Prohibido (403)
json
{
"detail": "Invalid API key or IP not whitelisted"
}Error de Validación (422)
json
{
"detail": [...],
"body": {...}
}Error Interno del Servidor (500)
json
{
"detail": "Failed to create mock user: ..."
}Referencia de Códigos de Error
| Estado HTTP | Descripción |
|---|---|
200 | SUB-usuario creado con éxito |
401 | Falta el encabezado de la clave API |
403 | Clave API inválida o IP no incluida en la lista blanca |
422 | Error de validación de la solicitud |
500 | Error interno del servidor |
Notas
- Se requiere un cuerpo de solicitud vacío
{}(Content-Type debe ser application/json) - La dirección de depósito generada no está activa por defecto
- Los campos
google_idyemaildel SUB-usuario son datos ficticios (no son cuentas de Google reales), utilizados únicamente para identificación interna - El nombre y la etiqueta del SUB-usuario se pueden cambiar en el panel de control
- La clave API del SUB-usuario comienza con el prefijo
mock - La validación de la lista blanca de IP utiliza la lista blanca del usuario padre
- Cada SUB-usuario tiene su propio saldo, separado del usuario padre
- Los SUB-usuarios se pueden eliminar a través del endpoint DELETE /apiv2/subuserdel
- La dirección de depósito se puede rotar a través del endpoint POST /apiv2/address/rotate