همانطور که میدانید API به مفهوم یکسری نقاطی است که از بیرون یک نرمافزار قابل استفاده است و مهمترین نکتهاش این است که مستند باشد و قابل استفاده از عناصر بیرونی. API به این شکلی که میشناسیم از سال 2000 مطرح شد. شرکتهای داتکام شروع به دادن API کردند و این روند تاحالا ادامه پیداکرده است. بانکها چند سالی است که به جرگه ارائهکنندگان API در دنیا پیوستهاند. API ها به دو دسته خصوصی و عمومی است تقسیم میشوند. API های عمومی معمولا مجانی است و در اختیار عموم قرار دارد. نمونه بارز آن API های گوگلمپ است.
- بانکداری باز
بانکها هیچ موقع شرکتهای پذیرنده و بهقولی میزبانهای خوبی نبودند. ما هر موقع میخواستیم با بانکی جلسهای بگذاریم بهراحتی نمیتوانستیم این کار را انجام دهیم. هنوز هم نسبت به بانکها چنین احساسی وجود دارد؛ اما در دنیا و بعد از سال 2008 و بحرانهای بانکی، بانکها گارد خودشان نسبت به بیرون را باز کردند. بانکداری باز را میتوانیم بانکداری با آغوش باز بنامیم که شما را میپذیرد و اجازه میدهد که از خدماتش در دیگر جاها بهجز محدوده بسته خود بانک، استفاده کنید و این یک روند جهانی است که بانکها و ارائهدهندگان راهحل بانکی باز کردند و پذیرای تغییرات شدند. نمونه آن، این است که ما تا قبل از سال 2008 عبارت total solution یا راهحلهای جامع را زیاد میشنیدیم ولی بهمرور میبینیم که این روند دچار تغییر شده است. در داخل ایران نیز این اتفاق در حال وقوع است. همهکسانی که اینجا حضور دارند از شرکتهایی هستند که تا پنج سال پیش تصور نمیکردند که این شرکتها سراغ استارتاپها بروند و به آنها API ارائه کنند. فضا بهصورت جهانی عوض شده و ما هم در مملکت خودمان تغییرات خوبی داشتهایم. یکی از مهمترین اهداف ما در API ایجاد زیستبومی است که بازیگرانی که در آن بازی میکنند اعم از استارتاپها، فینتکها، شرکتهای تأمینکننده نرمافزار بانکها و خود بانکها در یک همافزایی با یکدیگر قرار بگیرند که با همدیگر رشد کنند. نتیجه دادن API به بیرون این است که هرچه بانک بازتر شود، افراد بیشتری جذب میشوند که نتیجه آن ایجاد برنامههای بیشتر است و هرچه برنامههای بیشتر نوشته شود، درآمد بیشتری کسب میشود که درنتیجه سرمایهگذاری روی کارهای نوآورانه بیشتر میشود. این چرخه، چرخه مثبتی است که نتیجهاش رضایت و رشد همه بازیگران است. تفاوتی میان open API و open DATA وجود دارد و لزوما این دو هممعنی نیستند. Open data میتواند در قالب یک فایل یا یکسری اطلاعاتی باشد که در وبسایتی منتشر میشود. یکی از معروفترین نمونههای آن اطلاعات سازمان حملونقل عمومی در دنیا است. این سازمانها به فرمتی از داده رسیدهاند که اگر اطلاعات سازمان خودشان را با آن فرمت ارائه کنند، دیگران با استفاده از آن میتوانند برنامههایی بنویسند که بسیار کارآمد خواهد بود. Open به این معنی است که از لحاظ استاندارد یک استاندارد مشخص را تبعیت میکند و از لحاظ اجازه و مجوز، اجازه استفاده از آن وجود دارد. یکی از اتفاقاتی که در دنیا رخ داده، این است که استارتاپها با توجه به اینکه در مقطعی دسترسی مستقیم به API نداشتند، شروع به استفاده از تکنیکهایی مانند screen scraping کردند که با استفاده از کلمه کاربری و رمز عبور مشتری وارد میشوند و اطلاعات را به دست میآورند و به کمک آن کارشان را انجام میدهند. این اتفاق در دنیا بسیار رواج داشت و دادن API توانست اینطور مسائل را حل کند.
- ماجرای فیشهای حقوقی و فلسفه باز
فکر میکنید دلیل اینکه داستان فیشهای حقوقی مدتی بسیار فراگیر شد، چیست؟ دلیلش این است که اطلاعات برخی افراد و سازمانها باید در اختیار عموم مردم قرار بگیرد. هیچکس با فردی که این فیشها را علنی کرد، برخوردی نکرد؛ درصورتی که ازلحاظ قانونی کار خلافی کرده و درواقع برخی از اطلاعات این فیشها را هک کرده بود؛ اما چرا باید این کار غیرقانونی منتشر شود و ما خودمان آن را بهصورت قانونی منتشر نکنیم؟ ما که در بانکها میتوانیم برخی از این اطلاعات را بهصورت عمومی منتشر کنیم و درواقع مفهوم بانکداری باز نیز همین است؛ مثلا سازمانهای غیرانتفاعی، سازمانهای خیریه، سازمانهایی که پولی که به حسابشان میآید، پول مردم است باید هزینهای که درونشان انجام میشود، شفاف شود که چرا این هزینه انجام شده است. این بهراحتی با دادن یک API عمومی برای عموم مردم و استفاده از آن توسط سازمانهای مختلف و یا خبرنگارها و بخشهایی از جامعه که علاقهمند هستند، میتواند شفافسازی شود. ما در حوزه بانکی اگر مرحلهبهمرحله بگوییم که چطور میخواهیم این API ها را منتشر کنیم باید از جنبههای مختلف مورد بررسی قرار بگیرد. یکی اینکه معمولا ما از کمریسکترین اطلاعات شروع میکنیم؛ مانند اطلاعات شعب، اطلاعات ATM ها و یکسری اطلاعات عمومی راجع به بانک. بعد به سراغ اطلاعات استعلامی فردی مانند پروفایل مشتری، ماندهحساب، صورتحساب میرویم و بعد از آن به سراغ اطلاعات تراکنشها مانند انتقال پول و پرداخت میرویم و بعدازآن به سراغ اطلاعاتی میرویم که ممکن است بیش از یک فرد را درگیر کند. یک مثالش را عرض میکنم که کمتر راجع به آن کارشده است. آنهم این است که ما یک اطلاعات وسیعی بدهیم اما نه درباره افراد و نه اینکه اطلاعات افراد در آن قابل بررسی باشد اما قابلیت دادهکاوی توسط سازمانهای دیگر داشته باشد و بتوانند از آن نتایجی به دست آورند.
- بانکداری باز و API
ترکیب بانکداری باز با انواع API ها کاری است که ما باید انجام بدهیم. بعد از اینکه تشخیص دادیم که اول کدام API را میخواهیم منتشر کنیم، اولین کاری که ما باید انجام دهیم این است که بانکهایی که میخواهند API را منتشر کنند، این API را داخل خودشان منتشر کنند. بانکهایی را میبینم که این API ها را خودشان استفاده نمیکنند ولی به دیگران میگویند که استفاده کنید. این اصلا مدل مطلوبی نیست، چون برای استفادهکنندگان بیرونی مشکلساز خواهد شد. توصیه خوبی است که بانکهایی که میخواهند API ارائه دهند، در مرحله اول خودشان نرمافزارهای موجودشان را طوری تغییر دهند که با API داخلی خود بانک کار کند. بعد از این کار که مهمترین آوردهاش برای بانک، چابکی بانک است. در گذشته نوع ارتباطات میان سیستمهای API نبود؛ یعنی مستند و مبتنی بر استاندارد نبود و اینها باعث میشد تغییراتی که در هر سیستم اتفاق میافتاد، تأثیرات زیادی بر روی دیگر سیستمها داشته باشد و این کار به بانکها کمک میکند تا چابکتر شوند و در مقابل تغییرات سریعتر واکنش نشان دهند. مرحله بعدی این است که به شرکای خودش، محیط بستهتری ارائه کند که مهمترین آوردهاش تجربه همکاری بانک با شرکتهای بیرونی است و باید بعد از همه این کارها و در آخرین مرحله به سراغ API باز برویم. میبینیم که هنوز ما حرفی از API داخلی نزدیم ولی میخواهیم API باز بدهیم. این کار آفتهای بسیاری خواهد دارد.
- چند پیشنهاد
من چند پیشنهاد دارم. اول اینکه از تکنولوژیهای مناسب استفاده کنیم. باید نسخهبندی را رعایت کنیم و backward compatibility و forward compatibility را و continence integration را در نظر بگیریم. همچنین توصیه میشود از کانتینرهای جدید استفاده شود. بهتر است برای رفع موانع از BAIN استفاده شود که بهعنوان مرجع معماری صنعت بانکی، رشد خیلی خوبی دارد. در باین یکسری سلسله مراتب داریم که حوزهها را از یکدیگر جدا میکند و در هر حوزه عملیات مختص خودش را مشخص میکند. ما حتی از باین میتوانیم برای طراحی API استفاده کنیم. در دنیا چند اتفاق مهم در حال وقوع است. یکی اینکه دولت انگلیس تعهدی دارد که تا اواسط سال جاری میلادی، API بانکداری باز تصویب کند و بانکها ملزم به استفاده از آن شوند.