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

# بدائل التحقق من الحساب البنكي وخيار المتابعة بدون بنك

> Didit لا يترك التحقق من الحساب البنكي بلا مخرج: خيارات تحقق أخرى حسب الدولة، والمتابعة بدون بنك، والنتيجة التي تختارها، وكيف تُبلغ النتيجة عن ذلك.

لا يترك التحقق البنكي أي شخص عالقاً على الإطلاق. فبينما تنتظره الخطوة، يمكنه دائمًا اختيار **Continue without your bank**، وتُظهر الخطوة هذا الخيار بمجرد ألا تعمل أي طريقة لدولته أو لبنكه. تتبع الجلسة بعد ذلك النتيجة التي اخترتها لتلك الحالة، وهي المراجعة افتراضيًا. وعندما تستنفد محاولةٌ فاشلة المحاولةَ الأخيرة من كل طريقة لا تزال معروضة عليه، بما في ذلك رفع كشف الحساب، لا تنتظر الخطوة: بل تنتهي من تلقاء نفسها وتتبع `bank_attempts_exhausted_action`، وهو الرفض افتراضيًا، ما لم تكن محاولة سابقة قد توصلت بالفعل إلى قرار نهائي، مثل عدم تطابق الاسم. ويظل ذلك القرار سارياً حينها.

تغطي هذه الصفحة الطرق الأخرى للتحقق التي توفرها كل دولة، ومتى يرى الشخص **Continue without your bank**، وكيفية اتخاذ القرار في كل حالة، وكيفية قراءة ذلك في النتيجة.

## طرق التحقق

| طريقة التحقق | `method` | أين تتوفر |
| - | - | - |
| تسجيل الدخول البنكي | `open_banking` | حيث يخدم مسارٌ ما الدولة. |
| التحقق من الحساب | `account_lookup` | حيث يخدم مسارٌ ما الدولة. |
| رفع كشف الحساب | `statement` | أي دولة، عندما تُفعِّل الخطوة ذلك (`bank_statement_enabled`). |
| الإيداعات المصغرة | `microdeposits` | فقط حيث يرسل المسار الإيداعات، بعد تسجيل دخول بنكي أو تحقق من الحساب مدفوع الأجر في الجلسة نفسها (`bank_microdeposits_enabled`). |
| Continue without your bank | `none` | دائمًا. لا يمكن إيقاف تشغيلها. |

