Skip to main content

نظرة عامة

الاستكشاف هو نصف القراءة في دفع الفواتير: تسأل مُصدِر الفاتورة عمّا يدين به حساب ما حالياً، فتحصل على قائمة بالفواتير القابلة للدفع. لا يُخصم شيء، ولا يُلتزم بشيء.ويجري ذلك على جزأين. POST /v3/bills/discover يقبل الطلب ويعطيك transactionId. أما الفواتير نفسها فتصل على تلك المعاملة بعد لحظة، حين تصبح status الخاصة بها READY.
الرمز 200 من discover هو إقرار بالاستلام. فهو لا يحمل أي فواتير ولا يقول شيئاً عمّا يدين به الحساب. اقرأ المعاملة قبل أن تخبر عميلك بأي شيء.

بناء الطلب

ثلاثة حقول، جميعها مطلوبة.

اختيار ref

ref هو ما يجعل الاستكشاف آمناً لإعادة المحاولة. فإذا ضاعت الاستجابة، تبحث عن ref بدلاً من إرسال استكشاف ثانٍ — لذا فإن ref لا تستطيع إعادة بنائه من بياناتك الخاصة هو معاملة لا تستطيع استعادتها.وصفة عملية: بادئة ثابتة، ثم معرّف طلبك أو فاتورتك، ولا شيء غير ذلك.
الـ ref فريد لكل مُصدِر فاتورة، لا على المستوى العام. فـ disc-inv-2026-0042 لدى ADE والسلسلة نفسها لدى SONELGAZ مرجعان مختلفان. وتمرير partner عند البحث عن أحدهما يزيل أي التباس.

إرسال الاستكشاف

التتبع حتى READY

اقرأ المعاملة حتى تغادر status الخاصة بها الحالة PENDING. يُحسم الاستكشاف عادةً خلال ثوانٍ قليلة.

قراءة bills[]

المعاملة في حالة READY تحمل الفواتير القابلة للدفع في الوقت الحالي.
اعرض على العميل amount + fee. فهذا المجموع هو ما سيُخصم، وهو يُعاد باسم total على المعاملة بمجرد اختيار فاتورة.
bills[] موجودة فقط ما دامت status هي READY. وبمجرد أن تبدأ عملية دفع، تحمل المعاملة selectedBill بدلاً منها. اقرأ الفواتير ما دامت بين يديك.

عندما تكون bills[] فارغة

المصفوفة الفارغة نتيجة طبيعية وناجحة — وليست خطأً.
وهي تعني أحد أمرين، وAPI لا تفرّق بينهما:
  • أن الحساب لا يدين بشيء، أو
  • أن كل ما يدين به الحساب يقع دون عتبة الاستكشاف البالغة 200 DZD.
الفواتير التي تقل عن 200 DZD تُستبعد أثناء الاستكشاف ولا تظهر أبداً.
صُغ هذا بعناية. عبارة “لا توجد فواتير قابلة للدفع الآن” دقيقة. أما “أنت لا تدين بشيء” فليست كذلك — فقد توجد فاتورة بقيمة 150 DZD لكنها غير قابلة للدفع عبر هذه API.

استعادة استجابة ضائعة

إذا فشل طلب الاستكشاف بطريقة لا تستطيع تفسيرها — انتهاء مهلة، أو انهيار، أو إعادة نشر — فاسأل عمّا آل إليه ذلك ref. ولا ترسل استكشافاً ثانياً أبداً.
والبحث نفسه هو الجواب على 403 DUPLICATED_REF. فهذا الخطأ يعني أن الاستكشاف موجود بالفعل؛ وهو ليس أبداً سبباً لإعادة المحاولة بـ ref مختلف، إذ سيبدأ ذلك استكشافاً ثانياً للحساب نفسه.

الأخطاء التي ستصادفها

الاستكشاف الذي حالته FAILED يحمل سببه في error.code: إما INVALID_ACCOUNT أو PARTNER_UNAVAILABLE أو BILL_ALREADY_PAID أو PAYMENT_DECLINED.كل الرموز، مع أمثلة الأجسام ←

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

اشتقّ الـ ref

ابنِه من معرّف طلبك الخاص لتتمكن دائماً من إعادة بنائه بعد أي فشل.

تابع، ولا تُعِد الإرسال

الاستكشاف البطيء ليس استكشافاً ضائعاً. اقرأ المعاملة بدلاً من إرسال طلب آخر.

لا تخزّن شيئاً عن الفواتير في الكاش

الاستكشاف لقطة لحظية. فإذا انتظر العميل، أعد الاستكشاف بدلاً من الدفع بناءً على أرقام قديمة.

قل قابلة للدفع، لا مستحقة

bills[] فارغة تعني أنه لا شيء قابل للدفع. ولا تعني أن الحساب لا يدين بشيء.

الخطوة التالية

الخطوة 3: دفع الفواتير

اختر فاتورة، وأكّد المجموع، وأرسل الدفعة بأمان

صفحات ذات صلة

استكشاف الفواتير

مرجع الـ endpoint

جلب معاملة بالمعرّف

كائن المعاملة بالكامل

جلب معاملة بالمرجع

مسار التعافي

الشركاء والحسابات

قواعد المعرّف لكل مُصدِر فاتورة