Skip to main content

Dynamic QR payment

Also covered in In-person payments

This flow is also documented in In-person payments → Customer-facing screen, which covers all point-of-sale scenarios including vending machines, kiosks, and retail checkouts.

Customer selects a product at the point of sale, a dynamic QR code appears on the screen, and they scan it to pay in the Vipps MobilePay app.

User scans QR, pays, and gets receipt

  1. Customer selects product - Customer makes selection at the POS or vending machine.
  2. Generate dynamic QR - Create a one-time payment QR code and payment request with userFlow: "QR".
  3. Display QR code - Show the QR on the customer-facing screen (valid for 10 minutes).
  4. Customer scans and pays - Customer scans the QR and authorizes payment in their app.
  5. Capture payment - Confirm the transaction is complete.
Recommended for customer-facing screens

This is the preferred flow when you have a customer-facing screen at your Point of Sale. It eliminates the need for customers to enter their phone number, reducing errors and speeding up payments.

Regulatory requirement

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

View sequence diagram

Dynamic QR directing to the app

  1. Merchant generates a dynamic QR code and payment request with order details via the ePayment API.
  2. Merchant displays the one-time QR code to the customer.
  3. Customer scans the QR code and selects to pay.
  4. Webhooks API sends the merchant a webhook with the payment authorization status.
  5. Merchant captures the payment via the ePayment API.
  6. ePayment API returns the status of the capture.
  7. Merchant verifies that the POS status matches the capture.

Technical details​