> ## Documentation Index
> Fetch the complete documentation index at: https://docs.oneclickdz.com/llms.txt
> Use this file to discover all available pages before exploring further.

# إرسال شحن الإنترنت

> اشترِ وأرسل بطاقة شحن إنترنت ADSL أو 4G LTE

<div dir="rtl">
  ## نظرة عامة

  اشترِ بطاقات شحن الإنترنت لخدمات ADSL أو 4G LTE مع التسليم الرقمي الفوري.

  <Note>
    تحقق دائماً من [أرقام الهاتف](/ar/api-reference/internet/validate-number) قبل الإرسال لتقليل الأخطاء.
  </Note>

  ## جسم الطلب

  <ParamField body="type" type="string" required>
    نوع الخدمة: `ADSL` أو `4G`
  </ParamField>

  <ParamField body="number" type="string" required>
    رقم الهاتف - **ADSL:** `0[0-9]{8}` (مثال: `036362608`) - **4G:** `213[0-9]{9}` (مثال: `213472731602`)
  </ParamField>

  <ParamField body="value" type="number" required>
    القيمة الاسمية للبطاقة من `/internet/products` (مثال: 500، 1000، 2000)
  </ParamField>

  <ParamField body="ref" type="string">
    مرجع طلبك الفريد (اختياري، يُنشأ تلقائياً إن لم يُقدَّم)
  </ParamField>

  ## أمثلة

  <CodeGroup>
    ```bash cURL theme={null}
    curl https://api.oneclickdz.com/v3/internet/send \
      -X POST \
      -H "Content-Type: application/json" \
      -H "X-Access-Token: YOUR_API_KEY" \
      -d '{
        "type": "ADSL",
        "number": "036362608",
        "value": 1000,
        "ref": "internet-order-001"
      }'
    ```

    ```javascript Node.js theme={null}
    const response = await fetch("https://api.oneclickdz.com/v3/internet/send", {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
        "X-Access-Token": "YOUR_API_KEY",
      },
      body: JSON.stringify({
        type: "ADSL",
        number: "036362608",
        value: 1000,
        ref: "internet-order-001",
      }),
    });
    const data = await response.json();
    ```

    ```python Python theme={null}
    response = requests.post(
        'https://api.oneclickdz.com/v3/internet/send',
        headers={
            'Content-Type': 'application/json',
            'X-Access-Token': 'YOUR_API_KEY'
        },
        json={
            'type': 'ADSL',
            'number': '036362608',
            'value': 1000,
            'ref': 'internet-order-001'
        }
    )
    ```

    ```php PHP theme={null}
    <?php
    $data = [
        'type' => 'ADSL',
        'number' => '036362608',
        'value' => 1000,
        'ref' => 'internet-order-001'
    ];

    $ch = curl_init('https://api.oneclickdz.com/v3/internet/send');
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Content-Type: application/json',
        'X-Access-Token: YOUR_API_KEY'
    ]);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
    $response = json_decode(curl_exec($ch), true);
    ?>
    ```
  </CodeGroup>

  ### استجابة النجاح

  ```json theme={null}
  {
    "success": true,
    "data": {
      "topupId": "690161a3e9e88196b4eb6545",
      "topupRef": "API-+213665983439-test-internet-1761698210633"
    },
    "meta": {
      "timestamp": "2025-10-29T00:36:52.065Z"
    }
  }
  ```

  ## دورة حياة الحالة

  <Steps>
    <Step title="HANDLING">قيد المعالجة لدى المشغل (3 إلى 45 ثانية عادةً)</Step>

    <Step title="الحالات النهائية">
      * **FULFILLED:** تم تسليم البطاقة ✅ - **REFUNDED:** فشل واسترداد ❌ - **QUEUED:** مجدول لاحقاً (12 إلى 48 ساعة) ⏰
    </Step>
  </Steps>

  [تتبع الحالة →](/ar/api-reference/internet/check-by-ref)

  ## ردود الخطأ

  <AccordionGroup>
    <Accordion title="ERR_VALIDATION">معاملات طلب غير صالحة</Accordion>

    <Accordion title="ERR_PHONE">
      تنسيق رقم هاتف غير صالح أو عدم تطابق النوع
    </Accordion>

    <Accordion title="ERR_STOCK">قيمة البطاقة غير متوفرة</Accordion>
    <Accordion title="INSUFFICIENT_BALANCE">رصيد غير كافٍ</Accordion>
    <Accordion title="DUPLICATED_REF">المرجع مستخدم مسبقاً</Accordion>
  </AccordionGroup>

  ## أفضل الممارسات

  <CardGroup cols={2}>
    <Card title="التحقق أولاً" icon="check">
      استخدم `/check-number` قبل الإرسال
    </Card>

    <Card title="التحقق من المخزون" icon="box">
      تأكد من توافر المنتج
    </Card>

    <Card title="مراجع فريدة" icon="fingerprint">
      قدِّم `ref` فريداً للتتبع
    </Card>

    <Card title="استعلام الحالة" icon="arrows-rotate">
      تحقق من الحالة بعد الإرسال
    </Card>
  </CardGroup>

  ## روابط ذات صلة

  <CardGroup cols={3}>
    <Card title="التحقق من الرقم" href="/ar/api-reference/internet/validate-number">
      التحقق من صحة الرقم
    </Card>

    <Card title="التحقق من الحالة" href="/ar/api-reference/internet/check-by-ref">
      تتبع الطلب
    </Card>

    <Card title="قائمة المنتجات" href="/ar/api-reference/internet/list-products">
      البطاقات المتاحة
    </Card>
  </CardGroup>
</div>
