Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 26

‫شركة االستشاري لخدمات الحاسب اآللي‬

‫دليل برتوكول برنامج ‪Qbank REST‬‬

‫إعداد‪ :‬غنيم علي غنيم‬


‫‪Version: 1.0 © 2023/05/23‬‬
‫‪www.Ecs.ly‬‬
‫حقوق اإلستخدام محفوظة لشركة اإلستشاري لخدمات الحاسب اآللي‪ .‬وإن برنامج الوسيط ودليل اإلستخدام‪ .‬يستخدم فقط من قبل‬
‫المخول لهم ذلك‪ .‬بموجب عقد مبرم مع شركة اإلستشاري‪ .‬لغرض التعامل مع المنظومة المصرفية‪ ،‬وإن إي إستخدام آخر إلي غرض آخر‪ ،‬غير‬
‫مسموح به إال بموافقة شركة اإلستشاري‪.‬‬
‫مقدمة‬

‫تعتبر خدمات ‪ ، Qbank REST API‬الواجهة بين المنظومة المصرفية والبرامج المكملة لوظائف المصرف‪ ،‬والتي يقوم بتصميمها طرف‬
‫ثالث‪ .‬وذلك من خالل إرسال أوامر للمنظومة المصرفية من خالل ‪.Qbank REST API‬‬

‫حيث اعتمدنا أسلوب واجهات برمجة التطبيقات ‪ Rest Server‬للوصول إلى خادم المنظومة المصرفية ‪.‬من العمالء (طرف ثالث)‬
‫الذي يستند إلى ‪JSON Script‬‬

‫يتم استدعاء وظائف معينة (دوال) لالستفار عن بيانات من المنظومة المصرفية أو التأثير على البيانات من خالل الدوال الرئيسية‬
‫المثبته مسبقًا في ‪.Qbank REST API‬‬

‫بروتوكول الوسيط (‪)Qbank REST API‬‬

‫يجب أن يقوم برنامج الطرف الثالث باالتصال مع خدمة (‪ )Qbank REST API‬عبر‪ URL‬ويستخدم أسلوب ‪ ،POST‬لإلرسال‪ ،‬كما يجب أن‬
‫يتحصل على اسم مستخدم وكلمة مرور‪ ،‬تعطى من قبل إدارة المصرف‪ ،‬من أجل ‪ ، Basic Authentication‬وأيضًا يقوم بتكوبن جسم األمر‬
‫‪ ،Body‬حيث يكون بصيغة ‪ .JSON‬كما سنتطرق لشرحه مفصًال‪ ،‬تاليًا‪.‬‬

‫يوجد لكل أمر نتيجتان‪،‬‬

‫‪ ‬النتيجة االولى تكون في حال قبول األمر‪.‬‬


‫‪ ‬والنتيجة الثانية تكون في حالة وجود خطأ في األمر او رفض األمر من قبل خادم الميزان ‪.REST Server‬‬
‫األوامر القياسية لبرنامج الوسيط‬

‫‪no‬‬ ‫‪Command‬‬ ‫‪Description‬‬


‫‪1‬‬ ‫‪connect‬‬ ‫‪Connect to Application‬‬
‫‪1‬‬ ‫‪login‬‬ ‫‪Login‬‬

‫مالحظة‪:‬‬

‫‪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"
}

-:‫ ترجع بالبيانات التالية‬API ‫ فإن‬،‫في حالة االتصال الصحيح‬

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‬الولوج إلى المنظومة(‬

‫للولوج إلى المنظومة ‪ ،‬نحتاج إلى مستخدم نشط (‪-:)Active‬‬

‫ولعملية الدخول‪ ،‬نرسل أمر الولوج‪.‬‬

‫ويحتاج هذا األمر الى عدد ‪ 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,

"desc" : "‫"حساب داخلي‬

},

"id" : 2,

"desc" : "‫"حساب شخص‬

},

"id" : 3,

"desc" : "‫"حساب جهة‬

},
]

}
)‫ (طبيعة الحسابات‬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‬فئات الحسابات)‬

‫يرجع بقائمة بفئات الحسابات‬

‫ويكون األمر على الهيئة التالية‪-:‬‬ ‫‪page‬‬ ‫رقم الصفحة‬


‫‪pages_count‬‬ ‫عدد الصفحات‬
‫‪rows_count‬‬ ‫إجمالي األسطر‬
‫‪items‬‬ ‫‪Array‬‬

‫‪id‬‬ ‫رقم العصر‬


‫‪desc‬‬ ‫الوصف‬
‫‪acc_cr‬‬ ‫حساب الميزانية الدائن‬
‫‪acc_dr‬‬ ‫حساب الميزانية المدين‬
‫‪kind‬‬ ‫نوع الحساب‬
‫‪kdesc‬‬ ‫وصف النوع‬
‫‪side‬‬ ‫طبيعة الحساب‬
‫‪sdesc‬‬ ‫وصف الطبيعة‬

