نظرة عامة
قبل أن تتمكن من استكشاف أي شيء، يجب أن يكون أمران صحيحين: أن يكون مُصدِر الفاتورة متاحاً، وأن يكون معرّف الحساب هو المعرّف الذي يفهمه ذلك المُصدِر. تغطي هذه الخطوة الأمرين معاً، إضافة إلى الفرق بين الخطأين اللذين ستراهما حين يكون الأمر الثاني غير صحيح.كل ما في هذه الصفحة يستخدم
https://billapi.oneclickdz.com وترويسة X-Access-Token. إن لم تكن قد تأكدت بعد من البيئة التي ينتمي إليها مفتاحك، فابدأ بـ التحقق من مفتاح API.التحقق من التوفر
يُعيدGET /v3/partners مدخلاً واحداً لكل مُصدِر فاتورة، ولكل منها حقل status واحد.UNAVAILABLE يُجيب بـ 503 PARTNER_UNAVAILABLE عند الاستكشاف وعند الدفع. وSEAAL وAADL حالياً UNAVAILABLE في كل من sandbox والإنتاج — وهذا هو الإعداد الحالي للمشغّل، لا قيد دائم، لذا أبقِهما في الكود ودع الخريطة تقرر ما يُعرض.المعرّف الخاص بكل مُصدِر فاتورة
أرسل معرّفاً واحداً بالضبط، وأرسل الحقل الذي يخص مُصدِر الفاتورة الذي تستعلم عنه. تُعيد API الحقل نفسه إليك فيaccount في كل معاملة تخص ذلك المُصدِر.أرسل
Algérie Télécom بعلامات التشكيل الفرنسية كما هي. تُقارَن القيمة حرفاً بحرف، وهي أيضاً المفتاح الذي تقرأه من خريطة الشركاء.أرقام الهاتف الثابت
phoneNumber هو رقم هاتف ثابت جزائري، لا رقم هاتف محمول.صالح:"023456789"— صفر في البداية، ثم رقم في المجال 2–4"+213023456789"غير صالح؛ استخدم"+21323456789"أو الصيغة المحلية"023456789"
"0778037340"— رقم هاتف محمول، لا رقم هاتف ثابت"23456789"— ينقصه الصفر في البداية"023 45 67 89"— يحتوي على مسافات23456789— رقم بدلاً من سلسلة نصية
صيغ المعرّف الأكثر تفصيلاً
يقبل مُصدِرا فاتورة كائناً أكمل عندما لا يكفي رقم واحد لتحديد فاتورة بعينها. وكل حقل داخل هذه الكائنات مطلوب.SONELGAZ — صيغة الفاتورة
SONELGAZ — صيغة الفاتورة
invoice_number حتى 20 حرفاً، وamount_without_stamp حتى 20، وebb_key حتى 30.ADE — صيغة الفاتورة
ADE — صيغة الفاتورة
sub_id بطول 12 حرفاً بالضبط، وperiod بصيغة MM/YYYY، وamount حتى 20 حرفاً، وpay_key بطول 7 أحرف بالضبط.ADE وSEAAL — مفتاح من 25 حرفاً
ADE وSEAAL — مفتاح من 25 حرفاً
يُقبل
electronic_payment_key كبديل عن reference، ويجب أن يكون بطول 25 حرفاً بالضبط.معرّف واحد بالضبط
يجب أن يحمل كائنaccount معرّفاً واحداً لا أكثر. وتنقسم الحقول إلى أربع خانات:يجب ملء خانة واحدة بالضبط. أما صفر أو اثنتان فيُرفض الطلب قبل أن يحدث أي شيء آخر.
ERR_VALIDATION أم INVALID_ACCOUNT؟
كلاهما 400، لكن معنييهما مختلفان جداً.تخزين خريطة الشركاء في الكاش
يتغير التوفر نادراً، لذا حدّثه على فترات زمنية بدلاً من تحديثه قبل كل استكشاف — واستمر في تقديم آخر نسخة صالحة إذا فشل التحديث. فقائمة مُصدِري فواتير فارغة أسوأ لعملائك من قائمة قديمة قليلاً.التخزين في الكاش لا يُغني عن معالجة
503 PARTNER_UNAVAILABLE عند الاستكشاف. فقد يتعطل مُصدِر فاتورة بين آخر تحديث لك وضغط العميل على الزر.أفضل الممارسات
تحقق قبل أن ترسل
تحقق من قاعدة الخانة الواحدة ومن صيغة الهاتف الثابت في جانب العميل. فذلك يوفّر رحلة ذهاب وإياب ويعطي رسالة خطأ أفضل.
خزّن الخريطة في الكاش لدقائق، لا لساعات
خمس دقائق كافية تماماً. حدّثها في الخلفية، لا على المسار الحرج للعميل أبداً.
أبقِ مُصدِري الفواتير غير المتاحين في كودك
سيعود
SEAAL وAADL. اجعل واجهتك تُقاد من الخريطة، لا من قائمة مرمّزة بشكل ثابت.فرّق بين خطأي 400
INVALID_ACCOUNT رسالة موجهة لعميلك. أما ERR_VALIDATION فرسالة موجهة لسجلاتك.الخطوة التالية
الخطوة 2: استكشاف الفواتير
أرسل استكشافاً، وتابعه حتى
READY، واقرأ ما هو قابل للدفعصفحات ذات صلة
سرد الشركاء
مرجع الـ endpoint
استكشاف الفواتير
حيث يُرسَل كائن الحساب
نظرة عامة على دفع الفواتير
خريطة الخطوات الخمس
اختبار Sandbox
معرّفات تُنتج نتيجة تختارها

