Ghi chép thực địa

Chấp nhận tiền mã hóa tại điểm bán hàng

Chấp nhận tiền mã hóa tại điểm bán hàng nghĩa là khách đứng ở quầy của bạn thanh toán bằng tài sản số, một stablecoin như USDC hay một đồng coin như BTC, còn bạn, với tư cách merchant, được ghi có bằng euro. Tài sản khách gửi và số tiền bạn nhận là hai thứ khác nhau, nối với nhau bằng một báo giá được chốt đúng lúc khách quét. Máy tính tiền, sổ sách hay tài khoản ngân hàng của bạn không hề biết có tiền mã hóa tham gia. Thiết bị hiển thị giá bằng euro, khách quét mã, vài giây sau giao dịch hoàn tất bằng euro, trên cùng một dòng như khi thanh toán thẻ. Tiền mã hóa ở điểm bán hàng là một phương thức thanh toán, không phải một thay đổi kế toán, và giữ cho nó đúng như vậy chính là toàn bộ bài toán kỹ thuật.

Cần nói rõ cách đặt vấn đề này trước, vì phần lớn sự nhầm lẫn về thanh toán bằng tiền mã hóa đến từ việc gộp hai câu hỏi lẽ ra phải tách riêng: khách thanh toán bằng cách nào, và merchant giữ loại tiền nào. Tách chúng ra thì phần còn lại sẽ tự rõ.

Bài toán thực sự cần giải

Merchant muốn bán được hàng, không muốn biến động giá. Họ không muốn cuối ngày ôm một giỏ tài sản có giá trị bấp bênh, cũng không muốn kế toán đột nhiên phải làm việc với hai loại tiền. Họ muốn giá được cố định từ lúc quét đến lúc in biên lai, tiền nhận bằng euro, và đối soát trông giống mọi ngày bán thẻ khác. Một cửa hàng chấp nhận tiền mã hóa một cách ngây thơ sẽ không có gì trong số đó: họ nhận một tài sản có giá thay đổi trong lúc khách còn đang quyết định, để nó trong ví, và thừa hưởng thêm một loại tiền trong sổ sách mà ai đó phải định giá và quy đổi thủ công. Vì vậy mục tiêu thiết kế hẹp và nghiêm ngặt: chỉ để tiền mã hóa hiện ra ở đúng một nơi, lúc thanh toán, và vô hình ở mọi nơi khác.

Một lần quét: mã QR, báo giá khóa, một dòng euro

Hãy đi qua luồng thanh toán tại quầy. Thu ngân tính tiền giỏ hàng €24.00. Thiết bị hiển thị tổng tiền bằng euro và tạo mã QR chứa yêu cầu thanh toán: số tiền, địa chỉ đích hoặc hóa đơn, và một mã báo giá có hiệu lực ngắn. Khách quét mã bằng ví của mình, thấy chính xác số sắp gửi, rồi xác nhận. Thiết bị theo dõi mạng để chờ giao dịch chuyển đó và khi được xác nhận thì in biên lai bằng euro. Phía thu ngân, nhịp làm việc giống hệt thanh toán thẻ: tổng tiền, xuất trình, duyệt, biên lai. Không ai sau quầy phải gõ địa chỉ hay đọc số dư bằng thứ gì khác ngoài euro.

Đặt yêu cầu thanh toán bên trong mã QR là điều giúp việc đưa cho điện thoại của một người lạ trở nên an toàn. Số tiền và địa chỉ đích nằm trong mã, có kiểm tra checksum, nên khách không thể trả nhầm địa chỉ hay nhầm số tiền do gõ sai, cũng cùng một cách làm như định danh theo thiết kế ở phía thu tiền, áp dụng ngay tại quầy. Mã quét được là mã đúng; không có ô nhập tự do nào để nhập sai.

Quyết toán về euro, để sổ sách không bao giờ biết đến tiền mã hóa

Giữa tài sản khách gửi và số euro merchant giữ là bước quy đổi, và vị trí của nó chính là mấu chốt. Khách gửi USDC hoặc BTC; nền tảng quy đổi và ghi có vào tài khoản của merchant bằng EUR. Sổ cái của merchant chỉ thấy một khoản ghi có bằng euro và một dòng phí bằng euro, cùng hình dạng với một khoản quyết toán thẻ, vì tài sản được quy đổi tại nền tảng, không bị để lại trong một chiếc ví mà merchant phải tự quản lý. Cuối ngày, sổ sách là euro từ đầu đến cuối. Không có giỏ coin nào để định giá, không có loại tiền thứ hai trong tài khoản, và không có gì phải off-ramp vào sáng thứ Hai.

