Professional Documents
Culture Documents
QRest
QRest
تعتبر خدمات ، Qbank REST APIالواجهة بين المنظومة المصرفية والبرامج المكملة لوظائف المصرف ،والتي يقوم بتصميمها طرف
ثالث .وذلك من خالل إرسال أوامر للمنظومة المصرفية من خالل .Qbank REST API
حيث اعتمدنا أسلوب واجهات برمجة التطبيقات Rest Serverللوصول إلى خادم المنظومة المصرفية .من العمالء (طرف ثالث)
الذي يستند إلى JSON Script
يتم استدعاء وظائف معينة (دوال) لالستفار عن بيانات من المنظومة المصرفية أو التأثير على البيانات من خالل الدوال الرئيسية
المثبته مسبقًا في .Qbank REST API
يجب أن يقوم برنامج الطرف الثالث باالتصال مع خدمة ( )Qbank REST APIعبر URLويستخدم أسلوب ،POSTلإلرسال ،كما يجب أن
يتحصل على اسم مستخدم وكلمة مرور ،تعطى من قبل إدارة المصرف ،من أجل ، Basic Authenticationوأيضًا يقوم بتكوبن جسم األمر
،Bodyحيث يكون بصيغة .JSONكما سنتطرق لشرحه مفصًال ،تاليًا.
مالحظة:
Token
على المرسل تكوين سلسلة من االرقام والحروف فريدة ( ال تتكرر) ،حيث ترجع هذ السلسلة مع اإلجابة ،وتستخدم للتأكيد على
تطابق اإلجابة مع السؤال .كما تستعمل إللغاء عملية تمت سابقًا ،أو االستفسار عنها.
مالحظة:
يمكن إستخدام UUIDكسلسة من االرقام الست عشرية.
االخطاء
جميع أوامر الوسيط في حالة نجاحها ،ترجع باإلجابة المطلوبة ،كما ترجع بداية كل إجابة بالسطرين التاليين-:
Result
{
"error" : 0,
"error_desc" : "",
.
.
.
.
}
أمافي حالة الخطأ ترجع جميع اإلستفسارات برسالة خطأ ،وتكون على النحو التالي-:
Result
{ error nnn>0 Error number راجع جدول االخطاء
"error" : nnn, error_desc Error Description
"error_desc" : "xxxxxxxxxxx", token سلسلة من االرقام الفريدة
""token": "ananananananana
}
( )االتصال بالمنظومةconnect األمر
-: ويكون على الهيئة التالية،وال يحتاج هذا االمر الى إي الباراميتر
Send Command
{ cmd connect
"cmd" : "connect"
}
Result
Result
{ api_version REST API رقم إصدار
"error" : 0, qbank_version Qbank رقم إصدار
"error_desc" : "", bank_id رقم المصرف
"api_version" : "xx.xx.xx.xx", bank _name_ara اسم المصرف العربي
"qbank_version" : "xx.xx.xx.xx",
bank _name_eng اسم المصرف اإلنجليزي
"bank_id" : nn,
business_date تاريخ عمل المنظومة
"bank_name_ara" : "aaaaaaa",
"bank_name_eng" : "bbbbbbb", server_time تاريخ النظام
"business_date" : "yyyy/mm/dd",
"server_time" : " yyyy/mm/dd hh:mm:ss"
}
األمر ) loginالولوج إلى المنظومة(
ويحتاج هذا األمر الى عدد 4باراميتر وjكون على الهيئة التالية-:
Send Command
{ cmd login
"cmd":"login", login_name اسم الدخول
"login_name" : "nnnn", password كلمة مرور
"password" : "pppp", ws إسم الجهاز
"ws" : "aaaa", app رقم برنامج الطرف الثالث
"app": nn
}
في حالة الولوج الصحيح ،فإن برنامج الوسيط يرجع باألمر ، bank_infoإلختصار الوقت.
Result
Result
{ user_id رقم المستخدم
"user_id" : n, user_name اسم المستخدم
"user_name" : "aaaaaa", branch رقم الفرع الذي يعمل علية المستخدم
"branch" : "n", multi_branch هل يتعامل مع جميع الفروع؟
"multi_branch" : "False", Lang اللغة
"Lang" : "ara", session_id رقم الجلسة ويجب أن يرسل مع كل أمر
""session_id" : "zzzzzzzzzzzz
}
session_id
يجب إرساله مع كل أمر تالي ،كما إن صالحية المتاح تمتد لـ 5دقائق من آخر إستخدام له.
الشفرات
Codes
) (أنواع الحساباتAccount_Kind_List األمر
Send Command
{ cmd account_kind_list
"cmd":"account_kind_list", page )رقم الصفحة (إختياري
"page":1
}
page رقم الصفحة
esult pages_count عدد الصفحات R
rows_count إجمالي األسطر
items Array
id رقم العصر
Result desc الوصف
"page" : 1,
"pages_count" : 1,
"rows_count" : 3,
"items" : [
"id" : 1,
},
"id" : 2,
},
"id" : 3,
},
]
}
) (طبيعة الحساباتAccount_Side_List األمر
Send Command
{ cmd account_state_list
"cmd":"account_state_list", page )رقم الصفحة (إختياري
"page":1
}
page رقم الصفحة
esult pages_count عدد الصفحات R
rows_count إجمالي األسطر
items Array
id رقم العصر
Result desc الوصف
"page" : 1,
"pages_count" : 1,
"rows_count" : 4,
"items" : [
"id" : -1,
"desc" : ""مدين
},
"id" : 1,
"desc" : ""دائن
},
"id" : 3,
"desc" : ""اصل
},
{
"id" : 4,
"desc" : ""خصم
},
}
) (حاالت الحساباتAccount_State_List األمر
Send Command
{ cmd account_state_list
"cmd":" account_state_list", page )رقم الصفحة (إختياري
"page":1
}
page رقم الصفحة
esult pages_count عدد الصفحات R
rows_count إجمالي األسطر
items Array
id رقم العصر
Result desc الوصف
"page" : 1,
"pages_count" : 1,
"rows_count" : 5,
"items" : [
"acs_id" : -1,
"desc" : ""ملغي
},
"acs_id" : 0,
"desc" : ""مقفل
},
"acs_id" : 1,
"desc" : ""مفتوح
},
{
"acs_id" : 2,
"desc" : ""راكد
},
"acs_id" : 3,
"desc" : ""مجمد
},
}
األمر ( Account_Type_Listفئات الحسابات)
Send Command
{ cmd account_type_list
"cmd":" account_type_list", page رقم الصفحة (إختياري)
"page":1
}
Result
Result
{
"page" : 1,
"pages_count" : 1,
"rows_count" : 31,
[ "items" :
"id" : 4,
"acc_cr" : "",
"acc_de" : "",
"kind" : 1,
"kdesc" : ""حساب داخلي,
"side" : 1,
"sdesc" : ""دائن
},
"id" : 202,
"acc_cr" : "30100100020",
"acc_de" : "20100100020",
"kind" : 2,
"side" : 1,
"sdesc" : ""دائن
}, {
},
}
id رقم العصر
desc الوصف
Account_State_List
Banks_List
Branche_Type_List
Branches_List
Chq_State_List
Cities_List
Countries_List
Corporate_Activity_List
Corporate_Legal_List
Currency_List
Gender_List
Id_Type_List
Languages_List
Local_Branches_List
Salutation_List
User_Status_List
Yes_No_List
"bnk_num" : nn,
"bnk_name" : "BBBBBBBBB",
"brn_num" : mm,
"token": "ananananananana",
"branches" :
[
{
"br_num" : nn,
"br_name" : "aaaaaaa"
},……
}
األمر ) account_infoبيانات حساب)
Send Command
{ cmd account_Info
"cmd" : "account_Info", acc_num رقم حساب الزبون
"acc_num" : "nnnnnnnnn", ccy راجع جدول العمالت عملة الحساب
"ccy" : nnn, type default = 0 * نوع بيانات الزبون
"type" : n, Key مفتاح التعريف
"key": "kkkkkkkkkkkkkkkk", token سلسلة من االرقام الفريدة
""token": "ananananananana
* نوع بيانات الزبون:
}
إذا كانت= 0البيانات األساسية فقط .
Result
Result
Result
مالحظة:
{
"acc_name" : "aaaaaaaaaaaaaaaaa",
"acc_type" : n,
"acc_class" : n,
"acc_cat" : n,
"state" : n,
"balance" : nnn,
"faci" : nnn,
"reserv" : nnn,
"page" : n,
"total_rows" : nn,
"total_pages" : nnn,
"token": "ananananananana",
"data" : [
"tr" : nn,
"date" : "yyyy/MM/dd",
"code" : nn,
"desc" : dddddddddddd,
"amount" : nnnn
},…… ]
}
األمر ) reg_customerتسجيل زبون)
يستخدم هذا األمر لتسجيل بيانات زبون ،في خدمة التحويل أو عملية الدفع اإللكتروني.
حيت يقوم هذا األمر بإضافة أو تعديل رقم الهاتف و البريد اإللكتروني للزبون ،كما يرجع هذا األمر برقم إشتراك الزبون في الخدمة.
Send Command
{ cmd reg_customer
"cmd" : "reg_customer", acc_num رقم حساب الزبون
"acc_num" : "nnnnnnnnn ", ccy راجع جدول العمالت عملة الحساب
"ccy" : nnn, mobile رقم النقال
"mobile" : "nnnnnnnnnn", Email البريد االلكتروني
"email" : "aaaaaaaaaaaa",
Key مفتاح التعريف
"key": "kkkkkkkkkkkkkkkk",
""token": "ananananananana token سلسلة من االرقام الفريدة
}
Result
Result
{ subscribe_num رقم إشتراك الزبون
"subscribe_num" : nnnnnn, token سلسلة من االرقام الفريدة
""token": "ananananananana
}
األمر ) reg_providerتسجيل بيانات مزودة خدمة )
يستخدم هذا األمر لتسجيل بيانات مزودة خدمة ،في خدمة الدفع اإللكتروني.
حيت يقوم هذا األمر بإضافة أو تعديل رقم الهاتف و البريد اإللكتروني لمزود الخدمة ،كما يرجع هذا األمر برقم إشتراك المزود في الخدمة.
Send Command
{ cmd reg_provider
"cmd" : "reg_provider", acc_num رقم حساب مزودة الخدمة
"acc_num" : "nnnnnnnnn ", ccy راجع جدول العمالت عملة الحساب
"ccy" : nnn, mobile رقم النقال
"mobile" : "nnnnnnnnnn", Email البريد االلكتروني
"email" : "aaaaaaaaaaaa",
Key مفتاح التعريف
"key": "kkkkkkkkkkkkkkkk",
""token": "ananananananana token سلسلة من االرقام الفريدة
}
Result
Result
{ subscribe_num رقم إشتراك مزودة الخدمة
"subscribe_num" : nnnnnn, token سلسلة من االرقام الفريدة
""token": "ananananananana
}
األمر ) transferتحويل بين حسابين )
يحتاج هذا األمر إلى رقم حساب المرسل (المدين) ورقم حساب المستفيد (الدائن).
خطوات العمل.
بالنسبة لكلمة المرور( ،)OTPفهي صالحة لإلستخدام مرة واحدة (صالحيتها 5دقائق).وإال فإن عملية التحويل قيد اإلنتظار تفشل.
Send Command
{ cmd transfer
"cmd" : "transfer", acc_num رقم حساب المدين
"acc_num" : "nnnnnnnnn", acc_num2 رقم حساب الدائن
""acc_num2" :"nnnnnnnnn ccy راجع جدول العمالت عملة الحسابين
"ccy" : nnn, amount المبلغ المحول
"amount" : nnn.nnn, desc وصف بيان التحويل
"desc" : "aaaaaaaaaaaaa",
Key مفتاح التعريف
"key": "kkkkkkkkkkkkkkkk",
token سلسلة من االرقام الفريدة
""token": "ananananananana
}
Result
Result
{ tr_id رقم حركة التحويل (قيد اإلنتظار)
"tr_id" :"ananananananananana", cust_name اسم الزبون المستفيد
"cust_name" :"nnnnnnnnnnnnnnnnnnn", token سلسلة من االرقام الفريدة
""token": "ananananananana
}
األمر ( confirm_transferتأكيد التحويل)
يستخدم هذا األمر لتأكيد عملية تحويل بين حسابين ( قيد اإلنتظار).
يحتاج هذا األمر إلى رقم حركة العملية .وكلمة المرور المؤقتة .OTP
Send Command
{ cmd confirm_transfer
"cmd" : "confirm_transfer", tr_id رقم حركة التحويل (قيد اإلنتظار)
"tr_id" :"ananananananananana", otp (تستخدم لمرة واحدة)كلمة مرور المستلمة من المرسل
"otp" :nnnn, Key مفتاح التعريف
"key": "kkkkkkkkkkkkkkkk", token سلسلة من االرقام الفريدة
""token": "ananananananana
}
Result
Result
{ kaid_id رقم القيد
"kaid_id" :nnnnnnn, token سلسلة من االرقام الفريدة
""token": "ananananananana
}
جدول انواع الحسابات
الرقم البيـــان
2 حساب توفير
4 حسابات داخلية
7 ودائع زمنية
الرقم البيـــان
2 حسابات داخلية
300 جارية لالفراد الطبيعيين
301 التشاركيات والشركات الخاصة
302 الشركات العامة
304 المستفيدين من ثروة المجتمع
311 جارية الغير مقيمين
319 حسابات عملة أجنبية
321 التوفير
323 ودائع زمنية ( شركات ومؤسسات
الرقم البيـــان
0 مفتوح
1 مجمد
2 راكد
3 مقفل
9 الحساب تحت االجراء
جدول العمالت
الرقم البيـــان
434 دينار ليبي
840 دوالر امريكي
954 يورو
826 جنيه استرليني
36 دوالر استرالي
124 دوالر كندي
الرقم البيـــان
120 invalid or expired session
130 invalid token
140 invalid command
150 invalid data
جدول
160 unauthenticated
صفة
الزبون 161 إنتهت الجلسة
170 خطأ غير محدد
الرقم 180 البيـــان رقم المزود غير موجود
0 181 محاسبيموجود
رقم المشترك غير
1 182 شخصرقم تأكيد خاطئ
2 190 يكفي
الرصيد ال جهة
900 لم يتم الربط مع منظومة الميزان المصرفية
9000 ال توجد لديك صالحية إلتمام العملية
9001 السجل غير موجود
9002 ال يمكن ادخال سجل موجود مسبقًا
9007 خطأ في اسم الدخول او كلمة المرور
9008 انتهت صالحية كلمة المرور
جدول 9010 هذا الحساب غير مؤكد
حاالت 9014 هذا الصك موقوف
منظومة 9015 هذا المستخدم غير نشط
الميزان 9016 ال يمكن حذف حساب مؤكد
9023 ال يمكن اضافة حركة مربوطة بحساب غير موجود
الرقم 9024 البيـــان
ال يمكن حذف حساب داخلي مربوط بملف الحركات او تمت عليه حركة
0 9025 ادرجت في ملف الحركات الطور العادي
في حركةال يمكن حذف
1 9026 الرقم نهاية اليوم
اجراءات
طوربنفسيوجد حسابفيزبون
2 9028 مراجعته قبل فتح اليوم
طور العمل هذا الحسابفيتمت
9029 هذا الحساب تحت االجراءn/يرجى االنتظار
9031 ال يمكن استخدام رموز في اسم المستخدم او اسم الدخول
9032 ال يمكن الغاء المستخدم الحالي
9033 ال يمكن الغاء مستخدم لديه رصيد بخزينته
9034 ال يمكن الغاء مسؤول النظام
9035 اسم الدخول محجوز لمستخدم آخر
جدول 9036 ال يمكن ادخال كلمة المرور الحالية او السابقة
األخطاء 9037 ال يمكن الدخول بمستخدم نظام
9050 ال يمكن الدخول اثناء اجراءات نهاية اليوم
9060 لم يتم الدخول على منظومة الميزان
9100 هذا الحساب غير موجود
9101 الحساب غير مؤكد
9102 التوجد لديك صالحية إضافة وتعديل و حذف مالحظات
9103 الحساب مقفل او مجمد وال يمكن إجراء أي عمليات عليه
9110 ال يمكن التعامل مع حساب مقفل
9111 ال يمكنك التعامل مع حساب محجوب
9150 رقم الفرع أو رقم البنك غير موجود
9151 هذه الحالة غير موجودة
9200 رقم الحركة غير موجود
9201 ال يمكن إجراء أي عملية على الحساب الخاص بالمستخدم الحالي
9202 ال توجد لديك صالحية للسحب من حساب مع حساب موقوف
9203 رصيد ال يسمح بإتمام العملية
9204 الحد األقصى للمستخدم ال يسمح بإتمام العملية
9205 ال يمكن تعديل/الغاء حركة تمت مراجعتها
9206 ال يمكن تعديل /إلغاء حركة تمت في غير يوم العمل المفتوح