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

DELETE /apiv2/subuserdel/ ​

Bir SUB kullanıcıyı ve ilgili tüm kayıtları silin. Geçmiş kayıtları (siparişler, yetkilendirmeler) üst kullanıcıya yeniden atanır. Yalnızca üst hesap veya bir yönetici bir SUB kullanıcıyı silebilir.

Uç Nokta URL'si ​

DELETE https://netts.io/apiv2/subuserdel/{user_id}

Yol Parametreleri ​

ParametreTürZorunluAçıklama
user_idintegerEvetSilinecek SUB kullanıcının kimliği

İstek Başlıkları ​

BaşlıkZorunluAçıklama
X-API-KEYEvetAPI anahtarınız (üst kullanıcının anahtarı olmalıdır)
X-Real-IPEvetBeyaz listenizdeki IP adresi

Kimlik Doğrulama ve Yetkilendirme ​

Bu uç nokta hem kimlik doğrulama hem de yetkilendirme gerektirir:

  1. Kimlik Doğrulama: Geçerli API anahtarı + beyaz listedeki IP (diğer uç noktalarla aynı)
  2. Yetkilendirme: Yalnızca üst kullanıcı (SUB kullanıcıyı oluşturan) kendi SUB kullanıcılarını silebilir

Bir kullanıcı kendisine ait olmayan bir SUB kullanıcıyı silmeye çalışırsa istek 403 Forbidden ile reddedilir.

Örnek İstekler ​

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

Yanıt ​

Başarılı Yanıt (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."
}

Yanıt Alanları ​

AlanTürAçıklama
user_idintegerSilinen SUB kullanıcı kimliği
google_idstringSilinen SUB kullanıcının Google kimliği
parent_user_idintegerÜst kullanıcı kimliği (geçmiş bu kullanıcıya yeniden atanır)
total_reassignedintegerYeniden atanan geçmiş kayıtlarının toplam sayısı
total_deletedintegerSilinen kayıtların toplam sayısı
messagestringÖzet mesajı

Silme İşlemi Nasıl Çalışır ​

Silme işlemi tek bir işlem (transaction) içinde atomik olarak gerçekleştirilir:

  1. Geçmişin yeniden atanması — SUB kullanıcının tüm sipariş ve yetkilendirme geçmişi üst kullanıcıya yeniden atanır. Hiçbir işlem verisi kaybolmaz.
  2. Kayıt temizliği — SUB kullanıcıya özel kayıtlar (API anahtarı, ayarlar, tavsiye verileri, yatırma adresi) kaldırılır.
  3. Denetim izi — takip amacıyla bir silme kaydı saklanır.

Güvenlik Korumaları ​

  • Yalnızca SUB kullanıcılar silinebilir — gerçek kullanıcı hesapları korunur ve bu uç nokta aracılığıyla silinemez
  • Yetkilendirme gereklidir — yalnızca üst kullanıcı kendi SUB kullanıcılarını silebilir
  • İşlem güvenliği — tüm işlemler tek bir veritabanı işlemi (ya hep ya hiç) içinde yürütülür
  • Geçmiş korunur — sipariş ve yetkilendirme geçmişi üst kullanıcıya yeniden atanır, kaybolmaz

Hata Yanıtları ​

Geçersiz İstek (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."
}

Yasak (403) ​

json
{
    "detail": "Not authorized: you can only delete your own SUB-users."
}

Kimlik Doğrulama Hatası (401) ​

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

Sunucu İçi Hata (500) ​

json
{
    "detail": "Failed to delete mock user: ..."
}

Hata Kodu Referansı ​

HTTP DurumuAçıklama
200SUB kullanıcı başarıyla silindi
400Kullanıcı bulunamadı veya bir SUB kullanıcı değil
401Eksik API anahtarı başlığı
403Yetkisiz (üst kullanıcı değil) / Geçersiz API anahtarı veya IP
500Sunucu içi hata

Notlar ​

  • Silme işlemi geri alınamaz — bu uç noktayı çağırmadan önce SUB kullanıcıyı kaldırmak istediğinizden emin olun
  • Tüm SUB kullanıcı geçmişi (siparişler, yetkilendirmeler) üst kullanıcıya yeniden atanır — veri kaybı olmaz
  • Silme kaydı veritabanı denetim tablosunda kalıcı olarak saklanır
  • Tavsiye kazanç kayıtları silme işleminden etkilenmez
  • SUB kullanıcının sıfır olmayan bir bakiyesi varsa, bu bakiye otomatik olarak aktarılmaz — silmeden önce çekim yapın
  • SUB kullanıcılar POST /apiv2/subusergen uç noktası aracılığıyla yeniden oluşturulabilir

İlgili Uç Noktalar ​