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

# قائمة تقارير API غير المتزامنة

> اعرض تقارير التصدير غير المتزامنة من Didit، وصفِّها حسب النوع أو الحالة، وراقب عدد حالات الفشل مع أذونات محددة بالتطبيق والترقيم.

Didit's Reports API غير المتزامنة تعرض مهام التصدير التي يمكنك قراءتها، من الأحدث إلى الأقدم. استخدم `failed_count` و`failed_item_ids` لتحديد عمليات تصدير التحقق التي تتضمن إخفاقات فردية.

يمكنك الاطلاع على [إرشادات التصدير وإعادة المحاولة](https://docs.didit.me/ar/console/export-pdf-csv.md#إعادة-محاولة-عناصر-التصدير-الفاشلة)، أو [استرجاع تقرير واحد](https://docs.didit.me/ar/management-api/reports/retrieve.md)، أو [إعادة محاولة تصدير](https://docs.didit.me/ar/management-api/reports/retry.md).


## OpenAPI

````yaml ar/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/reports/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API التحقق من الهوية. قم بالمصادقة باستخدام الرأس x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/organization/{organization_id}/application/{application_id}/reports/:
    get:
      tags:
        - Reports
      summary: سرد التقارير غير المتزامنة
      description: >-
        يتطلب أذونات قراءة لكل مورد يشمله التقرير. يجب أن تنتمي بيانات اعتماد
        التطبيق أو مفتاح API إلى التطبيق في المسار. يجب أن تملك رموز Bearer
        الخاصة بالأعضاء وصولاً إلى التطبيق. تُعيد التقارير القابلة للقراءة
        مرتبةً من الأحدث إلى الأقدم. مهام التصدير غير المتزامنة هذه منفصلة عن
        Regulatory Reports API. راجع [تصدير بيانات
        التحقق](https://docs.didit.me/ar/console/export-pdf-csv).
      operationId: list_reports
      parameters:
        - name: organization_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: معرّف المؤسسة.
        - name: application_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: معرّف التطبيق.
        - name: limit
          in: query
          schema:
            type: integer
            default: 50
            minimum: 1
          description: الحد الأقصى لعدد النتائج في كل صفحة.
        - name: offset
          in: query
          schema:
            type: integer
            default: 0
            minimum: 0
          description: عدد النتائج التي يجب تخطيها.
        - name: status
          in: query
          schema:
            type: string
          description: >-
            قيم status مفصولة بفواصل أو مكررة: PENDING، وPROCESSING، وREADY،
            وFAILED.
        - name: report_type
          in: query
          schema:
            type: string
          description: قيم report_type مفصولة بفواصل أو مكررة.
        - name: q
          in: query
          schema:
            type: string
          description: >-
            ابحث بجزء من معرّف التقرير أو باسم مقدّم الطلب أو بريده الإلكتروني
            (255 حرفاً كحد أقصى).
      responses:
        '200':
          description: سرد التقارير غير المتزامنة.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncReportList'
        '400':
          description: قيمة status أو report_type أو تصفية البحث غير صالحة.
        '401':
          description: بيانات الاعتماد مفقودة أو غير صالحة أو منتهية الصلاحية.
        '403':
          description: ليس لدى المستدعي صلاحية الوصول إلى هذا التطبيق أو الأذونات المطلوبة.
        '429':
          $ref: '#/components/responses/RateLimitedRead'
      security:
        - ApiKeyAuth: []
        - BearerAuth: []
      x-codeSamples:
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
            # and DIDIT_APPLICATION_ID.
            client = Didit()

            for item in client.reports.list():
                print(item)
        - lang: javascript
          label: Node.js
          source: |-
            import Didit from "@didit-protocol/sdk-node";

            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
            // and DIDIT_APPLICATION_ID.
            const didit = new Didit();

            for await (const item of didit.reports.list()) {
              console.log(item);
            }
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID\n// and DIDIT_APPLICATION_ID.\nclient := didit.NewClient()\n\niter := client.Reports.ListAutoPaging(ctx, didit.ReportsListParams{})\nfor iter.Next() {\n\tfmt.Printf(\"%+v\\n\", iter.Current())\n}\nif err := iter.Err(); err != nil {\n\tlog.Fatal(err)\n}"
        - lang: java
          label: Java
          source: |-
            import me.didit.Didit;

            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
            // and DIDIT_APPLICATION_ID.
            Didit client = new Didit();

            for (var item : client.reports().list()) {
                System.out.println(item);
            }
        - lang: php
          label: PHP
          source: |-
            <?php

            require 'vendor/autoload.php';

            use Didit\DiditClient;

            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
            // and DIDIT_APPLICATION_ID.
            $didit = new DiditClient();

            foreach ($didit->reports->list() as $item) {
                print_r($item->toArray());
            }
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

            # Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
            # and DIDIT_APPLICATION_ID.
            didit = Didit::Client.new

            didit.reports.list.auto_paging_each do |item|
              puts item.to_h
            end
        - lang: csharp
          label: .NET
          source: |-
            using System;
            using System.Text.Json;
            using Didit;

            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
            // and DIDIT_APPLICATION_ID.
            using var client = new DiditClient();

            await foreach (var item in await client.Reports.ListAsync())
            {
                Console.WriteLine(JsonSerializer.Serialize(item));
            }
components:
  schemas:
    AsyncReportList:
      type: object
      required:
        - count
        - next
        - previous
        - results
        - counts
      properties:
        count:
          type: integer
          description: >-
            عدد النتائج، ويُقتصر عادةً على 100، وقد يكون تقديرياً. اتبع next
            بدلاً من استخدام count لإيقاف الترقيم.
        next:
          type: string
          description: عنوان URL للصفحة التالية، أو null.
          nullable: true
        previous:
          type: string
          description: عنوان URL للصفحة السابقة، أو null.
          nullable: true
        results:
          type: array
          items:
            $ref: '#/components/schemas/AsyncReport'
        counts:
          type: object
          required:
            - report_type
            - status
          description: >-
            عدد جميع التقارير التي يمكن للمستدعي قراءتها، قبل تطبيق تصفية
            القائمة.
          properties:
            report_type:
              type: object
              additionalProperties:
                type: integer
            status:
              type: object
              additionalProperties:
                type: integer
    AsyncReport:
      type: object
      required:
        - uuid
        - report_type
        - report_type_display
        - status
        - status_display
        - parameters
        - requested_by_user_id
        - requested_by_email
        - requested_by_name
        - row_count
        - failed_item_ids
        - failed_count
        - file_size
        - files
        - scheduled_report
        - error_message
        - deletion_pending
        - eta_seconds
        - started_at
        - completed_at
        - expires_at
        - created_at
        - updated_at
      properties:
        uuid:
          type: string
          description: معرّف التقرير.
          format: uuid
        report_type:
          type: string
          description: نوع التصدير أو تقرير الامتثال.
          enum:
            - SESSION_EXPORT
            - TRANSACTION_EXPORT
            - BUSINESS_EXPORT
            - VENDOR_USER_EXPORT
            - VENDOR_BUSINESS_EXPORT
            - CASE_EXPORT
            - CASE_SLA_EXPORT
            - LIST_ENTRY_EXPORT
            - EVENT_EXPORT
            - COMPLIANCE_KYC_KYB
            - COMPLIANCE_AML_LOG
            - COMPLIANCE_TRAVEL_RULE
            - COMPLIANCE_SANCTIONS_PEP
            - COMPLIANCE_RISK_SUMMARY
            - COMPLIANCE_SAR_STR_DRAFT
            - COMPLIANCE_CTR
            - COMPLIANCE_CASE_SUMMARY
        report_type_display:
          type: string
          description: عنوان العرض لنوع التقرير.
        status:
          type: string
          description: >-
            حالة التوليد. قد تتضمن الحالة READY حالات فشل فردية؛ تحقّق من
            failed_count.
          enum:
            - PENDING
            - PROCESSING
            - READY
            - FAILED
        status_display:
          type: string
          description: عنوان العرض لحالة التوليد.
        parameters:
          type: object
          description: خيارات التصدير الأصلية؛ تختلف المفاتيح حسب report_type.
          additionalProperties: true
        requested_by_user_id:
          type: string
          description: هوية الطالب الأصلي، أو null للمتصلين الذين لا يملكون هوية مستخدم.
          format: uuid
          nullable: true
        requested_by_email:
          type: string
          description: البريد الإلكتروني للطالب، عند توفره.
          nullable: true
        requested_by_name:
          type: string
          description: اسم عرض الطالب، عند توفره.
          nullable: true
        row_count:
          type: integer
          description: عدد السجلات المصدّرة، أو null قبل إنشاء التقرير.
          nullable: true
        failed_item_ids:
          type: array
          description: >-
            معرّفات UUID للجلسات المباشرة التي فشلت في تصدير التحقق هذا. تُستبعد
            الجلسات المحذوفة. استخدم هذه المعرّفات لإعادة المحاولة الانتقائية.
          items:
            type: string
            format: uuid
        failed_count:
          type: integer
          description: عدد العناصر في failed_item_ids.
          minimum: 0
        file_size:
          type: integer
          description: إجمالي حجم الملف المُنشأ بالبايت، أو null قبل الإنشاء.
          format: int64
          nullable: true
        files:
          type: array
          description: البيانات الوصفية للملف المُولَّد؛ ولا تحتوي على روابط تنزيل.
          items:
            $ref: '#/components/schemas/AsyncReportFile'
        scheduled_report:
          type: string
          description: معرّف الجدولة، أو null للتقرير غير المجدول.
          format: uuid
          nullable: true
        error_message:
          type: string
          description: خطأ التوليد، عند توفره.
          nullable: true
        deletion_pending:
          type: boolean
          description: ما إذا كان الحذف المطلوب ما زال قيد التنفيذ.
        eta_seconds:
          type: integer
          description: >-
            الوقت المقدّر بالثواني حتى الاكتمال لتقرير قيد الانتظار أو المعالجة؛
            تكون القيمة null في غياب السجل أو عند الاكتمال.
          nullable: true
        started_at:
          type: string
          description: وقت بدء التوليد.
          format: date-time
          nullable: true
        completed_at:
          type: string
          description: وقت اكتمال التوليد.
          format: date-time
          nullable: true
        expires_at:
          type: string
          description: وقت انتهاء صلاحية التقرير.
          format: date-time
        created_at:
          type: string
          description: وقت الإنشاء.
          format: date-time
        updated_at:
          type: string
          description: وقت آخر تحديث.
          format: date-time
      example:
        uuid: 00000000-0000-4000-8000-000000000002
        report_type: SESSION_EXPORT
        report_type_display: Verifications
        status: READY
        status_display: Ready
        parameters: {}
        requested_by_user_id: null
        requested_by_email: null
        requested_by_name: null
        row_count: 9
        failed_item_ids:
          - 00000000-0000-4000-8000-000000000001
        failed_count: 1
        file_size: 1200
        files:
          - name: verifications.csv
            format: csv
            rows: 9
            bytes: 1200
        scheduled_report: null
        error_message: null
        deletion_pending: false
        eta_seconds: null
        started_at: '2026-11-11T01:00:00Z'
        completed_at: '2026-11-11T01:01:00Z'
        expires_at: '2026-12-11T01:00:00Z'
        created_at: '2026-11-11T01:00:00Z'
        updated_at: '2026-11-11T01:01:00Z'
    RateLimitBudgetError:
      type: object
      description: >-
        تُرجع فقط عند رفض ميزانية وسيط تحديد المعدل. أخطاء 429 الأخرى، بما في
        ذلك تعارضات idempotency والحدود الخاصة بنقطة النهاية، لا تضمن هذه الحقول
        الوصفية.
      required:
        - detail
        - reference
        - limit
        - remaining
        - reset
        - window_seconds
      properties:
        detail:
          type: string
          description: رسالة رفض الميزانية الحالية المقروءة للإنسان.
        reference:
          type: string
          pattern: ^RL-[0-9a-f]{32}$
          description: >-
            مرجع الدعم المعتم: RL- متبوعة بـ 32 حرفًا سداسيًا عشريًا صغيرًا من
            UUID.
        limit:
          type: integer
          description: الميزانية للنطاق الذي تجاوز الحد؛ تساوي X-RateLimit-Limit.
        remaining:
          type: integer
          minimum: 0
          description: >-
            الميزانية المتبقية، محدودة بحيث لا تقل عن الصفر؛ تساوي
            X-RateLimit-Remaining.
        reset:
          type: integer
          format: int64
          description: >-
            وقت إعادة تعيين النافذة بالثواني منذ حقبة Unix، ويساوي
            X-RateLimit-Reset.
        window_seconds:
          type: integer
          description: >-
            مدة النافذة الثابتة بالثواني، وليست الفترة المتبقية للانتظار. يجب
            احترام Retry-After قبل إعادة المحاولة.
      example:
        detail: >-
          Write request rate limit exceeded. You can make up to 300 requests per
          minute.
        reference: RL-00000000000040008000000000000001
        limit: 300
        remaining: 0
        reset: 1794358860
        window_seconds: 60
    AsyncReportFile:
      type: object
      required:
        - name
        - format
        - rows
        - bytes
      properties:
        name:
          type: string
          description: اسم الملف.
        format:
          type: string
          description: صيغة الملف.
        rows:
          type: integer
          description: السجلات المُصدَّرة في هذا الملف، عند الاقتضاء.
          nullable: true
        bytes:
          type: integer
          description: حجم الملف بالبايت.
          format: int64
  responses:
    RateLimitedRead:
      description: >-
        تجاوزت ميزانية القراءة الخاصة بالوسيط. التزم بالرأس Retry-After قبل
        إعادة المحاولة.
      headers:
        Retry-After:
          $ref: '#/components/headers/BudgetRetryAfter'
        X-RateLimit-Scope:
          $ref: '#/components/headers/BudgetXRateLimitScope'
        X-RateLimit-Limit:
          $ref: '#/components/headers/BudgetXRateLimitLimit'
        X-RateLimit-Remaining:
          $ref: '#/components/headers/BudgetXRateLimitRemaining'
        X-RateLimit-Reset:
          $ref: '#/components/headers/BudgetXRateLimitReset'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RateLimitBudgetError'
          example:
            detail: >-
              GET request rate limit exceeded. You can make up to 600 requests
              per minute.
            reference: RL-00000000000040008000000000000001
            limit: 600
            remaining: 0
            reset: 1794358860
            window_seconds: 60
  headers:
    BudgetRetryAfter:
      description: >-
        عدد الثواني للانتظار، مقرّباً إلى أعلى حتى بداية النافذة التالية. يظهر
        في حالات رفض ميزانية الوسيط.
      schema:
        type: integer
    BudgetXRateLimitScope:
      description: النطاق الذي تجاوز ميزانيته. يظهر في حالات رفض ميزانية الوسيط.
      schema:
        type: string
    BudgetXRateLimitLimit:
      description: >-
        الميزانية المخصصة للنطاق الذي تم تجاوزه؛ وتساوي حد جسم الطلب. تظهر في
        حالات الرفض الصادرة عن ميزانية البرمجية الوسيطة.
      schema:
        type: integer
    BudgetXRateLimitRemaining:
      description: >-
        الميزانية المتبقية، محدودة بحيث لا تقل عن الصفر؛ تساوي remaining في
        الجسم. تظهر في حالات رفض الميزانية من الوسيط.
      schema:
        type: integer
    BudgetXRateLimitReset:
      description: >-
        وقت إعادة التعيين بالثواني منذ حقبة Unix؛ يساوي قيمة reset في جسم
        الاستجابة. يظهر في حالات رفض ميزانية الوسيط.
      schema:
        type: integer
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        مفتاح API الخاص بتطبيقك، من Developers -> API keys في Business Console.
        يمتلك المفتاح الأساسي وصولاً كاملاً. يمكن تحديد نطاق المفتاح المسمى: لا
        شيء، أو قراءة، أو كتابة لكل مورد، ومحدوداً ببعض مسارات العمل أو بالجلسات
        المقبولة، وبقائمة من عناوين IP، وبتاريخ انتهاء الصلاحية. يشير 401 إلى أن
        المفتاح غير صحيح أو ملغى أو منتهي الصلاحية؛ ويشير 403 إلى أنه لم يتم
        إرسال أي مفتاح، أو أن المفتاح ليس لديه حق الوصول إلى هذا المورد أو
        الإجراء، أو أن الطلب جاء من عنوان خارج قائمة عناوين IP الخاصة به؛ ويشير
        404 في مسار جلسة إلى أن الجلسة خارج مسارات العمل أو الحالات الخاصة
        بالمفتاح. يتلقى المفتاح الذي لا يمتلك حق الوصول إلى الوسائط عناوين URL
        للصور ومقاطع الفيديو وملفات PDF كـ null، ويتلقى المفتاح الذي لا يمتلك
        إذن كتابة للجلسات روابط الجلسة وtoken كـ null. راجع
        https://docs.didit.me/console/api-keys.
    BearerAuth:
      type: http
      scheme: bearer
      description: token الوصول الخاص باعتماد العميل للتطبيق.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.