Skip to main content

نظرة عامة

قبل أن تتمكن من استكشاف أي شيء، يجب أن يكون أمران صحيحين: أن يكون مُصدِر الفاتورة متاحاً، وأن يكون معرّف الحساب هو المعرّف الذي يفهمه ذلك المُصدِر. تغطي هذه الخطوة الأمرين معاً، إضافة إلى الفرق بين الخطأين اللذين ستراهما حين يكون الأمر الثاني غير صحيح.
كل ما في هذه الصفحة يستخدم https://billapi.oneclickdz.com وترويسة X-Access-Token. إن لم تكن قد تأكدت بعد من البيئة التي ينتمي إليها مفتاحك، فابدأ بـ التحقق من مفتاح API.

التحقق من التوفر

يُعيد GET /v3/partners مدخلاً واحداً لكل مُصدِر فاتورة، ولكل منها حقل status واحد.
مُصدِر الفاتورة المُعلَّم بـ UNAVAILABLE يُجيب بـ 503 PARTNER_UNAVAILABLE عند الاستكشاف وعند الدفع. وSEAAL وAADL حالياً UNAVAILABLE في كل من sandbox والإنتاج — وهذا هو الإعداد الحالي للمشغّل، لا قيد دائم، لذا أبقِهما في الكود ودع الخريطة تقرر ما يُعرض.
مفتاح PRODUCTION يرى التوفر الفعلي؛ أما مفتاح SANDBOX فيرى خريطة ثابتة، لأن طلب sandbox لا يصل أبداً إلى مُصدِر فاتورة. لا تستخدم sandbox لاختبار كيفية تفاعل تطبيقك مع تعطّل مُصدِر فاتورة — استخدم سيناريوهات sandbox المخصصة لذلك.

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

أرسل معرّفاً واحداً بالضبط، وأرسل الحقل الذي يخص مُصدِر الفاتورة الذي تستعلم عنه. تُعيد API الحقل نفسه إليك في account في كل معاملة تخص ذلك المُصدِر.
أرسل Algérie Télécom بعلامات التشكيل الفرنسية كما هي. تُقارَن القيمة حرفاً بحرف، وهي أيضاً المفتاح الذي تقرأه من خريطة الشركاء.

أرقام الهاتف الثابت

phoneNumber هو رقم هاتف ثابت جزائري، لا رقم هاتف محمول.صالح:
  • "023456789" — صفر في البداية، ثم رقم في المجال 2–4
  • "+213023456789" غير صالح؛ استخدم "+21323456789" أو الصيغة المحلية "023456789"
غير صالح:
  • "0778037340" — رقم هاتف محمول، لا رقم هاتف ثابت
  • "23456789" — ينقصه الصفر في البداية
  • "023 45 67 89" — يحتوي على مسافات
  • 23456789 — رقم بدلاً من سلسلة نصية

صيغ المعرّف الأكثر تفصيلاً

يقبل مُصدِرا فاتورة كائناً أكمل عندما لا يكفي رقم واحد لتحديد فاتورة بعينها. وكل حقل داخل هذه الكائنات مطلوب.
invoice_number حتى 20 حرفاً، وamount_without_stamp حتى 20، وebb_key حتى 30.
sub_id بطول 12 حرفاً بالضبط، وperiod بصيغة MM/YYYY، وamount حتى 20 حرفاً، وpay_key بطول 7 أحرف بالضبط.
يُقبل electronic_payment_key كبديل عن reference، ويجب أن يكون بطول 25 حرفاً بالضبط.

معرّف واحد بالضبط

يجب أن يحمل كائن account معرّفاً واحداً لا أكثر. وتنقسم الحقول إلى أربع خانات:يجب ملء خانة واحدة بالضبط. أما صفر أو اثنتان فيُرفض الطلب قبل أن يحدث أي شيء آخر.
التحقق من ذلك في جانبك يكون بسطر واحد، وهو يحوّل رحلة ذهاب وإياب إلى خطأ فوري في النموذج:

ERR_VALIDATION أم INVALID_ACCOUNT؟

كلاهما 400، لكن معنييهما مختلفان جداً.
لا تعرض رسائل ERR_VALIDATION على العملاء النهائيين. فهي تذكر أسماء حقول داخلية مثل electronic_payment_key، وهو ما لا يعني شيئاً لشخص يمسك بفاتورة ورقية.

تخزين خريطة الشركاء في الكاش

يتغير التوفر نادراً، لذا حدّثه على فترات زمنية بدلاً من تحديثه قبل كل استكشاف — واستمر في تقديم آخر نسخة صالحة إذا فشل التحديث. فقائمة مُصدِري فواتير فارغة أسوأ لعملائك من قائمة قديمة قليلاً.
التخزين في الكاش لا يُغني عن معالجة 503 PARTNER_UNAVAILABLE عند الاستكشاف. فقد يتعطل مُصدِر فاتورة بين آخر تحديث لك وضغط العميل على الزر.

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

تحقق قبل أن ترسل

تحقق من قاعدة الخانة الواحدة ومن صيغة الهاتف الثابت في جانب العميل. فذلك يوفّر رحلة ذهاب وإياب ويعطي رسالة خطأ أفضل.

خزّن الخريطة في الكاش لدقائق، لا لساعات

خمس دقائق كافية تماماً. حدّثها في الخلفية، لا على المسار الحرج للعميل أبداً.

أبقِ مُصدِري الفواتير غير المتاحين في كودك

سيعود SEAAL وAADL. اجعل واجهتك تُقاد من الخريطة، لا من قائمة مرمّزة بشكل ثابت.

فرّق بين خطأي 400

INVALID_ACCOUNT رسالة موجهة لعميلك. أما ERR_VALIDATION فرسالة موجهة لسجلاتك.

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

الخطوة 2: استكشاف الفواتير

أرسل استكشافاً، وتابعه حتى READY، واقرأ ما هو قابل للدفع

صفحات ذات صلة

سرد الشركاء

مرجع الـ endpoint

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

حيث يُرسَل كائن الحساب

نظرة عامة على دفع الفواتير

خريطة الخطوات الخمس

اختبار Sandbox

معرّفات تُنتج نتيجة تختارها