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