Skip to content

QR Payments

QR Sessions are designed for face-to-face commerce — POS terminals, kiosks, market stalls. The merchant generates a QR; the customer scans with their wallet.

  1. Merchant POS calls POST /v1/qr/sessions with amount, currency, network.
  2. Response includes image_url (PNG) and deeplink (ethereum:, solana: URI).
  3. Merchant displays the QR; customer scans with their crypto wallet.
  4. Customer’s wallet pre-fills the destination + amount.
  5. On confirmation, ParaSta sends qr.session.completed and payment.succeeded webhooks.

QR sessions are bound to one network/token. If you accept multiple, render multiple QRs (one per network) — most wallet apps only understand one URI scheme.

expires_in (default 600 seconds) controls how long the QR is valid. After expiration, scans get a “session expired” UX in the wallet.

POST /v1/qr/sessions · GET /v1/qr/sessions/{id}