‫‪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,‬‬

‫‪",‬حسابات داخلية" ‪"desc" :‬‬

‫‪"acc_cr" : "",‬‬

‫‪"acc_de" : "",‬‬

‫‪"kind" : 1,‬‬
"kdesc" : "‫"حساب داخلي‬,

"side" : 1,

"sdesc" : "‫"دائن‬

},

"id" : 202,

"desc" : "‫"موظفي الدولة‬,

"acc_cr" : "30100100020",

"acc_de" : "20100100020",

"kind" : 2,

"kdesc" : "‫"حساب شخص‬,

"side" : 1,

"sdesc" : "‫"دائن‬

}, {

},

}
id ‫رقم العصر‬
desc ‫الوصف‬

acc_cr ‫حساب الميزانية الدائن‬


acc_dr ‫حساب الميزانية المدين‬
kind ‫نوع الحساب‬
kdesc ‫وصف النوع‬
side ‫طبيعة الحساب‬
sdesc ‫وصف الطبيعة‬

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

)‫ )بيانات المصرف‬bank_info ‫األمر‬

.‫لالستفسار عن بيانات المصرف‬

-:‫يكون االمر على الهيئة التالية‬


Send Command
{ cmd bank_info
"cmd" : "bank_info", Key ‫مفتاح التعريف‬
"key": "kkkkkkkkkkkkkkkk", token ‫سلسلة من االرقام الفريدة‬
"token": "ananananananana"
}

bnk_id ‫رقم المصرف‬


esult R
bnk_name ‫اسم المصرف‬
Branches Array
br_num ‫رقم الفرع‬
Result br_name ‫اسم الفرع‬

token ‫سلسلة من االرقام الفريدة‬

"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‬البيانات األساسية فقط ‪.‬‬

‫إذا كانت=‪ 1‬البيانات المالية فقط ‪.‬‬

‫إذا كانت=‪ 2‬البيانات األساسية و البيانات المالية معًا ‪.‬‬

‫‪Result‬‬

‫‪Result‬‬ ‫البيانات األساسية‬


‫{‬ ‫‪acc_name‬‬ ‫اسم الزبون‬
‫‪"acc_name" : "aaaaaaaaaaaaaaaaa",‬‬ ‫‪open_date‬‬ ‫تاريخ فتح الحساب‬
‫‪"open_Date" : "yyyy/MM/dd",‬‬ ‫‪addr‬‬ ‫العنوان‬
‫‪"addr" : "aaaaaaaaaaa",‬‬ ‫‪tel‬‬ ‫رقم الهاتف‬
‫‪"tel" : "nnnnnnnnnn",‬‬ ‫‪mobile‬‬ ‫رقم النقال‬
‫‪"mobile" : nnnnnnnnnn ",‬‬ ‫‪email‬‬ ‫البريد االلكتروني‬
‫‪"email" : "eeeeeeeeeeee",‬‬
‫‪nat_id‬‬ ‫الرقم الوطني‬
‫‪"nat_id" : "nnnnnnnnnnnn",‬‬ ‫‪ISO3166 Country codes‬‬
‫‪nat‬‬ ‫الجنسية‬
‫‪"nat" : n‬‬

‫‪"acc_type" : n,‬‬ ‫البيانات المالية‬


‫‪"acc_class" : n,‬‬ ‫‪acc_type‬‬ ‫راجع جدول انواع الحسابات‬ ‫نوع الحساب‬
‫‪"acc_cat" : n,‬‬ ‫‪acc_class‬‬ ‫راجع جدول انواع الزبائن‬ ‫طبيعة الزبون‬
‫‪"state" : n,‬‬ ‫‪acc_cat‬‬ ‫راجع جدول صفة الزبون‬ ‫صفة الزبون‬
‫‪"balance" : nnn,‬‬ ‫راجع جدول حاالت الحساب‬
‫‪state‬‬ ‫حالة الحساب‬
‫‪"faci" : nnn,‬‬
‫‪balance‬‬ ‫الرصيد المتاح‬
‫‪"reserv" : nnn,‬‬
‫"‪"token": "ananananananana‬‬ ‫‪faci‬‬ ‫قيمة التسهيل الممنوح‬
‫}‬ ‫‪Reserve‬‬ ‫قيمة المبلغ المحجوز‬
‫‪token‬‬ ‫سلسلة من االرقام الفريدة‬
‫األمر ‪(account_statement‬كشف حساب)‬

‫لعرض كشف حساب‪ ،‬نحتاج الى البيانات التالية‪-:‬‬