Việc của khách là trả bằng bất cứ thứ gì họ đang giữ. Việc của merchant là giữ sổ sách trong một loại tiền. Điểm bán hàng quyết toán tiền mã hóa về euro chính là chiếc máy giữ cho hai điều đó không bao giờ chạm nhau.
— Protocore · Kỹ thuật thanh toán

Tỷ giá được khóa, không phải đuổi theo

Nỗi lo là biến động giá, và câu trả lời là một báo giá được khóa kèm đồng hồ đếm ngược. Khi thiết bị hiển thị giá euro, nó cũng chốt một báo giá có hiệu lực trong một khoảng thời gian nêu rõ, vài giây. Khách thanh toán trong khoảng đó, theo báo giá đó, và số euro merchant được ghi có chính là số euro trên màn hình, không phải bất cứ gì thị trường làm trong lúc ví đang tải. Nếu hết hạn trước khi khách xác nhận, thiết bị báo giá lại: một mã mới, đồng hồ mới, một mức giá mới rõ ràng, tuyệt đối không âm thầm trượt giá. Merchant không bao giờ chịu rủi ro biến động giữa lúc quét và lúc xác nhận; rủi ro đó thuộc về bên chốt báo giá, không phải ông chủ quán chỉ muốn bán một ly cà phê.

Khi khách chậm, hoặc thiết bị mất kết nối

Mạng có thể chậm và cửa hàng có thể mất kết nối, nên cách xử lý offline phải được thiết kế để nhàm chán một cách có chủ đích. Có hai trường hợp. Khi khách chậm, báo giá đơn giản là hết hạn và được báo lại: một giao dịch hoặc được xác nhận trong khoảng thời gian cho phép hoặc không xảy ra, không có giao dịch dở dang nào cần hoàn tác. Khi bản thân thiết bị offline, nó vẫn có thể hiển thị yêu cầu cho một số tiền đã biết, nhưng không thể chốt báo giá mới hay xác nhận quyết toán, nên giữ giao dịch ở trạng thái chờ và đối soát khi kết nối lại, thay vì giả vờ thành công. Quy tắc chủ đạo là biên lai in khi đã xác nhận, không bao giờ in theo hy vọng: một biên lai euro nghĩa là số euro đã được hạch toán, còn giao dịch thiết bị không xác nhận được vẫn mở và hiển thị trong bảng điều khiển vận hành thay vì lặng lẽ biến mất.

Nơi thiết bị gặp gateway

Quầy thu ngân là gương mặt trực tiếp của cùng một hệ thống chấp nhận thanh toán chạy trực tuyến. Một lần quét tiền mã hóa tại quầy và một thanh toán checkout qua liên kết thực chất là cùng một sự kiện: yêu cầu, thanh toán, quyết toán euro, biên lai, chỉ khác bề mặt hiển thị. Vì vậy merchant đối soát tiền mã hóa tại cửa hàng và đơn hàng trực tuyến ở cùng một nơi, bằng euro, với cùng các dòng phí và cùng định dạng xuất dữ liệu, thay vì giữ hai bộ sổ rồi phải ghép lại vào cuối tháng. Thiết bị nằm ở /products/pos; phía trực tuyến của cùng hạ tầng này là /products/gateway; còn các thuật ngữ như báo giá, quyết toán, acquirer, đối soát được giải thích tại /glossary.

Ranh giới rõ ràng

Nếu không ai ở quầy của bạn muốn trả bằng tiền mã hóa, thiết bị tiền mã hóa là lời giải cho một vấn đề bạn không có, hãy nhận thẻ và đi tiếp. Nó chỉ xứng đáng khi một bộ phận khách hàng đáng kể của bạn đã nắm giữ tài sản số và muốn tiêu luôn thay vì off-ramp trước: một số tuyến du lịch, một số nhóm khách quen dùng online, một số khu vực nơi stablecoin đơn giản là cách người ta giữ tiền để chi tiêu. Ở những nơi đó, từ chối cú quét là từ chối đơn hàng. Cơ chế nêu trên, gồm mã QR, báo giá khóa, quyết toán về euro và quy tắc xác nhận trước khi in biên lai, cho phép bạn nhận đơn hàng đó mà không phải gánh biến động giá, loại tiền thứ hai hay một dự án kế toán. Tiền mã hóa là chuyện của khách; euro vẫn là của bạn.

Bạn có hệ thống cần xây dựng?

Hãy cho chúng tôi biết vấn đề. Chúng tôi sẽ quay lại với kiến trúc và kế hoạch.