
واحدة من أكثر المجالات صعودًا في السنين الأخيرة في عالم التقنية هي ال Fintech بل وأصبحت لا غني عنها وجزء من حياتنا اليومية, وأي Business حاليًا لازم يتعامل معها بطريقة أو بأخرى, فورقة وقلم مًبرمجنا الفاضل وتعالى نفهم أساس النظام دا من وجهة نظر العميل ووجهة النظر التقنية لأن سواء احتجت تطبق Payment Solution أو بس ت Integrate مع حل جاهز, فهمك للنظام دا هيسهل عليك كتير..
القصة القصيرة بالنسبة للعميل:
العميل بيدفع للتاجر باستخدام بطاقة البنك الخاصة بيه سواء في المحل مع جهاز الـ Terminal أو ما يعرف ب Point of sale POS) أو بيدخل بيانات الكارت في ال Checkout علي الموقع, وقتها احنا بنعمل Authorisation Request للبنك المٌصدر للكارت عشان نتأكد من وجود رصيد كافي للمعاملة ال Authorisation request دا بنعمل فيه أكثر من عملية أهمهم:
- التأكد من بيانات الكارت و من إن المعاملة مش Fraud
- التأكد من وجود رصيد كافي
- لو في رصيد كافي فالبنك بيقوم بخصم قيمة المعاملة من حساب المشتري وإرسالها لحساب التاجر
خلص ال Authorisation request بنجاح عميلنا كدا دفع بنجاح وخد مشترياته ومشي.
خد بالك عزيزي المبرمج العميل هنا مهتم بـ حاجتين ملهمش ثالث:
- Reliability of Service أمان المعاملة (ادفع ويتخصم مني فقط القيمة المٌتفق عليها من غير مشاكل تقنية وتفضل بياناتي وبيانات حسابي في أمان)
- Ease of Service سلاسة ووقت المعاملة (عملية الدفع تتم بأسهل وأسرع طريقة)
فمهما قصة ال Payments تطول معاك في تفاصيلها أولويتك الأولى والأخيرة إنك بتوفر له الحاجتين دول.
القصة الطويلة بالنسبة للمبرمج
قبل ما نعرض الخطوات هنناقش نقطتين مهمين:
المصطلحات المٌستخدمة في أنظمة الدفع
خلونا نستعرض بعض المصطلحات لتسهيلها, الجميل إن المصطلحات دي 90٪ من الوقت ثابتة حول العالم ففي مصر مثل السعودية مثل أمريكا هو نظام واحد بيختلف مٌقدمين الخدمات وأسمائهم.
Issuer (البنك المُصدِر)
هو البنك أو الجهة التي أصدرت بطاقة العميل ويتحقق من صلاحيتها ويوافق أو يرفض العملية.
Acquirer (البنك المُكتسِب)
هو البنك أو المؤسسة المالية التي تمثل التاجر وتستقبل المدفوعات نيابة عنه من شبكات البطاقات.
Card Network (شبكة البطاقات)
هي الجهة الوسيطة التي تربط بين البنك المُكتسِب (Acquirer) والبنك المُصدِر (Issuer)، وتُعالج الطلبات وتُطبق قواعد المدفوعات بين الطرفين.
Payment Gateway (بوابة الدفع)
هي الواجهة الإلكترونية التي تجمع بيانات الدفع من العميل وتربطها آمنًا بمعالج الدفع لتنفيذ المعاملة.
Payment Processor (معالج الدفع)
هو النظام أو الشركة التي تنفذ عملية الدفع تقنيًا من خلال التحقق من البيانات والتواصل مع الشبكات والبنوك.
عملية الدفع ليست خطوة واحدة
لما بندفع Cash, عميلة الدفع أغلب الوقت هي نفسها عملية الاستلام. بينما في عمليات الدفع الالكتروني عملية دفع العميل لا تعني استلام التاجر للفلوس, طيب إزاي🤷♀️
السر في كون عملية نقل الأموال الفعلية عملية مكلفة فعلاً, خلونا نوضح بمثال
الأموال الخاصة بالعميل في بنك واحد, وحساب التاجر في بنك اتنين, البنك بيوصله الاف المعاملات خلال اليوم مش منطقي بعد كل معاملة نطلع وفد من البنك ينقل الفلوس من بنك للثاني والعكس بالعكس. ولذلك البنوك بتعمل بنهاية اليوم عملية تسوية للأموال وتحسب اللي محتاج يدفعه كل بنك للثاني وتحدد أوقات نقل الأموال.
وبكدا عملية الدفع بتنقسم دومًا خطوتين:
- عملية تحقق Authorisation : وفيها البنك المٌصدر بيقوم بحجز الفلوس في حساب العميل بل وبيوضح للعميل إنه اتخصم منه بشكل فوري(حسابك كرقم بيقل) لكن الفلوس في الواقع متحركتش من البنك.
- عملية تسوية Settlement : وفيها يتم نقل الفلوس بالفعل لحساب التاجر في البنك. عملية التسوية بتحصل عادة خلال يوم أو اثنين ولكن في حلول حاليًا بتقدم تسوية للتاجر في نفس اليوم.
لو تابعنا في الرسم التوضيحي هنلاحظ إن ال Payment gateway بيبدأ بجمع المعلومات من كارت العميل سواء في ال Checkout أو من خلال ال Terminal وتشفيرها وإرسالها ك Authorisation request لل Payment Processor وكذلك يقوم باستقبال ال Response وعرضه للعميل.
ال Payment Processor بيبدأ في معالجة الطلب فعليًا علي عدة خطوات:
- التحقق من صحة البيانات: هل البطاقة موجودة وتاريخ صلاحيتها فاعل؟ هل رقم الـ CVV صحيح؟
- التحقق من الاحتيال Fraud Detection: ودا بيعتمد بشكل كبير علي آل Machine Learning models اللي بتقدر تحلل الأنماط المختلفة للمستخدمين وترفض الطلب لو فيه شبهة احتيال
- تمرير الطلب للبنك المٌكتسب
ال Payment Processor ليه أدوار أخرى مهمة لعملية الدفع بشكل عام مثل:
- تقديم وسائل دفع مختلفة بعملات مختلفة للتاجر, ودا بيزيد من قدرته علي استقبال الأموال.
- تنظيم عملية التسوية
- تقديم تقارير وبيانات مفصلة للتاجر عن كل معاملة وحالات النجاح والرفض.
البنك المٌكتسب Acquirer bank وزي ما اتفقنا دا البنك اللي فيه حساب التاجر وبيتم تحويل الأموال له بالنهاية, بيقوم باستقبال الطلب من ال Payment Processor و إرساله لشبكة البطاقات, طيب ليه ال Payment Processor ميقومش بإرسال الطلب مباشرة لشبكة البطاقات؟
دا بيرجع لسببين:
- شبكات البطاقات لا تتعامل مع Payment Processors: شبكات البطاقات بتقوم على توصيل البنوك حول العالم ببعضها البعض ولائحيًا وتنظيميًا لا تتعامل مع جهات مستقلة سواء تجار أو Payment Processors
- تحمل المخاطر: في حالات الاحتيال, التزوير, ال Chargebacks ال Acquirer bank هو اللي بيتحمل المعاملة ولذلك هو اللي بيقرر يقبل المعاملة ويمررها من الأساس أم لا.
بتقوم شبكات البطاقات Card Networks أو ال Card Schemes ومثاليها الأشهر شبكتي Visa و Mastercard باستقبال الطلب وتمريره للبنك المٌصدر للموافقة عليه أو رفضه, و بيقوم الطلب برحلة عودة خلال كل هذه الطبقات بالموافقة أو الرفض . المذهل أن كل الخطوات دي بتحصل في خلال ١ - ٣ ثواني بحد أقصى 🚀
عملية التسوية بتحصل دايمًا بشكل Asynchronous على شكل Batches لمجموعة من المعاملات Transactions على ما يكون كل طرف حسب الحسابات ومرر الأموال بشكل فعلي من طبقة للثانية.
نأخد بالنا إن كثير من ال Fintechs بتبدي تقدم خدمة واحدة بتتميز فيها وبعد كدا تتوسع لتشمل خدمات أخري, فهنلاحظ إن غالبًا اللي بيقدم ال Payment gateway بيقدم خدمة ال Processing, بل في بنوك بتقدم الجانب التقني وتلعب هي معظم الدور في السلسلة وتستغل تواصلها بشكل مباشر مع شبكات البطاقات في تسريع عمليات التسوية للعملاء. وطبعًا كل دور من هذه الأدوار بيقتطع Fees من قيمة المعاملة نظير الخدمة, ال Fees اللي بتكون قليلة جدًا ولكن مع حجم وعدد المعاملات الإلكترونية الضخم في عالمنا اليوم دا بيمثل أرقام مربحة للغاية.
في الختام
اكتبولنا في التعليقات لو حابين تعرفوا أكثر عن الـ Fintech والحلول المختلفة (الكثيرة) اللي بتقدمها لنا في تسهيل عملية الدفع.