POST /apiv2/address/rotate
Solicitar una rotación de dirección de depósito. La dirección de depósito actual se reemplazará por una nueva. La solicitud se coloca en una cola de procesamiento y se completa automáticamente en un plazo de 5 minutos.
URL del endpoint
POST https://netts.io/apiv2/address/rotateEncabezados de solicitud
| Header | Required | Description |
|---|---|---|
| Content-Type | Sí | application/json |
| X-API-KEY | Sí | Su clave API del panel de Netts |
| X-Real-IP | Sí | Dirección IP de su lista blanca |
Cuerpo de solicitud
{
"user_id": 1234,
"address_type": "web"
}Parámetros de solicitud
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| user_id | integer | No | Usuario autenticado | ID del usuario objetivo. Omita para rotar su propia dirección. Los usuarios principales pueden especificar el ID de su SUB-user |
| address_type | string | No | "web" | Tipo de dirección a rotar: web o tg |
Autenticación y Autorización
Este endpoint requiere tanto autenticación como autorización:
- Autenticación: Clave API válida + IP de la lista blanca (igual que otros endpoints)
- Autorización:
- Rotar su propia dirección — siempre permitido
- Rotar la dirección de su SUB-user — permitido para usuarios principales
- Rotar la dirección de otro usuario — rechazado con
403 Forbidden
Ejemplos
cURL
# Rotate own address
curl -X POST https://netts.io/apiv2/address/rotate \
-H "Content-Type: application/json" \
-H "X-API-KEY: your_api_key" \
-H "X-Real-IP: your_whitelisted_ip" \
-d '{"address_type": "web"}'# Rotate SUB-user's address (parent user only)
curl -X POST https://netts.io/apiv2/address/rotate \
-H "Content-Type: application/json" \
-H "X-API-KEY: your_api_key" \
-H "X-Real-IP: your_whitelisted_ip" \
-d '{"user_id": 1234, "address_type": "web"}'Python
import requests
url = "https://netts.io/apiv2/address/rotate"
headers = {
"Content-Type": "application/json",
"X-API-KEY": "your_api_key",
"X-Real-IP": "your_whitelisted_ip"
}
# Rotate own address
response = requests.post(url, headers=headers, json={"address_type": "web"})
data = response.json()
if response.status_code == 200:
print(f"Rotation ID: {data['rotation_id']}")
print(f"Old Address: {data['old_address']}")
print(f"Status: {data['status']}")
print(f"Estimated Completion: {data['estimated_completion']}")
else:
print(f"Error: {data.get('detail', 'Unknown error')}")Node.js
const axios = require('axios');
async function rotateAddress(apiKey, whitelistedIp, addressType = 'web', userId = null) {
const url = 'https://netts.io/apiv2/address/rotate';
const body = { address_type: addressType };
if (userId) body.user_id = userId;
const response = await axios.post(url, body, {
headers: {
'Content-Type': 'application/json',
'X-API-KEY': apiKey,
'X-Real-IP': whitelistedIp
},
timeout: 30000
});
const data = response.data;
console.log(`Rotation ID: ${data.rotation_id}`);
console.log(`Status: ${data.status}`);
console.log(`Old Address: ${data.old_address}`);
return data;
}
// Rotate own address
rotateAddress('your_api_key', 'your_whitelisted_ip')
.then(result => console.log('Submitted:', result.message))
.catch(err => console.error('Error:', err.response?.data || err.message));PHP
<?php
$url = 'https://netts.io/apiv2/address/rotate';
$data = json_encode([
'address_type' => 'web'
]);
$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' => $data,
'timeout' => 30
]
];
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
$result = json_decode($response, true);
echo "Rotation ID: {$result['rotation_id']}\n";
echo "Old Address: {$result['old_address']}\n";
echo "Status: {$result['status']}\n";
echo "Message: {$result['message']}\n";
?>Respuesta
Respuesta exitosa (200 OK)
{
"rotation_id": 42,
"user_id": 1234,
"address_type": "web",
"old_address": "TCurrentAddress1234567890123456789",
"status": "pending",
"message": "Address rotation request submitted. New address will be assigned within 5 minutes.",
"estimated_completion": "2026-03-14T12:35:00Z"
}Campos de respuesta
| Field | Type | Description |
|---|---|---|
| rotation_id | integer | ID único de solicitud de rotación (usar para comprobaciones de estado) |
| user_id | integer | Usuario cuya dirección se está rotando |
| address_type | string | Tipo de dirección que se está rotando (web o tg) |
| old_address | string | Dirección de depósito TRON actual antes de la rotación |
| status | string | Estado de la solicitud: pending |
| message | string | Mensaje de estado legible por humanos |
| estimated_completion | string | Tiempo estimado de finalización en formato ISO 8601 |
Comprobar estado de rotación
GET /apiv2/address/rotate/status/
Comprueba el estado de una solicitud de rotación enviada previamente.
curl https://netts.io/apiv2/address/rotate/status/42 \
-H "X-API-KEY: your_api_key" \
-H "X-Real-IP: your_whitelisted_ip"Respuesta:
{
"rotation_id": 42,
"user_id": 1234,
"address_type": "web",
"status": "completed",
"old_address": "TOldAddress1234567890123456789012",
"new_address": "TNewAddress1234567890123456789012",
"created_at": "2026-03-14T12:30:00Z",
"completed_at": "2026-03-14T12:34:15Z"
}Valores de estado
| Status | Description |
|---|---|
pending | Solicitud enviada, en espera de ser procesada |
processing | Actualmente en procesamiento |
completed | Nueva dirección asignada con éxito |
failed | Ocurrió un error durante la rotación |
Comprobar rotación pendiente
GET /apiv2/address/rotate/pending
Comprueba si un usuario tiene una solicitud de rotación pendiente (útil para deshabilitar el botón de rotación).
curl "https://netts.io/apiv2/address/rotate/pending?address_type=web" \
-H "X-API-KEY: your_api_key" \
-H "X-Real-IP: your_whitelisted_ip"Respuesta:
{
"user_id": 1234,
"address_type": "web",
"has_pending": true,
"pending_rotation": {
"rotation_id": 42,
"status": "pending",
"created_at": "2026-03-14T12:30:00Z"
}
}Notes importantes
Cambio de dirección
Una vez completada la rotación, su dirección de depósito actual ya no aceptará depósitos. Asegúrese de:
- Retirar cualquier saldo restante de la dirección actual antes de solicitar la rotación
- Actualizar cualquier sistema externo que haga referencia a su antigua dirección de depósito
- Usar la nueva dirección para todos los depósitos futuros
Tiempo de procesamiento
Las solicitudes de rotación se procesan automáticamente. Por lo general, se asigna una nueva dirección dentro de los 5 minutos posteriores al envío.
- Solo se permite una rotación pendiente por usuario por tipo de dirección dentro de un período de 7 días
- Si ya tiene una rotación pendiente, la solicitud será rechazada con
409 Conflict - Tanto las direcciones
webcomotgse pueden rotar de forma independiente - Los usuarios principales pueden rotar las direcciones de sus SUB-users especificando el parámetro
user_id
Respuestas de error
Conflicto (409)
{
"detail": "User 1234 already has a pending web address rotation request"
}Solicitud incorrecta (400)
{
"detail": "User 1234 has no web deposit address"
}{
"detail": "address_type must be 'web' or 'tg'"
}No encontrado (404)
{
"detail": "User 9999 not found"
}Prohibido (403)
{
"detail": "Not authorized to rotate this user's address"
}Error de autenticación (401)
{
"detail": "X-API-KEY header required"
}Referencia de códigos de error
| HTTP Status | Description |
|---|---|
200 | Solicitud de rotación enviada con éxito |
400 | Solicitud no válida (sin dirección, tipo no válido) |
401 | Falta el encabezado de clave API |
403 | No autorizado / Clave API o IP no válida |
404 | Usuario no encontrado / Rotación no encontrada |
409 | La rotación pendiente ya existe |
500 | Error interno del servidor |
Endpoints relacionados
- POST /apiv2/subusergen — Crear un nuevo SUB-user
- DELETE /apiv2/subuserdel — Eliminar un SUB-user
- GET /apiv2/userinfo — Obtener información del usuario