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

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

Encabezados de solicitud

HeaderRequiredDescription
Content-Typeapplication/json
X-API-KEYSu clave API del panel de Netts
X-Real-IPDirección IP de su lista blanca

Cuerpo de solicitud

json
{
    "user_id": 1234,
    "address_type": "web"
}

Parámetros de solicitud

ParameterTypeRequiredDefaultDescription
user_idintegerNoUsuario autenticadoID del usuario objetivo. Omita para rotar su propia dirección. Los usuarios principales pueden especificar el ID de su SUB-user
address_typestringNo"web"Tipo de dirección a rotar: web o tg

Autenticación y Autorización

Este endpoint requiere tanto autenticación como autorización:

  1. Autenticación: Clave API válida + IP de la lista blanca (igual que otros endpoints)
  2. 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

bash
# 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"}'
bash
# 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

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

javascript
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
<?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)

json
{
    "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

FieldTypeDescription
rotation_idintegerID único de solicitud de rotación (usar para comprobaciones de estado)
user_idintegerUsuario cuya dirección se está rotando
address_typestringTipo de dirección que se está rotando (web o tg)
old_addressstringDirección de depósito TRON actual antes de la rotación
statusstringEstado de la solicitud: pending
messagestringMensaje de estado legible por humanos
estimated_completionstringTiempo 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.

bash
curl https://netts.io/apiv2/address/rotate/status/42 \
  -H "X-API-KEY: your_api_key" \
  -H "X-Real-IP: your_whitelisted_ip"

Respuesta:

json
{
    "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

StatusDescription
pendingSolicitud enviada, en espera de ser procesada
processingActualmente en procesamiento
completedNueva dirección asignada con éxito
failedOcurrió 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).

bash
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:

json
{
    "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:

  1. Retirar cualquier saldo restante de la dirección actual antes de solicitar la rotación
  2. Actualizar cualquier sistema externo que haga referencia a su antigua dirección de depósito
  3. 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 web como tg se 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)

json
{
    "detail": "User 1234 already has a pending web address rotation request"
}

Solicitud incorrecta (400)

json
{
    "detail": "User 1234 has no web deposit address"
}
json
{
    "detail": "address_type must be 'web' or 'tg'"
}

No encontrado (404)

json
{
    "detail": "User 9999 not found"
}

Prohibido (403)

json
{
    "detail": "Not authorized to rotate this user's address"
}

Error de autenticación (401)

json
{
    "detail": "X-API-KEY header required"
}

Referencia de códigos de error

HTTP StatusDescription
200Solicitud de rotación enviada con éxito
400Solicitud no válida (sin dirección, tipo no válido)
401Falta el encabezado de clave API
403No autorizado / Clave API o IP no válida
404Usuario no encontrado / Rotación no encontrada
409La rotación pendiente ya existe
500Error interno del servidor

Endpoints relacionados