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
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
| user_id | integer | Evet | Silinecek SUB kullanıcının kimliği |
İstek Başlıkları
| Başlık | Zorunlu | Açıklama |
|---|---|---|
| X-API-KEY | Evet | API anahtarınız (üst kullanıcının anahtarı olmalıdır) |
| X-Real-IP | Evet | Beyaz listenizdeki IP adresi |
Kimlik Doğrulama ve Yetkilendirme
Bu uç nokta hem kimlik doğrulama hem de yetkilendirme gerektirir:
- Kimlik Doğrulama: Geçerli API anahtarı + beyaz listedeki IP (diğer uç noktalarla aynı)
- 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ı
| Alan | Tür | Açıklama |
|---|---|---|
| user_id | integer | Silinen SUB kullanıcı kimliği |
| google_id | string | Silinen SUB kullanıcının Google kimliği |
| parent_user_id | integer | Üst kullanıcı kimliği (geçmiş bu kullanıcıya yeniden atanır) |
| total_reassigned | integer | Yeniden atanan geçmiş kayıtlarının toplam sayısı |
| total_deleted | integer | Silinen kayıtların toplam sayısı |
| message | string | Özet mesajı |
Silme İşlemi Nasıl Çalışır
Silme işlemi tek bir işlem (transaction) içinde atomik olarak gerçekleştirilir:
- 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.
- Kayıt temizliği — SUB kullanıcıya özel kayıtlar (API anahtarı, ayarlar, tavsiye verileri, yatırma adresi) kaldırılır.
- 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 Durumu | Açıklama |
|---|---|
200 | SUB kullanıcı başarıyla silindi |
400 | Kullanıcı bulunamadı veya bir SUB kullanıcı değil |
401 | Eksik API anahtarı başlığı |
403 | Yetkisiz (üst kullanıcı değil) / Geçersiz API anahtarı veya IP |
500 | Sunucu 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
- POST /apiv2/subusergen — Yeni bir SUB kullanıcı oluşturun
- POST /apiv2/address/rotate — Yatırma adresini döndürün
- GET /apiv2/userinfo — Kullanıcı/SUB kullanıcı bilgilerini alın