Skip to main content

QR to app

Also covered in In-person payments

This flow is also documented in In-person payments → Static QR → Merchant Callback QR, which covers unmanned location scenarios including vending machines, trust shops, and self-service kiosks.

Customer scans a static QR code posted on the vending machine, approves a maximum amount in their app, makes their product selection, and is charged only for what they selected.

User scans QR, pays, and gets receipt

  1. Customer scans QR - Customer scans the merchant callback QR code posted on the vending machine.
  2. Receive callback - Your system receives a webhook with the customer token.
  3. Initiate payment - Send payment request for the maximum amount (most expensive item) with userFlow: "WEB_REDIRECT".
  4. Customer authorizes - Customer approves the reserved amount in their app.
  5. Customer makes selection - Customer selects the product on the vending machine.
  6. Capture actual amount - Capture only the amount for the selected product (partial capture).
  7. Cancel remaining - Release the unused reserved amount.
Use when you don't have a screen

This flow works for unmanned locations without customer-facing screens where you can't display a dynamic QR code.

Regulatory requirement

Per regulations, specify "customerInteraction": "CUSTOMER_PRESENT".

View sequence diagram

Static QR directing to the app

  1. Merchant creates a Merchant Callback QR code via the QR API.
  2. Customer scans the QR code.
  3. Webhooks API notifies the merchant of the scan.
  4. Merchant adds the product to the sale.
  5. Merchant initiates a payment request with order details via the ePayment API.
  6. ePayment API requests payment from the customer.
  7. Customer clicks pay.
  8. Webhooks API sends the merchant a webhook with the payment authorization status.
  9. Merchant captures the amount due via the ePayment API.
  10. ePayment API returns the status of the capture.
  11. Merchant cancels the remaining reserved amount (releases it) via the ePayment API.
  12. Merchant attaches order details showing the amount paid via the Order Management API.

Technical details​