Appearance
POST /apiv2/subusergen
Cria um novo SUB-usuário (subconta) vinculado à sua conta principal. Os SUB-usuários possuem sua própria chave de API, endereço de depósito e saldo separado para operações independentes de Energy.
URL do Endpoint
POST https://netts.io/apiv2/subusergenCabeçalhos da Requisição
| Cabeçalho | Obrigatório | Descrição |
|---|---|---|
| Content-Type | Sim | application/json |
| X-API-KEY | Sim | Sua chave de API do painel da Netts |
| X-Real-IP | Sim | Endereço IP da sua lista de permissões |
Corpo da Requisição
json
{}Nenhum parâmetro obrigatório. O SUB-usuário é automaticamente vinculado à conta identificada pela chave de API.
Exemplos de Requisição
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";
?>Resposta
Resposta de Sucesso (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 da Resposta
| Campo | Tipo | Descrição |
|---|---|---|
| user_id | inteiro | ID exclusivo do SUB-usuário criado |
| google_id | texto | Identificador simulado (formato: SUB + 18 dígitos). Não é uma conta real do Google — usado apenas para identificação interna do SUB-usuário |
| texto | E-mail simulado (google_id + @gmail.com). Não é um endereço de e-mail real — usado apenas para identificação interna | |
| name | texto | Nome de exibição (o padrão é o google_id). Pode ser alterado no painel |
| deposit_address | texto | Endereço de depósito TRON gerado (não ativo por padrão) |
| api_key | texto | Chave de API para o SUB-usuário (prefixo: mock) |
| referral_code | texto | Código de indicação gerado (6 caracteres) |
| created_at | texto | Carimbo de data/hora de criação no formato ISO 8601 |
| referrer_user_id | inteiro | ID do usuário pai (a conta que criou este SUB-usuário) |
| comment | texto | Instruções de uso e observações |
Dados Simulados do Google
Os campos google_id, email e name são dados simulados — não são contas reais do Google ou endereços de e-mail reais. Esses campos existem exclusivamente para a identificação interna do SUB-usuário dentro do sistema. O nome e a tag de um SUB-usuário podem ser alterados no painel.
Como Funcionam os SUB-Usuários
Conceitos Principais
- Saldo separado: Cada SUB-usuário tem seu próprio saldo de TRX independente do pai
- Lista de permissões de IP compartilhada: As requisições de API do SUB-usuário são validadas em relação à lista de permissões de IP do pai
- Chave de API própria: Cada SUB-usuário recebe uma chave de API exclusiva para autenticação
- Vinculação ao pai: O SUB-usuário está permanentemente vinculado à conta criadora por meio do sistema de indicações
- Todos os endpoints de API: Os SUB-usuários podem usar todos os endpoints de API (order1h, time/order, etc.) com sua própria chave de API e saldo
Fluxo de Uso
- Crie o SUB-usuário através deste endpoint
- Financie o SUB-usuário depositando TRX em seu endereço de depósito ou transferindo saldo
- Use a chave de API do SUB-usuário nas requisições de API subsequentes (order1h, time/order, etc.)
- Monitore por meio do endpoint userinfo usando a chave de API do SUB-usuário
Respostas de Erro
Erro de Autenticação (401)
json
{
"detail": "X-API-KEY header required"
}Proibido (403)
json
{
"detail": "Invalid API key or IP not whitelisted"
}Erro de Validação (422)
json
{
"detail": [...],
"body": {...}
}Erro Interno do Servidor (500)
json
{
"detail": "Failed to create mock user: ..."
}Referência de Códigos de Erro
| Status HTTP | Descrição |
|---|---|
200 | SUB-usuário criado com sucesso |
401 | Cabeçalho de chave de API ausente |
403 | Chave de API inválida ou IP não está na lista de permissões |
422 | Erro de validação da requisição |
500 | Erro interno do servidor |
Observações
- O corpo da requisição vazio
{}é obrigatório (o Content-Type deve ser application/json) - O endereço de depósito gerado não está ativo por padrão
- O
google_ide oemaildo SUB-usuário são dados simulados (não são contas reais do Google), usados apenas para identificação interna - O nome e a tag do SUB-usuário podem ser alterados no painel
- A chave de API do SUB-usuário começa com o prefixo
mock - A validação da lista de permissões de IP usa a lista de permissões do usuário pai
- Cada SUB-usuário tem seu próprio saldo, separado do pai
- Os SUB-usuários podem ser excluídos através do endpoint DELETE /apiv2/subuserdel
- O endereço de depósito pode ser alternado através do endpoint POST /apiv2/address/rotate