> ## 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.

# قائمة المعاملات

> الحصول على قائمة مرقّمة بمعاملات الحساب مع تصفية اختيارية حسب التاريخ

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

  يُرجع قائمة مرقّمة بجميع معاملات حسابك، بما فيها الإيداعات والسحوبات والشحنات والمبالغ المستردة والتحويلات.

  ## معلمات الاستعلام

  <ParamField query="page" type="integer" default={1}>
    رقم الصفحة (الحد الأدنى: 1)
  </ParamField>

  <ParamField query="pageSize" type="integer" default={20}>
    العناصر في الصفحة (الحد الأدنى: 1، الحد الأقصى: 100)
  </ParamField>

  <ParamField query="from" type="string">
    تاريخ البدء للتصفية (تنسيق ISO 8601: `2025-10-01T00:00:00Z`)
  </ParamField>

  <ParamField query="to" type="string">
    تاريخ الانتهاء للتصفية (تنسيق ISO 8601: `2025-10-31T23:59:59Z`)
  </ParamField>

  <Note>
    عند التصفية حسب التاريخ، يجب توفير معلمتَي `from` و `to` معًا.
  </Note>

  ## أنواع المعاملات

  ### دخول الأموال (زيادة)

  | النوع            | الوصف                          |
  | ---------------- | ------------------------------ |
  | `DEPOSIT`        | أموال مودعة في حسابك           |
  | `REFUND-FLEXY`   | استرداد من شحن هاتف محمول فاشل |
  | `REFUND-ADSL`    | استرداد من شحن إنترنت فاشل     |
  | `REFUND-ORDER`   | استرداد من طلب بطاقة هدية ملغى |
  | `RECEIVE`        | أموال مستلمة من مستخدم آخر     |
  | `POINT-EXCHANGE` | نقاط محوّلة إلى رصيد           |

  ### خروج الأموال (تخفيض)

  | النوع      | الوصف                   |
  | ---------- | ----------------------- |
  | `FLEXY`    | معاملة شحن هاتف محمول   |
  | `ADSL`     | معاملة شحن إنترنت       |
  | `ORDER`    | طلب بطاقة هدية أو منتج  |
  | `WITHDRAW` | أموال مسحوبة من الحساب  |
  | `SEND`     | أموال مرسلة لمستخدم آخر |
  | `SERVICE`  | دفع خدمة أو رسوم        |

  ## الاستجابة

  <ResponseField name="success" type="boolean" required>
    يشير إلى نجاح الطلب
  </ResponseField>

  <ResponseField name="data" type="object" required>
    <Expandable title="properties">
      <ResponseField name="items" type="array" required>
        مصفوفة من كائنات المعاملات

        <Expandable title="transaction object">
          <ResponseField name="_id" type="string">
            معرّف فريد للمعاملة
          </ResponseField>

          <ResponseField name="type" type="string">
            نوع المعاملة (انظر الأنواع أعلاه)
          </ResponseField>

          <ResponseField name="operation" type="string">
            اتجاه العملية: `increment` أو `decrement`
          </ResponseField>

          <ResponseField name="amount" type="number">
            مبلغ المعاملة بالدينار الجزائري
          </ResponseField>

          <ResponseField name="oldBalance" type="number">
            الرصيد قبل المعاملة
          </ResponseField>

          <ResponseField name="newBalance" type="number">
            الرصيد بعد المعاملة
          </ResponseField>

          <ResponseField name="objid" type="string">
            معرّف الكائن المرتبط (معرّف الشحن، معرّف الطلب، إلخ)
          </ResponseField>

          <ResponseField name="note" type="string">
            ملاحظة معاملة اختيارية
          </ResponseField>

          <ResponseField name="time" type="string">
            طابع زمني للمعاملة (ISO 8601)
          </ResponseField>
        </Expandable>
      </ResponseField>

      <ResponseField name="pagination" type="object" required>
        <Expandable title="properties">
          <ResponseField name="page" type="integer">
            رقم الصفحة الحالية
          </ResponseField>

          <ResponseField name="pageSize" type="integer">
            العناصر في الصفحة
          </ResponseField>

          <ResponseField name="totalPages" type="integer">
            العدد الإجمالي للصفحات
          </ResponseField>

          <ResponseField name="totalResults" type="integer">
            العدد الإجمالي للمعاملات
          </ResponseField>
        </Expandable>
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="meta" type="object" required>
    <Expandable title="properties">
      <ResponseField name="timestamp" type="string">
        طابع زمني للاستجابة بتنسيق ISO 8601
      </ResponseField>
    </Expandable>
  </ResponseField>

  ## الأمثلة

  <CodeGroup>
    ```bash cURL theme={null}
    curl https://api.oneclickdz.com/v3/account/transactions?page=1&pageSize=20 \
      -H "X-Access-Token: YOUR_API_KEY"
    ```

    ```javascript Node.js theme={null}
    const response = await fetch(
      "https://api.oneclickdz.com/v3/account/transactions?page=1&pageSize=20",
      {
        headers: { "X-Access-Token": "YOUR_API_KEY" },
      }
    );
    const { data } = await response.json();
    const transactions = data.items;
    const pagination = data.pagination;
    ```

    ```python Python theme={null}
    import requests

    response = requests.get(
        'https://api.oneclickdz.com/v3/account/transactions',
        headers={'X-Access-Token': 'YOUR_API_KEY'},
        params={'page': 1, 'pageSize': 20}
    )
    data = response.json()['data']
    transactions = data['items']
    pagination = data['pagination']
    ```

    ```php PHP theme={null}
    <?php
    $ch = curl_init();
    $url = 'https://api.oneclickdz.com/v3/account/transactions?page=1&pageSize=20';
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-Access-Token: YOUR_API_KEY']);
    $response = curl_exec($ch);
    $data = json_decode($response, true);
    $transactions = $data['data']['items'];
    ?>
    ```
  </CodeGroup>

  ### مع التصفية بالتاريخ

  <CodeGroup>
    ```bash cURL theme={null}
    curl "https://api.oneclickdz.com/v3/account/transactions?from=2025-10-01T00:00:00Z&to=2025-10-31T23:59:59Z" \
      -H "X-Access-Token: YOUR_API_KEY"
    ```

    ```javascript Node.js theme={null}
    const from = "2025-10-01T00:00:00Z";
    const to = "2025-10-31T23:59:59Z";
    const response = await fetch(
      `https://api.oneclickdz.com/v3/account/transactions?from=${from}&to=${to}`,
      { headers: { "X-Access-Token": "YOUR_API_KEY" } }
    );
    ```

    ```python Python theme={null}
    response = requests.get(
        'https://api.oneclickdz.com/v3/account/transactions',
        headers={'X-Access-Token': 'YOUR_API_KEY'},
        params={
            'from': '2025-10-01T00:00:00Z',
            'to': '2025-10-31T23:59:59Z'
        }
    )
    ```
  </CodeGroup>

  ### مثال على الاستجابة

  ```json theme={null}
  {
    "success": true,
    "data": {
      "items": [
        {
          "type": "FLEXY",
          "operation": "decrement",
          "oldBalance": 2316.129999998957,
          "amount": 990,
          "newBalance": 1326.129999998957,
          "objid": "68fe2cdd51bc170608683e3a",
          "note": "MIX1000_OOREDOO - 0554926570",
          "time": "2025-10-26T14:14:53.074Z",
          "_id": "68fe2cdd51bc170608683e40"
        },
        {
          "type": "REFUND-ORDER",
          "operation": "increment",
          "oldBalance": 316.1299999989569,
          "amount": 2000,
          "newBalance": 2316.129999998957,
          "objid": "68fcdd7cd712569c624e05ee",
          "note": "Refunded - 1 - 68fcdd7cd712569c624e05ee",
          "time": "2025-10-25T14:24:00.338Z",
          "_id": "68fcdd80d712569c624e069d"
        }
      ],
      "pagination": {
        "page": 1,
        "pageSize": 5,
        "totalPages": 105,
        "totalResults": 521
      }
    },
    "meta": {
      "timestamp": "2025-10-29T00:35:58.852Z"
    }
  }
  ```

  ## حالات الاستخدام

  <CardGroup cols={2}>
    <Card title="سجل المعاملات" icon="clock">
      اعرض سجل المعاملات للمستخدمين في تطبيقك
    </Card>

    <Card title="المحاسبة والتقارير" icon="chart-line">
      أنشئ تقارير ومستخرجات مالية
    </Card>

    <Card title="مطابقة الرصيد" icon="scale-balanced">
      تحقق من تغييرات الرصيد وراجع المعاملات
    </Card>

    <Card title="نشاط المستخدم" icon="user">
      تتبع أنماط الإنفاق وسلوك المستخدمين
    </Card>
  </CardGroup>

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

  <AccordionGroup>
    <Accordion title="التصفح بالصفحات">
      * ابدأ بأحجام صفحات معقولة (20 إلى 50 عنصرًا)
      * نفّذ التمرير اللانهائي أو التنقل بين الصفحات
      * خزّن النتائج مؤقتًا لتقليل استدعاءات API
      * استخدم `pagination.totalPages` لتحديد ما إذا كانت هناك بيانات إضافية
    </Accordion>

    {" "}

    <Accordion title="التصفية بالتاريخ">
      * قدّم دائمًا معلمتَي `from` و `to` معًا - استخدم تنسيق ISO 8601 للتواريخ
      * حدد نطاقات زمنية مناسبة للتقارير - خذ بعين الاعتبار اختلافات المنطقة الزمنية عند التصفية
    </Accordion>

    {" "}

    <Accordion title="الأداء">
      * خزّن بيانات المعاملات محليًا إذا أمكن - استخدم فلاتر التاريخ للحد من مجموعات النتائج
      * نفّذ واجهة مستخدم مناسبة للتصفح بالصفحات - فكّر في إشعارات webhook للتحديثات الفورية
    </Accordion>

    <Accordion title="العرض للمستخدمين">
      * اعرض نوع المعاملة بلغة سهلة للمستخدم
      * اعرض المبالغ بتنسيق العملة المناسب
      * أدرج الطوابع الزمنية بالمنطقة الزمنية المحلية
      * ربط المعاملات بالكائنات المرتبطة (الشحنات، الطلبات)
    </Accordion>
  </AccordionGroup>

  ## Endpoints ذات الصلة

  <Card title="الحصول على الرصيد" icon="wallet" href="/ar/api-reference/account/get-balance">
    التحقق من رصيد الحساب الحالي
  </Card>
</div>
