รับชำระด้วยคริปโต ณ จุดขาย
การรับชำระด้วยคริปโต ณ จุดขาย หมายถึงลูกค้าที่เคาน์เตอร์จ่ายด้วยสินทรัพย์ดิจิทัล อาจเป็นสเตเบิลคอยน์อย่าง USDC หรือเหรียญอย่าง BTC และคุณซึ่งเป็นร้านค้าได้รับเงินเป็นยูโร สินทรัพย์ที่ลูกค้าส่งกับเงินที่คุณได้รับเป็นคนละสิ่ง เชื่อมกันด้วยราคาที่กำหนด ณ ชั่วขณะที่แตะจ่าย ไม่มีอะไรในเครื่องคิดเงิน สมุดบัญชี หรือบัญชีธนาคารของคุณรู้เลยว่ามีคริปโตเข้ามาเกี่ยวข้อง เครื่องแสดงราคาเป็นยูโร ลูกค้าสแกนโค้ด และอีกไม่กี่วินาทีต่อมาการขายก็ปิดเป็นยูโร เป็นรายการบรรทัดเดียวกับที่เกิดขึ้นเมื่อจ่ายด้วยบัตร คริปโต ณ จุดขายเป็นเพียงช่องทางชำระเงิน ไม่ใช่การเปลี่ยนแปลงทางบัญชี และการรักษาให้เป็นเช่นนั้นคือโจทย์วิศวกรรมทั้งหมด
ควรพูดถึงกรอบคิดนี้ก่อน เพราะความสับสนส่วนใหญ่เกี่ยวกับการชำระเงินด้วยคริปโตเกิดจากการรวมสองคำถามที่ควรแยกกัน คือลูกค้าจ่ายอย่างไร และร้านค้าเก็บเงินสกุลอะไร เมื่อแยกสองอย่างนี้ออกจากกัน เรื่องที่เหลือก็ตามมาเอง
โจทย์ที่ต้องแก้จริง ๆ
ร้านค้าต้องการยอดขาย ไม่ใช่ความผันผวน ไม่อยากสิ้นวันโดยถือสินทรัพย์ที่มีมูลค่าไม่แน่นอน และไม่อยากให้ฝ่ายบัญชีต้องจัดการสองสกุลเงินอยู่ดี ๆ ต้องการราคาที่คงที่ระหว่างแตะจ่ายกับใบเสร็จ เงินเป็นยูโร และการกระทบยอดที่หน้าตาเหมือนวันที่ขายด้วยบัตรทุกวัน ร้านที่รับคริปโตแบบไม่ได้ออกแบบมาจะไม่ได้อะไรเลยจากนี้ ต้องรับสินทรัพย์ที่ราคาขยับขณะลูกค้ายังตัดสินใจ เก็บไว้ในกระเป๋า และรับสกุลเงินที่สองเข้ามาในบัญชีให้ใครสักคนต้องประเมินมูลค่าและแปลงด้วยมือ เป้าหมายการออกแบบจึงแคบและเข้มงวด คือทำให้คริปโตปรากฏในจุดเดียวเท่านั้น คือช่วงเวลาชำระเงิน และมองไม่เห็นที่อื่นทั้งหมด
แตะครั้งเดียว: QR ราคาที่ล็อก และรายการเป็นยูโร
ลองดูขั้นตอนที่เคาน์เตอร์ แคชเชียร์คิดเงินตะกร้า €24.00 เครื่องแสดงยอดรวมเป็นยูโรและสร้างโค้ด QR ที่เข้ารหัสคำขอ ได้แก่ จำนวนเงิน ที่อยู่ปลายทางหรือ invoice และรหัสราคาที่มีอายุสั้น ลูกค้าสแกนด้วยกระเป๋าของตนเอง เห็นสิ่งที่กำลังจะส่งอย่างชัดเจน แล้วกดยืนยัน เครื่องเฝ้าดูเครือข่ายเพื่อรอการโอนนั้น และเมื่อยืนยันแล้วจึงพิมพ์ใบเสร็จเป็นยูโร ในมุมของแคชเชียร์ จังหวะเหมือนบัตรทุกประการ คือยอดรวม แสดงโค้ด อนุมัติ ใบเสร็จ ไม่มีใครหลังเคาน์เตอร์ต้องพิมพ์ที่อยู่หรืออ่านยอดคงเหลือเป็นสกุลอื่นนอกจากยูโร
การฝังคำขอไว้ใน QR คือสิ่งที่ทำให้ส่งให้โทรศัพท์ของคนแปลกหน้าได้อย่างปลอดภัย จำนวนเงินและปลายทางเดินทางมาในโค้ดพร้อม checksum ลูกค้าจึงพิมพ์ผิดจนจ่ายผิดที่อยู่หรือผิดจำนวนไม่ได้ เป็นแนวคิดเดียวกับ identity-by-construction ฝั่งการเก็บเงิน เพียงนำมาใช้ที่เคาน์เตอร์ โค้ดที่สแกนได้คือโค้ดที่ถูกต้อง ไม่มีช่องพิมพ์อิสระให้ผิดพลาด
ชำระเป็นยูโร เพื่อให้บัญชีไม่ต้องรู้จักคริปโต
ระหว่างสินทรัพย์ที่ลูกค้าส่งกับยูโรที่ร้านค้าเก็บ มีการแปลงสกุลเงินคั่นอยู่ และตำแหน่งที่มันอยู่คือหัวใจของเรื่องทั้งหมด ลูกค้าส่ง USDC หรือ BTC แพลตฟอร์มแปลงและเครดิตเข้าบัญชีร้านค้าเป็น EUR สมุดบัญชีของร้านเห็นเพียงเครดิตเป็นยูโรและบรรทัดค่าธรรมเนียมเป็นยูโร รูปแบบเดียวกับการชำระเงินจากบัตร เพราะสินทรัพย์ถูกแปลงที่แพลตฟอร์ม ไม่ได้ค้างอยู่ในกระเป๋าที่ร้านต้องดูแลเอง เมื่อสิ้นวัน บัญชีเป็นยูโรตลอดทาง ไม่มีตะกร้าเหรียญให้ประเมินมูลค่า ไม่มีสกุลเงินที่สองในบัญชี และไม่มีอะไรต้องถอนออกเป็นเงินสดเช้าวันจันทร์
หน้าที่ของลูกค้าคือจ่ายด้วยสิ่งที่ตนถืออยู่ หน้าที่ของร้านค้าคือทำบัญชีในสกุลเงินเดียว จุดขายที่ชำระคริปโตเป็นยูโรก็คือเครื่องที่ไม่ปล่อยให้สองเรื่องนี้มาพบกันเลย
ล็อกอัตราแลกเปลี่ยน ไม่ต้องไล่ตาม
ความผันผวนคือสิ่งที่น่ากลัว และราคาที่ล็อกพร้อมนับถอยหลังคือคำตอบ เมื่อเครื่องแสดงราคาเป็นยูโร ก็กำหนดราคาที่ใช้ได้ภายในกรอบเวลาที่ระบุไว้ด้วย ซึ่งเป็นเวลาไม่กี่วินาที ลูกค้าจ่ายภายในกรอบนั้นตามราคานั้น และยูโรที่ร้านค้าได้รับก็คือยูโรที่เห็นบนหน้าจอ ไม่ใช่สิ่งที่ตลาดขยับไปขณะกระเป๋ากำลังโหลด หากกรอบเวลาหมดก่อนที่ลูกค้าจะยืนยัน เครื่องจะเสนอราคาใหม่ มีโค้ดใหม่ นับถอยหลังใหม่ และราคาใหม่ที่ระบุชัดเจน ไม่มีการเลื่อนไหลแบบเงียบ ๆ ร้านค้าไม่ต้องรับความเสี่ยงจากการเปลี่ยนแปลงระหว่างแตะจ่ายกับยืนยัน ความเสี่ยงนั้นอยู่กับผู้กำหนดราคา ไม่ใช่เจ้าของร้านที่แค่อยากขายกาแฟ
เมื่อลูกค้าช้า หรือเครื่องออฟไลน์
เครือข่ายสะดุดและร้านค้าสูญเสียการเชื่อมต่อได้ พฤติกรรมเมื่อออฟไลน์จึงต้องเรียบง่ายโดยเจตนา มีสองกรณี เมื่อลูกค้าช้า ราคาจะหมดอายุและเสนอราคาใหม่ การชำระเงินจะยืนยันภายในกรอบเวลาหรือไม่เกิดขึ้นเลย ไม่มีการขายที่ทำค้างไว้ให้ต้องแก้ไข เมื่อตัวเครื่องออฟไลน์ ยังแสดงคำขอสำหรับจำนวนเงินที่ทราบแล้วได้ แต่ไม่สามารถกำหนดราคาใหม่หรือยืนยันการชำระได้ จึงพักรายการเป็นสถานะรอดำเนินการ และกระทบยอดเมื่อเชื่อมต่อกลับมา แทนที่จะแสร้งว่าสำเร็จ หลักการสำคัญคือใบเสร็จพิมพ์เมื่อยืนยันแล้ว ไม่ใช่เมื่อหวังว่าจะสำเร็จ ใบเสร็จเป็นยูโรหมายความว่ายูโรถูกบันทึกครบถ้วนแล้ว และรายการขายที่เครื่องยืนยันไม่ได้จะยังเปิดค้างและมองเห็นได้ในคอนโซลผู้ปฏิบัติงาน ไม่หายไปอย่างเงียบ ๆ
จุดที่เครื่องรูดบัตรพบกับ gateway
เคาน์เตอร์คือหน้าด่านแบบเจอตัวของสแตกรับชำระเงินเดียวกับที่ทำงานออนไลน์ การแตะจ่ายคริปโตแบบ card-present กับ checkout แบบ pay-by-link คือเหตุการณ์เดียวกันเบื้องหลัง ได้แก่ คำขอ การชำระเงิน การชำระบัญชีเป็นยูโร และใบเสร็จ เพียงแสดงผลบนคนละพื้นผิว ร้านค้าจึงกระทบยอดคริปโตหน้าร้านและออเดอร์ออนไลน์ในที่เดียว เป็นยูโร ด้วยบรรทัดค่าธรรมเนียมและไฟล์ส่งออกเดียวกัน แทนที่จะต้องมีสองชุดบัญชีมาเย็บรวมกันตอนสิ้นเดือน เครื่องรูดบัตรอยู่ที่ /products/pos ฝั่งออนไลน์บนรางเดียวกันอยู่ที่ /products/gateway และคำศัพท์ทั้งหมด ไม่ว่า quote, settlement, acquirer หรือ reconciliation มีนิยามอยู่ใน /glossary
เส้นแบ่งที่พูดกันตรง ๆ
หากไม่มีใครที่เคาน์เตอร์ของคุณอยากจ่ายด้วยคริปโต เครื่องรับคริปโตก็เป็นคำตอบของปัญหาที่คุณไม่มี รับบัตรแล้วเดินหน้าต่อไป เครื่องนี้คุ้มค่าเมื่อลูกค้าส่วนหนึ่งของคุณถือสินทรัพย์ดิจิทัลอยู่แล้ว และอยากใช้จ่ายมากกว่าต้องถอนออกก่อน เช่น เส้นทางท่องเที่ยวบางแห่ง กลุ่มคนออนไลน์เป็นหลักบางกลุ่ม หรือบางภูมิภาคที่สเตเบิลคอยน์คือวิธีที่ผู้คนถือเงินสำหรับใช้จ่ายอยู่แล้ว ในที่เหล่านั้น การปฏิเสธการแตะจ่ายคือการปฏิเสธยอดขาย กลไกข้างต้น ทั้ง QR ราคาที่ล็อก การชำระเป็นยูโร และกฎยืนยันก่อนออกใบเสร็จ คือสิ่งที่ทำให้คุณรับยอดขายนั้นได้โดยไม่ต้องแบกความผันผวน สกุลเงินที่สอง หรือโปรเจกต์บัญชีเพิ่ม คริปโตเป็นเรื่องของลูกค้า ส่วนยูโรเป็นของคุณ
มีระบบที่ต้องสร้างไหม
บอกเราว่าปัญหาคืออะไร แล้วเราจะกลับมาพร้อมสถาปัตยกรรมและแผนงาน