‫‪ ‬تاريخ بداية كشف الحساب‬ ‫‪ ‬رقم الحساب‬


‫‪ ‬رقم الصفحة‬
‫(إختياري) ‪ .‬القيمة االفتراضية = ‪1‬‬ ‫‪ ‬عملة الحساب‬

‫ويكون األمر على الهيئة التالية‪-:‬‬ ‫* ‪acc_name‬‬ ‫اسم الزبون‬


‫* ‪acc_type‬‬ ‫راجع جدول انواع الحسابات‬ ‫نوع الحساب‬
‫* ‪acc_class‬‬ ‫راجع جدول انواع الزبائن‬ ‫طبيعة الزبون‬
‫* ‪acc_cat‬‬ ‫راجع جدول صفة الزبون‬ ‫صفة الزبون‬
‫* ‪state‬‬ ‫راجع جدول حاالت الحساب‬ ‫حالة الحساب‬
‫* ‪balance‬‬ ‫الرصيد المتاح‬
‫* ‪faci‬‬ ‫قيمة التسهيل‬
‫* ‪reserv‬‬ ‫قيمة الحجز‬
‫‪page‬‬ ‫الصفحة الحالية‬
‫‪total_rows‬‬ ‫عدد اسطر كشف الحساب‬
‫‪total_pages‬‬ ‫عدد الصفحات‬
‫‪Data‬‬ ‫‪Array‬‬
‫‪tr‬‬ ‫رقم الحركة‬
‫‪date‬‬ ‫تاريخ الحركة‬
‫‪code‬‬ ‫إشاري‬
‫‪desc‬‬ ‫وصف الحكة‬
‫‪amount‬‬ ‫و ( سالبة = مدين )‬ ‫القيمة (موجبة = دائن )‬

‫‪token‬‬ ‫سلسلة من االرقام الفريدة‬


‫‪Send Command‬‬
‫{‬ ‫‪cmd‬‬ ‫‪account_statement‬‬
‫‪"cmd" : "account_statement",‬‬ ‫‪acc_num‬‬ ‫رقم حساب الزبون‬
‫‪"acc_num" : "nnnnnnnnn ",‬‬ ‫‪ccy‬‬ ‫راجع جدول العمالت‬ ‫عملة الحساب‬
‫‪"ccy" : nnn,‬‬ ‫‪sdate‬‬ ‫القيمة االفتراضية ‪ :‬بداية السنة‬ ‫تاريخ بداية كشف‬
‫‪"sdate" : "yyyy/MM/dd",‬‬ ‫‪page‬‬ ‫‪default = 1‬‬ ‫رقم الصفحة‬
‫‪"page" : " 1,‬‬ ‫‪Key‬‬ ‫مفتاح التعريف‬
‫‪"key": "kkkkkkkkkkkkkkkk",‬‬
‫‪token‬‬ ‫سلسلة من االرقام الفريدة‬
‫"‪"token": "ananananananana‬‬
‫}‬

‫‪Result‬‬

‫‪Result‬‬

‫مالحظة‪:‬‬

‫البيانات التي تحتوي على * تظهر في الصفحة رقم (‪ )1‬فقط‬

‫{‬

‫‪"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‬تحويل بين حسابين )‬

‫يستخدم هذا األمر إلجراء عملية تحويل مبلغ حسابين‬

‫يحتاج هذا األمر إلى رقم حساب المرسل (المدين) ورقم حساب المستفيد (الدائن)‪.‬‬

‫خطوات العمل‪.‬‬

‫يرسل الزبون للبنك طلب عملية التحويل‪.‬‬ ‫‪.1‬‬


‫يقوم برنامج البنك بتحويل الطلب للوسيط‪.‬‬ ‫‪.2‬‬
‫يقوم الوسيط بتجهيز عملية التحويل (تحت اإلنتظار)‪ ،‬ويرسل بيانات المستفيد للبرنامج وايضًا يرسل ‪ OTP‬لهاتف الزبون‪.‬‬ ‫‪.3‬‬
‫يقوم البرنامج بإرسال اسم المستفيد للزبون‪ ،‬من أجل التأكيد‪.‬‬ ‫‪.4‬‬
‫في حالة الموافقة من قبل الزبون‪ ،‬يقوم الزبون بإرسال ‪ OTP‬للبنك‪.‬‬ ‫‪.5‬‬
‫يقوم برنامج البنك بتحويل ‪ OTP‬للوسيط (عن طريق األمر ‪ ،)confirm_transfer‬الذي يقوم بدوره بالتنفيذ الفعلي للعملية‪.‬‬ ‫‪.6‬‬

‫بالنسبة لكلمة المرور(‪ ،)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‬‬ ‫ال يمكن تعديل ‪ /‬إلغاء حركة تمت في غير يوم العمل المفتوح‬

You might also like