Point of Sale Integration
Open Pay supports in-person crypto payments at retail locations. This guide covers how to integrate Open Pay into a point-of-sale (POS) terminal or kiosk using the API.How It Works
Integration Steps
Create a Payment
When the cashier finalizes the sale, your POS application calls the API to create a payment.
Set a shorter
ttl (time-to-live) for POS payments. 600 seconds (10 minutes) is a good default for in-person transactions. The maximum is 1800 seconds (30 minutes).Display the QR Code
Use the Alternatively, the checkout page itself renders a QR code. You can display the
checkout_url from the response to render a QR code on the POS display. Customers scan it with their crypto wallet.checkout_url in a webview on the customer-facing screen.Wait for Payment Confirmation
Poll the payment status or use webhooks to detect when the customer pays.
- Polling (Simpler)
- Webhooks (Recommended)
Poll
GET /v1/payments/:id every 3-5 seconds until the status reaches a terminal state.Handle Timeout and Expiration
Display a countdown timer alongside the QR code. If the payment expires, give the cashier the option to create a new payment or cancel the sale.
Example: Retail Store Flow
Here is a typical interaction at a retail checkout:1. Cashier scans items and totals the sale
1. Cashier scans items and totals the sale
The POS system calculates the total: $12.50. The cashier selects “Pay with Crypto” as the payment method.
2. QR code appears on customer-facing display
2. QR code appears on customer-facing display
The POS calls
POST /v1/payments and renders a QR code. The display shows: “Scan to pay $12.50 in USDT, USDC, or BNB.”3. Customer scans and confirms in wallet
3. Customer scans and confirms in wallet
The customer opens Trust Wallet or MetaMask, scans the QR, reviews the amount, and confirms the transaction.
4. Payment confirms in ~30 seconds
4. Payment confirms in ~30 seconds
The POS polls the API (or receives a webhook). After 12 block confirmations on BSC (~36s), the screen shows “Payment Confirmed” with a green checkmark.
5. Receipt prints automatically
5. Receipt prints automatically
A receipt prints with the store name, amount, token used, and the on-chain transaction hash as proof of payment.
Branch Management
If your business has multiple locations, use the Branches API to organize payments by store:branch_id in payment metadata to track revenue per location in the Merchant Portal.
Hardware Recommendations
Customer Display
Any screen capable of rendering a QR code. Tablets, secondary monitors, or dedicated customer-facing displays all work.
Internet Connection
A stable internet connection is required. Use a wired connection for reliability, with mobile data as fallback.
Receipt Printer
Standard thermal receipt printers (ESC/POS compatible) work for printing transaction details.
Barcode Scanner
Optional. Useful if the customer shows a wallet address QR for refunds or loyalty tracking.