Appearance
DELETE /apiv2/subuserdel/
Exclui um SUB-usuário e todos os registros relacionados. Os registros de histórico (pedidos, delegações) são reatribuídos ao usuário principal. Apenas a conta principal ou um administrador pode excluir um SUB-usuário.
URL do Endpoint
DELETE https://netts.io/apiv2/subuserdel/{user_id}Parâmetros de Path
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| user_id | integer | Sim | ID do SUB-usuário a ser excluído |
Headers da Requisição
| Header | Obrigatório | Descrição |
|---|---|---|
| X-API-KEY | Sim | Sua chave de API (deve ser a chave do usuário principal) |
| X-Real-IP | Sim | Endereço IP da sua whitelist |
Autenticação e Autorização
Este endpoint requer tanto autenticação quanto autorização:
- Autenticação: Chave de API válida + IP da whitelist (igual aos outros endpoints)
- Autorização: Apenas o usuário principal (que criou o SUB-usuário) pode excluir seus SUB-usuários
Se um usuário tentar excluir um SUB-usuário que não lhe pertence, a requisição será rejeitada com 403 Forbidden.
Exemplos de Requisição
cURL
bash
curl -X DELETE https://netts.io/apiv2/subuserdel/1234 \
-H "X-API-KEY: your_api_key" \
-H "X-Real-IP: your_whitelisted_ip"Python
python
import requests
user_id = 1234
url = f"https://netts.io/apiv2/subuserdel/{user_id}"
headers = {
"X-API-KEY": "your_api_key",
"X-Real-IP": "your_whitelisted_ip"
}
response = requests.delete(url, headers=headers)
data = response.json()
if response.status_code == 200:
print(f"Deleted user: {data['user_id']} ({data['google_id']})")
print(f"Parent user: {data['parent_user_id']}")
print(f"Records reassigned: {data['total_reassigned']}")
print(f"Records deleted: {data['total_deleted']}")
print(f"Message: {data['message']}")
else:
print(f"Error ({response.status_code}): {data.get('detail', 'Unknown error')}")Node.js
javascript
const axios = require('axios');
async function deleteSubUser(userId, apiKey, whitelistedIp) {
const url = `https://netts.io/apiv2/subuserdel/${userId}`;
const response = await axios.delete(url, {
headers: {
'X-API-KEY': apiKey,
'X-Real-IP': whitelistedIp
},
timeout: 30000
});
const data = response.data;
console.log(`Deleted: ${data.user_id} (${data.google_id})`);
console.log(`Reassigned: ${data.total_reassigned} rows`);
console.log(`Deleted: ${data.total_deleted} records`);
return data;
}
// Usage
deleteSubUser(1234, 'your_api_key', 'your_whitelisted_ip')
.then(result => console.log('Done:', result.message))
.catch(err => console.error('Error:', err.response?.data || err.message));PHP
php
<?php
$userId = 1234;
$url = "https://netts.io/apiv2/subuserdel/{$userId}";
$options = [
'http' => [
'header' => implode("\r\n", [
"X-API-KEY: your_api_key",
"X-Real-IP: your_whitelisted_ip"
]),
'method' => 'DELETE',
'timeout' => 30
]
];
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
$data = json_decode($response, true);
echo "Deleted user: {$data['user_id']} ({$data['google_id']})\n";
echo "Reassigned: {$data['total_reassigned']} rows\n";
echo "Deleted: {$data['total_deleted']} records\n";
echo "Message: {$data['message']}\n";
?>Resposta
Resposta de Sucesso (200 OK)
json
{
"user_id": 1234,
"google_id": "SUB123456789012345678",
"parent_user_id": 42,
"total_reassigned": 787,
"total_deleted": 8,
"message": "Mock user 1234 (SUB123456789012345678) deleted. History (787 rows) reassigned to parent 42."
}Campos da Resposta
| Campo | Tipo | Descrição |
|---|---|---|
| user_id | integer | ID do SUB-usuário excluído |
| google_id | string | Google ID do SUB-usuário excluído |
| parent_user_id | integer | ID do usuário principal (o histórico foi reatribuído a este usuário) |
| total_reassigned | integer | Número total de registros de histórico reatribuídos |
| total_deleted | integer | Número total de registros excluídos |
| message | string | Mensagem de resumo |
Como Funciona a Exclusão
A exclusão é realizada atomicamente em uma única transação:
- Reatribuição de histórico — todo o histórico de pedidos e delegações do SUB-usuário é reatribuído ao usuário principal. Nenhum dado de transação é perdido.
- Limpeza de registros — registros específicos do SUB-usuário (chave de API, configurações, dados de indicação, endereço de depósito) são removidos.
- Trilha de auditoria — um registro de exclusão é salvo para fins de rastreamento.
Proteções de Segurança
- Apenas SUB-usuários podem ser excluídos — contas de usuários reais são protegidas e não podem ser excluídas por meio deste endpoint
- Autorização obrigatória — apenas o usuário principal pode excluir seus próprios SUB-usuários
- Segurança de transação — todas as operações são executadas em uma única transação de banco de dados (tudo ou nada)
- Histórico preservado — o histórico de pedidos e delegações é reatribuído ao usuário principal, não perdido
Respostas de Erro
Requisição Inválida (400)
json
{
"detail": "User with id=9999 not found"
}json
{
"detail": "User 42 is NOT a mock user (google_id=1234567890). Only users with google_id starting with 'SUB' can be deleted."
}Proibido (403)
json
{
"detail": "Not authorized: you can only delete your own SUB-users."
}Erro de Autenticação (401)
json
{
"detail": "X-API-KEY header required"
}Erro Interno do Servidor (500)
json
{
"detail": "Failed to delete mock user: ..."
}Referência de Códigos de Erro
| Status HTTP | Descrição |
|---|---|
200 | SUB-usuário excluído com sucesso |
400 | Usuário não encontrado ou não é um SUB-usuário |
401 | Header de chave de API ausente |
403 | Não autorizado (não é o usuário principal) / Chave de API ou IP inválido |
500 | Erro interno do servidor |
Notas
- A exclusão é irreversível — certifique-se de que deseja remover o SUB-usuário antes de chamar este endpoint
- Todo o histórico do SUB-usuário (pedidos, delegações) é reatribuído ao usuário principal — nenhum dado é perdido
- O registro de exclusão é armazenado permanentemente na tabela de auditoria do banco de dados
- Os registros de ganhos de indicação não são afetados pela exclusão
- Se o SUB-usuário possuir saldo diferente de zero, ele não é transferido automaticamente — faça a retirada antes de excluir
- Os SUB-usuários podem ser criados novamente através do endpoint POST /apiv2/subusergen
Endpoints Relacionados
- POST /apiv2/subusergen — Criar um novo SUB-usuário
- POST /apiv2/address/rotate — Rotacionar endereço de depósito
- GET /apiv2/userinfo — Obter informações do usuário/SUB-usuário