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

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/subusergen

Cabeçalhos da Requisição

CabeçalhoObrigatórioDescrição
Content-TypeSimapplication/json
X-API-KEYSimSua chave de API do painel da Netts
X-Real-IPSimEndereç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

CampoTipoDescrição
user_idinteiroID exclusivo do SUB-usuário criado
google_idtextoIdentificador simulado (formato: SUB + 18 dígitos). Não é uma conta real do Google — usado apenas para identificação interna do SUB-usuário
emailtextoE-mail simulado (google_id + @gmail.com). Não é um endereço de e-mail real — usado apenas para identificação interna
nametextoNome de exibição (o padrão é o google_id). Pode ser alterado no painel
deposit_addresstextoEndereço de depósito TRON gerado (não ativo por padrão)
api_keytextoChave de API para o SUB-usuário (prefixo: mock)
referral_codetextoCódigo de indicação gerado (6 caracteres)
created_attextoCarimbo de data/hora de criação no formato ISO 8601
referrer_user_idinteiroID do usuário pai (a conta que criou este SUB-usuário)
commenttextoInstruçõ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

  1. Crie o SUB-usuário através deste endpoint
  2. Financie o SUB-usuário depositando TRX em seu endereço de depósito ou transferindo saldo
  3. Use a chave de API do SUB-usuário nas requisições de API subsequentes (order1h, time/order, etc.)
  4. 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 HTTPDescrição
200SUB-usuário criado com sucesso
401Cabeçalho de chave de API ausente
403Chave de API inválida ou IP não está na lista de permissões
422Erro de validação da requisição
500Erro 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_id e o email do 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