DELETE /apiv2/subuserdel/
एक SUB-user और उससे संबंधित सभी रिकॉर्ड हटाएं। इतिहास रिकॉर्ड (ऑर्डर, डेलिगेशन) मूल (parent) उपयोगकर्ता को पुनः सौंप दिए जाते हैं। केवल मूल खाता या कोई व्यवस्थापक ही SUB-user को हटा सकता है।
एंडपॉइंट URL
DELETE https://netts.io/apiv2/subuserdel/{user_id}पाथ पैरामीटर्स
| पैरामीटर | प्रकार | आवश्यक | विवरण |
|---|---|---|---|
| user_id | integer | हाँ | हटाने के लिए SUB-user की ID |
अनुरोध हेडर
| हेडर | आवश्यक | विवरण |
|---|---|---|
| X-API-KEY | हाँ | आपकी API कुंजी (मूल उपयोगकर्ता की कुंजी होनी चाहिए) |
| X-Real-IP | हाँ | आपकी श्वेतसूची (whitelist) से IP पता |
प्रमाणीकरण और प्राधिकरण
इस एंडपॉइंट के लिए प्रमाणीकरण और प्राधिकरण दोनों की आवश्यकता होती है:
- प्रमाणीकरण: मान्य API कुंजी + श्वेतसूची से IP (अन्य एंडपॉइंट्स के समान)
- प्राधिकरण: केवल मूल उपयोगकर्ता (जिसने SUB-user बनाया है) ही अपने SUB-users को हटा सकता है
यदि कोई उपयोगकर्ता ऐसे SUB-user को हटाने का प्रयास करता है जो उसका नहीं है, तो अनुरोध को 403 Forbidden के साथ अस्वीकार कर दिया जाता है।
उदाहरण अनुरोध
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";
?>प्रतिक्रिया
सफल प्रतिक्रिया (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."
}प्रतिक्रिया फ़ील्ड
| फ़ील्ड | प्रकार | विवरण |
|---|---|---|
| user_id | integer | हटाए गए SUB-user की ID |
| google_id | string | हटाए गए SUB-user की Google ID |
| parent_user_id | integer | मूल उपयोगकर्ता ID (इतिहास इस उपयोगकर्ता को पुनः सौंपा गया) |
| total_reassigned | integer | पुनः सौंपे गए इतिहास रिकॉर्ड की कुल संख्या |
| total_deleted | integer | हटाए गए रिकॉर्ड की कुल संख्या |
| message | string | सारांश संदेश |
विलोपन कैसे काम करता है
विलोपन प्रक्रिया एकल लेनदेन (transaction) में स्वचालित रूप से निष्पादित होती है:
- इतिहास पुनः सौंपना — SUB-user के सभी ऑर्डर और डेलिगेशन इतिहास को मूल उपयोगकर्ता को पुनः सौंप दिया जाता है। कोई भी लेनदेन डेटा नहीं खोता है।
- रिकॉर्ड सफ़ाई — SUB-user से संबंधित विशिष्ट रिकॉर्ड (API कुंजी, सेटिंग्स, रेफरल डेटा, डिपॉज़िट पता) हटा दिए जाते हैं।
- ऑडिट ट्रेल — ट्रैकिंग उद्देश्यों के लिए एक विलोपन रिकॉर्ड सहेजा जाता है।
सुरक्षा उपाय
- केवल SUB-users को हटाया जा सकता है — वास्तविक उपयोगकर्ता खाते सुरक्षित हैं और इस एंडपॉइंट के माध्यम से नहीं हटाए जा सकते
- प्राधिकरण आवश्यक — केवल मूल उपयोगकर्ता ही अपने स्वयं के SUB-users को हटा सकता है
- लेनदेन सुरक्षा — सभी ऑपरेशन एकल डेटाबेस लेनदेन में चलते हैं (सब कुछ या कुछ भी नहीं)
- इतिहास संरक्षित — ऑर्डर और डेलिगेशन इतिहास मूल उपयोगकर्ता को पुनः सौंपा जाता है, खोता नहीं है
त्रुटि प्रतिक्रियाएं
गलत अनुरोध (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."
}निषिद्ध (403)
json
{
"detail": "Not authorized: you can only delete your own SUB-users."
}प्रमाणीकरण त्रुटि (401)
json
{
"detail": "X-API-KEY header required"
}आंतरिक सर्वर त्रुटि (500)
json
{
"detail": "Failed to delete mock user: ..."
}त्रुटि कोड संदर्भ
| HTTP स्थिति | विवरण |
|---|---|
200 | SUB-user सफलतापूर्वक हटा दिया गया |
400 | उपयोगकर्ता नहीं मिला या SUB-user नहीं है |
401 | अनुपलब्ध API कुंजी हेडर |
403 | अधिकृत नहीं हैं (मूल उपयोगकर्ता नहीं हैं) / अमान्य API कुंजी या IP |
500 | आंतरिक सर्वर त्रुटि |
टिप्पणियाँ
- विलोपन अपरिवर्तनीय है — इस एंडपॉइंट को कॉल करने से पहले सुनिश्चित करें कि आप SUB-user को हटाना चाहते हैं
- सभी SUB-user इतिहास (ऑर्डर, डेलिगेशन) मूल उपयोगकर्ता को पुनः सौंप दिया जाता है — कोई डेटा नष्ट नहीं होता है
- विलोपन रिकॉर्ड डेटाबेस ऑडिट तालिका में स्थायी रूप से संग्रहीत होता है
- रेफरल आय के रिकॉर्ड विलोपन से प्रभावित नहीं होते हैं
- यदि SUB-user के पास गैर-शून्य शेष राशि (balance) है, तो इसे स्वचालित रूप से स्थानांतरित नहीं किया जाता है — हटाने से पहले निकासी करें
- SUB-users को POST /apiv2/subusergen एंडपॉइंट के माध्यम से फिर से बनाया जा सकता है
संबंधित एंडपॉइंट्स
- POST /apiv2/subusergen — एक नया SUB-user बनाएं
- POST /apiv2/address/rotate — डिपॉज़िट पता रोटेट करें
- GET /apiv2/userinfo — उपयोगकर्ता/SUB-user जानकारी प्राप्त करें