> **Description:** This flow uses a static QR code that directs the user to the merchant's landing page for payment.

# QR to site (payment only)

**Also covered in In-person payments**

This variant is similar to the flow documented in [In-person payments -> Static QR -> Merchant Redirect QR](https://developer.vippsmobilepay.com/docs/recommended-flows/in-store/README.md#merchant-redirect-qr). The main guide covers the recommended approach where customers select products on your website.

Customer scans a static QR code posted on the vending machine, is redirected to your payment page, makes selection on the vending machine, and completes payment on your website.

Flow diagram: 5-step QR-to-merchant-site payment-only process. (1) Customer selects an item at a kiosk or vending machine. (2) Customer scans a QR sticker and merchant website opens. (3) From the website, customer selects to pay with Vipps. (4) Customer authorizes the payment request. (5) The payment is confirmed.

1. **Customer scans QR** - Customer scans the merchant redirect QR code posted on the vending machine.
1. **Redirect to payment page** - Customer lands on your payment page linked to that specific vending machine.
1. **Customer selects product** - Customer makes their selection on the physical vending machine.
1. **Initiate payment** - Create payment request with the selected amount using `userFlow: "WEB_REDIRECT"`.
1. **Customer authorizes** - Customer approves payment in their app.
1. **Capture payment** - Confirm the transaction is complete.

**Use when customers select on the machine but pay on your website**

This flow works when you don't have a customer-facing screen and want customers to make physical selections on the vending machine but complete payment through your website.

**Regulatory requirement**

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

View sequence diagram

Static QR directing to the merchant site

```mermaid
sequenceDiagram
    autonumber
    actor C as Customer
    participant M as Merchant
    participant QR as QR API
    participant ePayment as ePayment API
    participant Webhooks as Webhooks API

    QR->>C: Scan for customer ID
    M->>M: Add product to sale
    M->>ePayment: Initiate payment request with order details
    ePayment->>C: Request payment
    C->>C: Customer clicks pay
    Webhooks-->>M: Webhook with status of payment authorization
    M->>ePayment: Capture payment
    ePayment-->>M: Status of capture
    M->>M: Verify status of POS matches capture
```

  QR API scans for the customer ID.
  Merchant adds the product to the sale.
  Merchant initiates a payment request with order details via the ePayment API.
  ePayment API requests payment from the customer.
  Customer clicks pay.
  Webhooks API sends the merchant a webhook with the payment authorization status.
  Merchant captures the payment via the ePayment API.
  ePayment API returns the status of the capture.
  Merchant verifies that the POS status matches the capture.

## Technical details

- [How the QR API works with merchant redirect](https://developer.vippsmobilepay.com/docs/APIs/qr-api/how-it-works/qr-merchant-redirect-api-howitworks.md) - Visual walkthrough of the flow
- [Merchant redirect QR code](https://developer.vippsmobilepay.com/docs/APIs/qr-api/api-guide/merchant-redirect.md) - Create static QR that redirects to your website

> **Full site overview:** For every page in this documentation, read [https://developer.vippsmobilepay.com/llms.txt](https://developer.vippsmobilepay.com/llms.txt).