يبدأ الشخص بتسجيل الدخول البنكي أو التحقق من الحساب، بالترتيب الذي حددته لدولته: راجع [اختيار الطرق حسب الدولة](https://docs.didit.me/ar/core-technology/bank-verification/verification-methods.md#اختيار-الطرق-حسب-الدولة). ويُعد رفع كشف الحساب والإيداعات المصغرة خيارين احتياطيين بعد هاتين الطريقتين. ويأتي خيار **Continue without your bank** في النهاية.

أي طريقة لا يمكن لدولة ما استخدامها لا تُعرض أبدًا على الشخص هناك. في لوحة التحكم، تظهر في **البلدان والطرق** على أنها **غير متاحة** لتلك الدولة.

### دولة لا يخدمها أي مسار بنكي

الدولة التي لا يتوفر فيها مسار لتسجيل الدخول البنكي ولا للتحقق من الحساب تظل مشمولة في الخطوة. ويقوم المستخدمون فيها برفع كشف حساب، عندما تتيح الخطوة ذلك، أو المتابعة بدون بنك.

تحتفظ عملية الحفظ بهذه الدولة عند حذف `methods` أو تعيينها إلى `null`. ولا يمكن أن تسرد `methods` الخاصة بها أي طريقة، لعدم وجود مسار يخدم أي طريقة هناك: ويُرفض ذلك عند الحفظ، على سبيل المثال `Account check is not available in VNM.` كما تُرفض القائمة الفارغة أيضًا، تمامًا كما هو الحال في كل دولة مفعّلة، مع ظهور رسالة `Choose a method: bank sign-in, account check, or both.` وإذا كان عقدك يحدد أسعاره الخاصة ولا يتضمن رفع كشف الحساب، فإن عملية الحفظ التي تتيح رفع كشف الحساب دون محاولة بنكية سابقة ترفض مثل هذه الدولة أيضًا.

```json theme={null}
{
  "bank_statement_enabled": true,
  "bank_countries": {
    "GBR": { "enabled": true, "institutions": "all" },
    "VNM": { "enabled": true, "institutions": "all" }
  }
}
```

تمثل فيتنام هنا دولة لا يخدمها أي مسار بنكي. وهي لا تحدد أي `methods`، لذا تحتفظ عملية الحفظ بها، ويرى المستخدمون فيها خيار رفع كشف الحساب وخيار **Continue without your bank**.

### رفع كشف الحساب

يطلب خيار رفع كشف الحساب كشف حساب بنكي من آخر 3 أشهر يُظهر اسم الشخص وبنكه ورقم الحساب. تقرأ Didit المستند، وتفحصه للكشف عن أي تعديلات، وتطابق اسم صاحب الحساب بالطريقة نفسها التي تطابق بها اسم صاحب الحساب في التحقق البنكي.

عند تفعيل `bank_statement_enabled`، تتيح الخطوة هذا الخيار في حالتين:

* **بعد محاولة مدفوعة:** بمجرد تحصيل رسوم تسجيل الدخول البنكي أو التحقق من الحساب في الجلسة نفسها، يصبح رفع كشف الحساب خياراً احتياطياً، ومدرجاً دون أي رسوم إضافية.
* **دون محاولة بنكية سابقة:** في أي دولة، بما في ذلك الدول التي لا يخدمها أي مسار بنكي. يتطلب هذا `bank_statement_standalone_enabled`، وهو مفعّل افتراضيًا. قم بإيقاف تشغيله لإتاحة رفع كشف الحساب فقط بعد محاولة مدفوعة.

يستهلك كلٌّ من رفع كشف الحساب والإيداعات المصغرة محاولةً واحدة من محاولات `bank_max_attempts` الخاصة بالخطوة، وهي المحاولات نفسها التي يستخدمها تسجيل الدخول البنكي. وبمجرد أن يستنفد الشخص جميع المحاولات، لن يُعرض عليه أيٌّ منهما بعد ذلك، حتى بعد محاولة مدفوعة. يمتلك التحقق من الحساب حدّه الأقصى الخاص للمحاولات `bank_account_check_max_attempts`، لذا عندما يكون هو الطريقة الوحيدة، يمكن للشخص الذي استنفد جميع محاولات التحقق من الحساب أن يرفع كشف حساب، إذا كانت الخطوة تتيح ذلك. وعندما تستهلك محاولةٌ فاشلة المحاولةَ الأخيرة من كل طريقة لا تزال متاحة للشخص، بما في ذلك رفع كشف الحساب، تنتهي الخطوة من تلقاء نفسها: فلا يُطلب من الشخص المتابعة، ولا تسجل النتيجة أي متابعة. وتتبع الجلسة `bank_attempts_exhausted_action`، ما لم تكن محاولة سابقة قد توصلت بالفعل إلى قرار نهائي، مثل عدم تطابق الاسم، والذي يظل سارياً حينها. لترك مجال لخيار احتياطي بعد فشل تسجيل الدخول البنكي، اضبط `bank_max_attempts` على `2` أو أكثر.

## عندما يرى الشخص خيار «المتابعة دون بنك»

يحدد `bank_continue_without_bank` متى تعرض الخطوة **المتابعة دون بنك**:

| القيمة | متى تعرضها الخطوة |
| - | - |
| `when_needed` (الافتراضية) | بمجرد ألا تعمل أي طريقة لبلد الشخص أو بنكه، أو عندما يتعذر الوصول إلى بنكه حالياً ولا توجد طريقة أخرى يمكنها التحقق منه، أو عندما يفيد بأنه ليس لديه خدمات بنكية عبر الإنترنت أو أن بنكه غير مدرج. |
| `from_start` | في الشاشة الأولى أيضاً. |

لا توقف أي من القيمتين هذا الخيار: يمكن للشخص دائماً المتابعة. في لوحة التحكم، اضبطه في خطوة Bank Verification ضمن **عندما يتعذّر على الشخص التحقق**، كخيار **عرض «المتابعة دون بنك»**: **عندما لا ينجح أي شيء آخر** أو **من البداية**.

```json theme={null}
{
  "bank_continue_without_bank": "when_needed"
}
```

### ما يراه الشخص

* **لا يوجد مسار في بلده:** على سبيل المثال "لا يمكننا الاتصال بالبنوك في فيتنام بعد"، مع خيار رفع كشف الحساب ضمن **طرق أخرى للتحقق**، وخيار **المتابعة دون بنك**.
* **بنك لا يمكن استخدامه هنا:** "لا يمكن استخدام هذا البنك هنا". يمكن للشخص إدخال تفاصيل حسابه حيث يتيح البلد فحص الحساب، أو رفع كشف حساب، أو اختيار بنك مختلف، أو المتابعة دون بنكه.
* **لا توجد خدمات بنكية عبر الإنترنت، أو بنك غير مدرج:** "تحقق من حسابك بطريقة أخرى"، مع الطرق التي يتيحها بلده، وخيار **المتابعة دون بنك**.
* **بنك يتعذر الوصول إليه حالياً:** يمكن للشخص المحاولة مرة أخرى. تعرض الشاشة أيضاً خيار **المتابعة دون بنك** بمجرد أن تعجز الطريقة الأخرى، سواء تسجيل الدخول إلى البنك أو فحص الحساب، عن المساعدة: كأن يكون بلده لا يتيحها، أو لم يتبق لديه أي محاولات، أو تعذر في آخر محاولة له الوصول إلى البنك أيضاً.
* **بعد المتابعة:** "شكراً، يمكنك المتابعة". لا يظهر للشخص أي فشل على الإطلاق، وينتقل إلى الخطوة التالية في سير العمل الخاص بك.

## اختر النتيجة

عندما يتابع الشخص دون بنك، تستنتج Didit السبب مما حدث في الخطوة. ولا تأخذ سبباً أبداً من جهاز الشخص. يتبع كل سبب، يُسجّل كـ `continuation.reason`، إعداد النتيجة الخاص به:

* `no_route`: لا يتوفر في بلده أي مسار لتسجيل الدخول إلى البنك أو فحص الحساب. يتحدد عبر `bank_unsupported_action`، ويكون `REVIEW` افتراضياً، مع رمز السبب `NOT_COVERED`.
* `institution_unsupported`: لا يمكن استخدام البنك الذي اختاره في هذه الخطوة. يتحدد عبر `bank_unsupported_action`، ويكون `REVIEW` افتراضياً، مع رمز السبب `NOT_COVERED`.
* `attempts_exhausted`: استُنفدت كل المحاولات بالفعل، ولم تكن هناك أي محاولة لا تزال قيد التنفيذ، عندما تابع. يتحدد عبر `bank_attempts_exhausted_action`، ويكون `DECLINE` افتراضياً.
* `person_choice`: كانت هناك طريقة للتحقق، واختار المتابعة. يشمل ذلك البنك الذي تعذر الوصول إليه حالياً: فالبنك مشمول، لذا فإن اختيار الشخص نفسه هو السبب. يتحدد عبر `bank_skipped_action`، ويكون `REVIEW` افتراضياً، مع رمز السبب `SKIPPED`.

يقبل `bank_skipped_action` و`bank_attempts_exhausted_action` القيمة `REVIEW` أو `DECLINE`. ويقبل `bank_unsupported_action` أيضاً `NO_ACTION`، مما يؤدي إلى قبول الخطوة مع الاستمرار في تسجيل `NOT_COVERED`.

في لوحة التحكم، هذه هي صفوف **البنك أو البلد غير مشمول** و**تابع دون بنك** و**استُنفدت المحاولات** في علامة تبويب **النتائج** الخاصة بالخطوة.

```json theme={null}
{
  "bank_continue_without_bank": "when_needed",
  "bank_unsupported_action": "REVIEW",
  "bank_skipped_action": "REVIEW",
  "bank_attempts_exhausted_action": "DECLINE"
}
```

> [!NOTE]
>
> لا تحل المتابعة أبداً محل قرار توصلت إليه محاولة بالفعل. إذا تم تقييم محاولة بالفعل، على سبيل المثال أعاد البنك أو كشف الحساب اسم صاحب حساب غير متطابق وكان لدى الشخص محاولات متبقية، أو تطابقاً وثيقاً لم يؤكده، فإن الخطوة تحتفظ بذلك القرار ورموز أسبابه. ولا ينطبق أي إعداد نتيجة من القائمة أعلاه حينئذٍ، ولا تتم إضافة `NOT_COVERED` أو `SKIPPED`. وتظل النتيجة تسجل أن الشخص تابع: راجع [اقرأها في النتيجة](#قراءة-ذلك-في-النتيجة).

## قراءة ذلك في النتيجة

### القرار وwebhook

يوضح عنصر الخطوة في `bank_verifications[]`، ضمن [قرار الجلسة](https://docs.didit.me/ar/sessions-api/retrieve-session.md#التحقق-المصرفي) وفي كائن `decision` الخاص بـ [webhook الخاصة بحدث `status.updated`](https://docs.didit.me/ar/integration/webhooks#مصفوفات-v3-المتعددة-مهم)، أن الشخص تابع دون بنك:

* تكون قيمة `continued_without_bank` هي `true`: غادر الشخص الخطوة عبر **Continue without your bank**.
* تكون قيمة `method` هي `none` عندما لا يتم تقييم أي محاولة قبل أن يتابع الشخص. بعد إجراء محاولة خضعت للتقييم، مثل عدم تطابق صاحب الحساب، تظل `method` محتفظة بطريقة تلك المحاولة، ويظل حكمها قائماً.
* يوضح كائن `continuation` كيفية متابعة الشخص:
  * `reason`: `no_route` أو `institution_unsupported` أو `attempts_exhausted` أو `person_choice`.
  * `country`: الدولة التي كان الشخص يجري التحقق فيها، بتنسيق ISO 3166-1 alpha-3، أو `null` إذا تابع قبل اختيار دولة.
  * `offered`: الطرق الأخرى للتحقق التي وفرتها تلك الدولة، بحسب ترتيب توفيرها: `statement`، ثم `microdeposits`. ويكون فارغاً إذا لم توفر أي طريقة.
  * `institution_id` و`institution_name`: في حالة `institution_unsupported`، يكون البنك الذي لم يتمكن الشخص من استخدامه: البنك الذي اختاره، أو البنك الذي انتهت عنده محاولته الأخيرة. تعتمد Didit على قائمتها الخاصة بالبنوك لكليهما، ولا تأخذهما أبداً من جهاز الشخص، لذا فإن أي بنك غير موجود في تلك القائمة يجعل قيمتهما `null`. ويكون كلاهما `null` لجميع الأسباب الأخرى.
  * `continued_at`: وقت متابعة الشخص.
* يحتوي `reason_codes` على `NOT_COVERED` أو `SKIPPED`، كما هو موضح في [اختيار النتيجة](#اختر-النتيجة)، عندما تحدد المتابعة قرار الخطوة. بعد إجراء محاولة خضعت للتقييم، يحتفظ برموز الأسباب الخاصة بتلك المحاولة.
* تكون قيمة `not_covered` هي `true` لكل من `no_route` و`institution_unsupported`.

```json theme={null}
{
  "bank_verifications": [
    {
      "node_id": "feature_bank_verification",
      "status": "In Review",
      "method": "none",
      "continued_without_bank": true,
      "continuation": {
        "reason": "institution_unsupported",
        "country": "ESP",
        "offered": ["statement"],
        "institution_id": "example_bank_es",
        "institution_name": "Example Bank",
        "continued_at": "2026-11-03T08:15:41.512870+00:00"
      },
      "not_covered": true,
      "ownership": null,
      "reason_codes": ["NOT_COVERED"]
    }
  ]
}
```

يوضح المثال فقط الحقول التي تتناولها هذه الصفحة. وتتوفر كافة الحقول في مخطط `BankVerificationResult` ضمن [مرجع API](https://docs.didit.me/ar/sessions-api/retrieve-session.md).

عندما يحدد سير العمل لديك تقليص البيانات التي يتم إرجاعها، يستمر إرجاع `continued_without_bank` و`continuation.reason`، وبذلك يمكنك التمييز بين `no_route` و`institution_unsupported`، اللذين يشتركان في الرمز `NOT_COVERED`. ويكون كل مفتاح آخر في `continuation` حينها بقيمة `null`: الدولة، والبنك، وما تم عرضه، والوقت. ويكون كائن `continuation` نفسه `null` إذا لم يقم الشخص بالمتابعة. كما لا يتم إرجاع `method` في هذه الحالة أيضاً، لذا اقرأ `continued_without_bank`، وليس `method`، لمعرفة ما إذا كان الشخص قد تابع.

### قواعد سير العمل

يمكن للتفريعات وقواعد الحالات المخصصة قراءة:

* `bank.continued_without_bank`: `true` أو `false`.
* `bank.continue_reason`: `no_route` أو `institution_unsupported` أو `attempts_exhausted` أو `person_choice`.
* `bank.method`: `none` عندما يتابع الشخص دون بنك قبل تقييم أي محاولة. وبعد محاولة تم تقييمها، يحمل طريقة تلك المحاولة.

### تقرير الجلسة

عندما يتابع الشخص دون بنك قبل تقييم أي محاولة، تظهر في صف **طريقة التحقق** ضمن تقرير الجلسة بصيغة PDF عبارة **تابع دون بنك**. وبعد محاولة خضعت للتقييم، يذكر اسم طريقة تلك المحاولة.

## الأسعار

* لا يتم أبداً احتساب أي تكلفة على خيار **Continue without your bank**. وتتم فوترة المحاولات التي قام بها الشخص قبل المتابعة كالمعتاد.
* تبلغ تكلفة **رفع كشف الحساب دون أن تسبقه محاولة بنكية مفوترة** \$0.20 لكل كشف حساب تقرأه Didit وتُقيّمه. وتتم فوترتها في بند استخدام منفصل، وهو **Bank verification - statement upload** (`bank_statement_upload`)، وينطبق عليها سعر العقد أو السعر الخاص بك تماماً كأي إضافة أخرى. وإذا كان عقدك يحدد أسعاره الخاصة ولا يتضمنها، فلن تقدمها الخطوة للمستخدم.
* **رفع كشف الحساب أو عمليات الإيداع المصغرة بعد محاولة تسجيل دخول بنكي أو فحص حساب مدفوعة** ضمن الجلسة نفسها يتم تضمينها دون أي تكلفة إضافية.

## العقد المحفوظة قبل خيار Continue without your bank

تم إيقاف المعامل `bank_allow_skip`. وأي عقدة تم حفظها باستخدامه تعمل الآن بالقيمة المقابلة لمعناه:

| `bank_allow_skip` | تعمل العقدة باستخدام |
| - | - |
| `true` | `bank_continue_without_bank: "from_start"` |
| `false` أو غير محدد | `bank_continue_without_bank: "when_needed"` |

كانت العقدة التي لا تسمح بالتخطي تتسبب سابقاً في بقاء الشخص عالقاً دون وسيلة للمتابعة إذا لم تنجح أي وسيلة معه. أما الآن فهي تعرض خيار **Continue without your bank** في تلك الحالات، وتحدد النتيجة في الجلسة عبر `bank_unsupported_action` أو `bank_attempts_exhausted_action` أو `bank_skipped_action`.

لإصدار واحد فقط، فإن عملية الحفظ التي ترسل `bank_allow_skip` دون إرسال `bank_continue_without_bank` ستستمر في ضبط الوضع بناءً عليه. وتعيد كل عملية حفظ كتابة `bank_allow_skip`: `true` بالنسبة إلى `from_start`، و`false` بالنسبة إلى `when_needed`. استخدم `bank_continue_without_bank` في عمليات التكامل الجديدة.

## الاختبار في البيئة التجريبية

لا تفرض التطبيقات في البيئة التجريبية أي رسوم، كما أن رفع كشف الحساب وعمليات الإيداع المصغرة لا تتطلب وجود محاولة بنكية سابقة. اضبط `bank_continue_without_bank` على `from_start` لرؤية **Continue without your bank** في الشاشة الأولى، واختره لاختبار `bank_skipped_action`. راجع [الاختبار في البيئة التجريبية](https://docs.didit.me/ar/integration/sandbox-testing.md) لمعرفة كيفية عمل التطبيقات في البيئة التجريبية عموماً.

## مواضيع ذات صلة

* [طرق التحقق من البنك](https://docs.didit.me/ar/core-technology/bank-verification/verification-methods.md): تسجيل الدخول البنكي وفحص الحساب، بحسب الدولة.
* [فحص الحساب](https://docs.didit.me/ar/core-technology/bank-verification/account-check.md): تنسيقات الحسابات، والنتائج، وقيم البيئة التجريبية.
* [مفاتيح إعداد التحقق من البنك](https://docs.didit.me/ar/management-api/workflows/feature-configs.md#التحقق-من-الحساب-البنكي): جميع المفاتيح الخاصة بالخطوة.


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