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

POST /apiv2/address/rotate

Meminta rotasi alamat deposit. Alamat deposit saat ini akan diganti dengan yang baru. Permintaan dimasukkan ke dalam antrean pemrosesan dan diselesaikan secara otomatis dalam waktu 5 menit.

URL Endpoint

POST https://netts.io/apiv2/address/rotate

Header Permintaan

HeaderDiperlukanDeskripsi
Content-TypeYaapplication/json
X-API-KEYYaKunci API Anda dari dasbor Netts
X-Real-IPYaAlamat IP dari whitelist Anda

Isi Permintaan

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

Parameter

ParameterTipeDiperlukanDefaultDeskripsi
user_idintegerTidakPengguna terautentikasiID pengguna target. Kosongkan untuk merotasi alamat Anda sendiri. Pengguna induk dapat menentukan ID SUB-user mereka
address_typestringTidak"web"Tipe alamat yang akan dirotasi: web atau tg

Otentikasi & Otorisasi

Endpoint ini memerlukan otentikasi dan otorisasi:

  1. Otentikasi: Kunci API yang valid + IP dari whitelist (sama seperti endpoint lainnya)
  2. Otorisasi:
    • Merotasi alamat Anda sendiri — selalu diizinkan
    • Merotasi alamat SUB-user Anda — diizinkan untuk pengguna induk
    • Merotasi alamat pengguna lain — ditolak dengan 403 Forbidden

Contoh Permintaan

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";
?>

Respons

Respons Berhasil (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"
}

Bidang Respons

BidangTipeDeskripsi
rotation_idintegerID unik permintaan rotasi (gunakan untuk pemeriksaan status)
user_idintegerPengguna yang alamatnya sedang dirotasi
address_typestringTipe alamat yang sedang dirotasi (web atau tg)
old_addressstringAlamat deposit TRON saat ini sebelum rotasi
statusstringStatus permintaan: pending
messagestringPesan status yang dapat dibaca manusia
estimated_completionstringPerkiraan waktu selesai dalam format ISO 8601

Periksa Status Rotasi

GET /apiv2/address/rotate/status/

Memeriksa status permintaan rotasi yang telah dikirimkan sebelumnya.

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

Respons:

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"
}

Nilai Status

StatusDeskripsi
pendingPermintaan dikirimkan, menunggu untuk diproses
processingSedang diproses
completedAlamat baru berhasil ditetapkan
failedTerjadi kesalahan selama rotasi

Periksa Rotasi Tertunda

GET /apiv2/address/rotate/pending

Memeriksa apakah pengguna memiliki permintaan rotasi yang tertunda (berguna untuk menonaktifkan tombol rotasi).

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"

Respons:

json
{
    "user_id": 1234,
    "address_type": "web",
    "has_pending": true,
    "pending_rotation": {
        "rotation_id": 42,
        "status": "pending",
        "created_at": "2026-03-14T12:30:00Z"
    }
}

Catatan Penting

Perubahan Alamat

Setelah rotasi selesai, alamat deposit Anda saat ini tidak akan lagi menerima deposit. Pastikan untuk:

  1. Menarik sisa saldo dari alamat saat ini sebelum meminta rotasi
  2. Memperbarui sistem eksternal apa pun yang merujuk ke alamat deposit lama Anda
  3. Menggunakan alamat baru untuk semua deposit mendatang

Waktu Pemrosesan

Permintaan rotasi diproses secara otomatis. Alamat baru biasanya ditetapkan dalam waktu 5 menit setelah pengiriman.

  • Hanya satu rotasi tertunda per pengguna per tipe alamat yang diizinkan dalam kurun waktu 7 hari
  • Jika Anda sudah memiliki rotasi tertunda, permintaan akan ditolak dengan 409 Conflict
  • Alamat web dan tg dapat dirotasi secara independen
  • Pengguna induk dapat merotasi alamat SUB-user mereka dengan menentukan parameter user_id

Respons Kesalahan

Conflict (409)

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

Bad Request (400)

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

Not Found (404)

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

Forbidden (403)

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

Kesalahan Otentikasi (401)

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

Referensi Kode Kesalahan

Status HTTPDeskripsi
200Permintaan rotasi berhasil dikirimkan
400Permintaan tidak valid (tidak ada alamat, tipe tidak valid)
401Header kunci API tidak ada
403Tidak diizinkan / Kunci API atau IP tidak valid
404Pengguna tidak ditemukan / Rotasi tidak ditemukan
409Rotasi tertunda sudah ada
500Kesalahan server internal

Endpoint Terkait