POS mode
Create instant payment requests with QR codes for in-person transactions.
What is POS mode?
POS (point-of-sale) mode is designed for in-person payments. You create a payment request, display a QR code, and the customer scans it to pay immediately. Payments are automatically verified via the Trails verification engine.
POS payments have a short expiry window, making them ideal for retail, food service, and other face-to-face transactions where the customer is present.
Creating a POS payment
Open the payment form
From the dashboard, tap New Payment. The payment creation form opens.
Enter the amount
Type the payment amount in your display currency (e.g. $25.00). JoPay converts this to USDC using the current FX rate and displays the USDC equivalent.
Add a description (optional)
Enter an optional description or memo (e.g. "Table 4 lunch"). This appears on the customer's payment page and in your payment history.
Share the QR code or link
After creating the payment, JoPay displays:
- QR code — Show this on your screen. The customer scans it with their phone camera or wallet app.
- Payment link — Copy and send via messaging or email if the customer is not physically present.
Customer pays
The customer opens the payment page, connects their wallet, selects a chain, and sends the exact USDC amount to your wallet address. The page guides them through each step.
Automatic verification
Once the customer submits the transaction, JoPay's Trails engine watches the blockchain for the transfer. When the transfer is verified on-chain and matches the payment request (correct amount, asset, recipient, and chain), the payment status updates to Verified.
You will see the status change in real time on your dashboard. No manual action is needed.
Expiry
POS payments have a short expiry window. If the customer does not pay before the payment expires, the status changes to Expired and the payment can no longer be used. You can create a new payment request if needed.
Tips for POS usage
- Keep the QR code screen visible to the customer until the payment is verified.
- Use clear descriptions so you can identify payments in your history later.
- If a payment expires before the customer can pay, simply create a new one. The expired payment remains in your history for reference.
- The customer does not need a JoPay account. They only need a wallet with USDC on a supported chain.