สถาปัตยกรรมแพลตฟอร์ม
หนึ่งแกนกลาง หลายช่องทางใช้งาน — แพลตฟอร์มทำงานอย่างไรกันแน่
พาไล่ดูแพลตฟอร์มตั้งแต่ ledger ขึ้นมา ทั้งบัญชี KYC บัตร และคริปโตที่ใช้แกนบัญชีคู่เดียวกัน เส้นทางของการชำระเงินหนึ่งรายการตั้งแต่สร้างจนถึงกระทบยอด และตำแหน่งของชั้นแอป คอนโซลสำหรับผู้ปฏิบัติงาน และเส้นแบ่งด้านกฎระเบียบ
แกนกลาง
หนึ่ง ledger อยู่ใต้ทุกอย่าง
ใจกลางของแพลตฟอร์มคือ ledger บัญชีเดียว ทุกบัญชี ไม่ว่าจะเป็นกระเป๋าเงินลูกค้า ยอดคงเหลือของร้านค้า บัญชีค่าธรรมเนียม หรือบัญชีสำหรับการชำระดุล ล้วนเป็นโหนดบนบัญชี ledger นั้น และการเคลื่อนย้ายมูลค่าทุกครั้งคือรายการบัญชีคู่ คือหักบัญชีหนึ่ง เพิ่มอีกบัญชีหนึ่ง และสองฝั่งเท่ากันเสมอ ledger เป็นแบบเพิ่มได้อย่างเดียว รายการจะไม่ถูกแก้ไขหรือลบ การแก้ไขคือการบันทึกรายการใหม่ที่หักล้างกัน จึงย้อนดูได้เสมอว่ายอดคงเหลือมาถึงค่าปัจจุบันได้อย่างไร บัญชี สถานะ KYC บัตรที่ออก และที่อยู่คริปโต ล้วนผูกกับโมเดลบัญชีเดียวกัน การอนุมัติรายการบัตร การโอนผ่านธนาคาร และเงินฝากออนเชน จึงลงยอดเข้าบัญชีเดียวกันได้ โดยไม่ต้องมีชั้นกระทบยอดมาเชื่อมระบบที่แยกจากกัน
- 01บัญชีคู่: ทุกรายการสมดุล ยอดเดบิตเท่ากับเครดิต
- 02เพิ่มได้อย่างเดียว: การแก้ไขคือรายการใหม่ ไม่ใช่การแก้รายการเดิม
- 03โมเดลบัญชีเดียวสำหรับเงินเฟียต บัตร และคริปโต
- 04สถานะ KYC อยู่กับบัญชี ไม่ใช่ตารางแยก
การชำระเงินหนึ่งรายการ ตั้งแต่ต้นจนจบ
การชำระเงินหนึ่งรายการ จากสร้างถึงกระทบยอด
การชำระเงินไม่ใช่การเรียกครั้งเดียว แต่เป็นวงจรสั้น ๆ ที่แต่ละขั้นเป็นสถานะซึ่งทั้ง ledger และระบบของคุณมองเห็นตรงกัน ทุกการเปลี่ยนสถานะส่ง webhook และทุกการเขียนเป็น idempotent ใช้คีย์เดิมซ้ำก็ได้ผลลัพธ์เดิม คำขอที่ส่งซ้ำจึงไม่ตัดเงินซ้ำ
- 01
Create
เปิด intent ระบุจำนวนเงิน สกุลเงิน และบัญชีที่เกี่ยวข้อง ยังไม่มีการเคลื่อนย้ายเงิน ledger บันทึกรายการสถานะรอดำเนินการ
- 02
Authorize
ช่องทางตรวจสอบเงินและความเสี่ยง แล้วกันวงเงินไว้ สำหรับบัตรคือการอนุมัติรายการ สำหรับการโอนคือการสำรองยอดที่จะหักไว้
- 03
Capture
ยืนยันยอดที่กันไว้ ledger บันทึกรายการบัญชีคู่ที่เคลื่อนย้ายมูลค่าระหว่างสองบัญชีจริง
- 04
Settle
เงินเคลียร์ผ่านช่องทางพื้นฐาน ไม่ว่าจะเป็นเครือข่ายบัตร ธนาคาร หรือเชน และบัญชีชำระดุลกระทบยอดกับเงินจริง
- 05
Reconcile
แพลตฟอร์มจับคู่รายการของตัวเองกับรายงานการชำระดุลของช่องทาง รายการที่ไม่ตรงกันจะถูกแจ้งเตือน ไม่ถูกซ่อน
Webhook และ idempotency ทำงานอยู่ทุกจุดเชื่อมต่อของโฟลว์นี้ ระบบของคุณรู้ว่าการชำระเงินเคลื่อนไหวแล้วจากการรับอีเวนต์ ไม่ใช่การ polling และคำขอที่คุณส่งซ้ำหลังหมดเวลาจะถูกจัดการด้วย idempotency key ให้ได้ผลลัพธ์เดิมเสมอ การส่งซ้ำจึงไม่ตัดเงินซ้ำ บริการที่รัน authorize และ capture คือ payment gateway.
ชั้นแอป
แอป whitelabel อยู่ด้านบน แพลตฟอร์มเดียวอยู่ด้านล่าง
แกนกลางเปิดความสามารถให้ใช้งาน ส่วนชั้นแอปเปลี่ยนความสามารถเหล่านั้นให้เป็นผลิตภัณฑ์ แอปฝั่งลูกค้าแต่ละตัว ทั้งเว็บและมือถือ เป็นไคลเอนต์ whitelabel ที่แสดงบัญชี การชำระเงิน และบัตรชุดเดียวกันภายใต้แบรนด์ของตัวเอง การจัดธีมขับเคลื่อนด้วยโทเคน สี ตัวอักษร ความโค้งมน และระยะห่างมาจากระบบ design token (PDS) ผู้ให้บริการจึงเปลี่ยนหน้าตาทั้งหมดได้ด้วยการปรับโทเคน ไม่ต้อง fork แอป แพลตฟอร์มเดียวกันนี้ปรับไปใช้ได้หลากหลายทิศทาง ทั้ง neobank สำหรับผู้บริโภค แอป acquiring สำหรับร้านค้า โปรแกรมออกบัตร on/off-ramp คริปโต หรือเครื่องมือปฏิบัติการภายใน โดยไม่กลายเป็นห้าผลิตภัณฑ์แยกกัน เป็นแพลตฟอร์มเดียวที่สวมหลายลุค แต่ละแบบแค่กำหนดค่า ไม่ต้องสร้างใหม่
- 01ไคลเอนต์ whitelabel ทั้งเว็บและมือถือบน API ชุดเดียวกัน
- 02ธีมขับเคลื่อนด้วยโทเคน (PDS): ปรับหน้าตาด้วยการตั้งค่า ไม่ต้อง fork
- 03ห้าตัวอย่างทิศทาง — neobank, acquiring, issuing, ramp, ops
- 04ช่องทางใหม่ใช้การกำหนดค่า ไม่ต้องสร้างใหม่
การปฏิบัติการ
ควบคุมจากคอนโซล พร้อมเหตุผลที่บันทึกไว้
เบื้องหลังทุกแอปคือคอนโซลสำหรับผู้ปฏิบัติงาน เป็นที่ที่เจ้าหน้าที่ซัพพอร์ตค้นหาบัญชี นักวิเคราะห์ความเสี่ยงอายัดบัตร หรือหัวหน้าฝ่ายปฏิบัติการกลับรายการ สิทธิ์อ่านกว้าง แต่สิทธิ์ดำเนินการพิเศษไม่กว้าง การกระทำใดที่เคลื่อนย้ายเงิน เปลี่ยนวงเงิน หรือแตะต้องเงินของลูกค้า ต้องระบุเหตุผลก่อนดำเนินการ และจะเขียนบันทึกตรวจสอบที่แก้ไขไม่ได้ ว่าใครทำ ทำอะไร เมื่อไร และเพราะเหตุใด การเข้าถึงเป็นไปตามหลักสิทธิ์น้อยที่สุด ผู้ปฏิบัติงานแต่ละคนจึงเห็นและทำได้เฉพาะที่บทบาทอนุญาต นี่คือโมเดลใน Protocore Center คอนโซลสำหรับผู้ปฏิบัติงาน และแนวทางเดียวกันนี้ฝังอยู่ในทุกระบบบนแพลตฟอร์ม การกระทำที่อ่อนไหวต้องทำอย่างตั้งใจ ระบุตัวผู้ทำได้ และตรวจสอบย้อนหลังได้
- 01อ่านได้กว้าง เขียนต้องผ่านการควบคุม — การกระทำพิเศษเป็นข้อยกเว้น
- 02ต้องระบุเหตุผลก่อนการกระทำใดที่แตะต้องเงิน
- 03audit trail ที่แก้ไขไม่ได้: ใคร ทำอะไร เมื่อไร เพราะอะไร
- 04สิทธิ์น้อยที่สุดตามบทบาทของผู้ปฏิบัติงาน
สะพานคริปโต
คริปโตและเงินเฟียตบน ledger เดียวกัน
คริปโตไม่ใช่ไซโลแยกบนแพลตฟอร์ม ที่อยู่คริปโตเป็นเพียงอีกบัญชีหนึ่งบน ledger เดียวกัน on/off-ramp แปลงระหว่างเงินเฟียตกับสินทรัพย์ดิจิทัลที่ขอบของระบบ ลูกค้าเติมยอดด้วยบัตรหรือการโอนแล้วรับเป็นคริปโต หรือขายคริปโตแล้วถอนเข้าบัญชีธนาคาร มูลค่าบนเชนชำระดุลต่อไปถึงช่องทางธนาคารได้ การชำระเงินออนเชนที่เข้ามาจะถูกบันทึกเข้าบัญชี แปลงค่า แล้วจ่ายออกไปยัง IBAN ผู้รับจึงเห็นเป็นเงินธรรมดาในบัญชีธนาคารธรรมดา เมื่อทั้งสองขาลงรายการบน ledger บัญชีคู่เดียวกัน รายการที่เริ่มบนเชนและจบด้วยการโอนผ่านธนาคารจึงเป็นประวัติเดียวที่กระทบยอดแล้ว ไม่ใช่สองระบบที่ต้องกระทบยอดด้วยมือ
- 01ที่อยู่คริปโตก็เป็นบัญชีเหมือนบัญชีอื่น
- 02On/off-ramp: แปลงเงินเฟียตและสินทรัพย์ดิจิทัลที่ขอบของระบบ
- 03ชำระดุลออนเชนต่อไปจนถึงการจ่ายออกเข้า IBAN
- 04ประวัติเดียวที่กระทบยอดแล้วตลอดทั้งสองขา
พื้นที่สำหรับการพัฒนา
API, webhook และ sandbox ไว้พัฒนา
ทุกอย่างที่แอปทำ ทำผ่าน API ที่มีเอกสารครบ ทั้งสร้างบัญชี เปิดการชำระเงิน ออกบัตร และเริ่ม ramp ตัวอย่างการเรียกเช่น POST /v1/wallets หรือ POST /v1/payments โครงสร้างเป็น REST โดยทุกการเขียนมี idempotency key การเปลี่ยนสถานะส่งมาเป็น webhook ระบบของคุณจึงตอบสนองต่ออีเวนต์ ไม่ต้อง polling คอยตรวจ การพัฒนาทำบน sandbox tenant ซึ่งเป็นสำเนาแยกของแพลตฟอร์มพร้อมช่องทางทดสอบ ใช้รันโฟลว์ตั้งแต่สร้างจนถึงกระทบยอดได้ครบโดยไม่ต้องเคลื่อนย้ายเงินจริง สิ่งที่แต่ละผลิตภัณฑ์เปิดให้คุณใช้ และในระดับใด ขึ้นอยู่กับ access band ของผลิตภัณฑ์นั้น หน้าของแต่ละผลิตภัณฑ์ระบุไว้ชัดเจนว่าแต่ละ band มีอะไรบ้าง
- 01REST API ที่มีเอกสาร การเขียนแบบ idempotent
- 02Webhook ทุกการเปลี่ยนสถานะ — ขับเคลื่อนด้วยอีเวนต์ ไม่ใช่ polling
- 03Sandbox tenant พร้อมช่องทางทดสอบ แยกจาก production
- 04ขอบเขตและวงเงินกำหนดโดย access band ของแต่ละผลิตภัณฑ์
เส้นแบ่งที่พูดกันตรง ๆ
Protocore สร้างซอฟต์แวร์ ใบอนุญาตคือผู้ถือเส้นแบ่งด้านกฎระเบียบ
ผลิตภัณฑ์การชำระเงินคือสองสิ่งที่หลอมรวมกัน คือสิทธิ์ตามกฎหมายในการถือครองและเคลื่อนย้ายเงิน กับซอฟต์แวร์ที่สั่งการ บันทึก และกระทบยอด Protocore สร้างซอฟต์แวร์ ส่วนกิจกรรมที่ต้องมีใบอนุญาต ไม่ว่าจะเป็นการถือเงินของลูกค้า การออกบัญชี หรือการเคลื่อนย้ายเงินบนเครือข่ายบัตร เป็นของใบอนุญาตของผู้ให้บริการเองหรือพันธมิตรที่ได้รับอนุญาต เช่น ธนาคาร EMI หรือ payment institution แพลตฟอร์มถูกสร้างให้เข้ากับช่องทางที่มีใบอนุญาตซึ่งคุณนำมา และเก็บข้อมูลบัตรไว้บนช่องทางนั้นเพื่อไม่ให้ผ่านเซิร์ฟเวอร์ของคุณ แต่แพลตฟอร์มไม่ใช่ และซอฟต์แวร์ใดก็ไม่อาจใช้แทนสิทธิ์นั้นได้ เส้นแบ่งด้านกฎระเบียบอยู่ตรงไหนเป็นการตัดสินใจที่คุณทำร่วมกับพันธมิตร และสถาปัตยกรรมออกแบบมาให้วางได้เรียบร้อยไม่ว่าจะอยู่ฝั่งใดของเส้นนั้น
- 01ชั้นซอฟต์แวร์ ไม่ใช่ใบอนุญาต
- 02กิจกรรมที่ต้องมีใบอนุญาตเป็นของผู้ให้บริการหรือพันธมิตรที่ได้รับอนุญาต
- 03ข้อมูลบัตรอยู่บนช่องทาง ไม่ผ่านเซิร์ฟเวอร์ของคุณ
- 04สร้างมาให้เข้ากับช่องทางที่มีใบอนุญาตซึ่งคุณนำมา
เชื่อมต่อไปที่ไหนได้บ้าง
ตามต่อไปอีกหนึ่งเรื่อง
ทุกแนวคิดในหน้านี้มีหน้าที่อธิบายละเอียดกว่า ทั้งนิยาม ผลิตภัณฑ์ และ access band ที่ระบุว่าแต่ละระดับรวมอะไรบ้าง
Idempotency, webhook, settlement, virtual IBAN, SCA — พร้อมนิยาม
บริการที่รัน authorize และ capture
การกระทำพิเศษที่ต้องระบุเหตุผลและตรวจสอบย้อนหลังได้
มูลค่าออนเชนที่ชำระดุลต่อไปถึง IBAN
แปลงเงินเฟียตและสินทรัพย์ดิจิทัลที่ขอบของระบบ
แต่ละผลิตภัณฑ์รวมอะไรบ้าง แยกตามระดับ
อยากได้สถาปัตยกรรมสำหรับงานของคุณไหม
บอกเราว่าคุณกำลังสร้างอะไร เราจะกลับมาพร้อมการออกแบบระบบและตำแหน่งของเส้นแบ่งด้านกฎระเบียบ ไม่ใช่ pitch deck