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

DELETE /apiv2/subuserdel/

ایک SUB-user اور اس سے متعلقہ تمام ریکارڈز کو حذف کریں۔ ہسٹری کے ریکارڈز (آرڈرز، ڈیلیگیشنز) پیرنٹ صارف کے نام دوبارہ تفویض کر دیے جاتے ہیں۔ صرف پیرنٹ اکاؤنٹ یا ایڈمنسٹریٹر ہی SUB-user کو حذف کر سکتا ہے۔

اینڈپوائنٹ URL

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

پاتھ پیرامیٹرز

پیرامیٹرقسمدرکار ہےتفصیل
user_idintegerہاںحذف کیے جانے والے SUB-user کا ID

ریکویسٹ ہیڈرز

ہیڈردرکار ہےتفصیل
X-API-KEYہاںآپ کی API کی (لازمی ہے کہ پیرنٹ صارف کی کی ہو)
X-Real-IPہاںآپ کی وائٹ لسٹ سے IP ایڈریس

تصدیق اور اجازت

اس اینڈپوائنٹ کے لیے تصدیق (authentication) اور اجازت (authorization) دونوں درکار ہیں:

  1. تصدیق: درست API کی + وائٹ لسٹ سے IP (دیگر اینڈپوائنٹس کی طرح)
  2. اجازت: صرف پیرنٹ صارف (جس نے 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_idintegerحذف شدہ SUB-user کا ID
google_idstringحذف شدہ SUB-user کا Google ID
parent_user_idintegerپیرنٹ صارف کا ID (ہسٹری اس صارف کو دوبارہ تفویض کی گئی ہے)
total_reassignedintegerدوبارہ تفویض کیے گئے ہسٹری ریکارڈز کی کل تعداد
total_deletedintegerحذف شدہ ریکارڈز کی کل تعداد
messagestringخلاصہ پیغام

حذف کرنے کا عمل کیسے کام کرتا ہے

حذف کرنے کا عمل ایک ہی ٹرانزیکشن میں ایٹمی طور پر انجام دیا جاتا ہے:

  1. ہسٹری کی دوبارہ تفویض — SUB-user کے تمام آرڈر اور ڈیلیگیشن ہسٹری پیرنٹ صارف کو دوبارہ تفویض کر دی جاتی ہے۔ کوئی ٹرانزیکشن ڈیٹا ضائع نہیں ہوتا ہے۔
  2. ریکارڈز کی صفائی — SUB-user کے مخصوص ریکارڈز (API کی، سیٹنگز، ریفرل ڈیٹا، ڈپازٹ ایڈریس) ہٹا دیے جاتے ہیں۔
  3. آڈٹ ٹریل — ٹریکنگ کے مقاصد کے لیے حذف کرنے کا ریکارڈ محفوظ کر لیا جاتا ہے۔

حفاظتی تدابیر

  • صرف 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 اسٹیٹستفصیل
200SUB-user کامیابی کے ساتھ حذف ہو گیا
400صارف نہیں ملا یا SUB-user نہیں ہے
401گمشدہ API کی ہیڈر
403مجاز نہیں ہے (پیرنٹ صارف نہیں ہے) / غلط API کی یا IP
500اندرونی سرور کی خرابی

نوٹس

  • حذف کرنا ناقابل واپسی ہے — اس اینڈپوائنٹ کو کال کرنے سے پہلے یقینی بنائیں کہ آپ SUB-user کو ہٹانا چاہتے ہیں
  • تمام SUB-user ہسٹری (آرڈرز، ڈیلیگیشنز) پیرنٹ کو دوبارہ تفویض کر دی جاتی ہے — کوئی ڈیٹا ضائع نہیں ہوتا
  • حذف کرنے کا ریکارڈ ڈیٹا بیس کے آڈٹ ٹیبل میں مستقل طور پر محفوظ رہتا ہے
  • ریفرل آمدنی کے ریکارڈز حذف کرنے سے متاثر نہیں ہوتے
  • اگر SUB-user کا بیلنس صفر کے علاوہ ہے، تو یہ خود بخود منتقل نہیں ہوتا — حذف کرنے سے پہلے رقم نکال لیں
  • SUB-users کو POST /apiv2/subusergen اینڈپوائنٹ کے ذریعے دوبارہ بنایا جا سکتا ہے

متعلقہ اینڈپوائنٹس