Klarna Docs - In-Store Payments Overview for Acquiring Partners

Klarna Payments for In-store brings the convenience and flexibility of Klarna’s digital payment solutions into physical retail environments. Acquiring Partners can enable their connected Partners to integrate via a server-side solution, allowing them to offer Klarna payments in-store using existing infrastructure such as card terminals, kiosks, or mobile checkouts.

In this setup, the Partner interacts with the Acquiring Partner’s APIs to retrieve a list of available Klarna payment methods and generate a Klarna payment QR code, which is then presented to the customer for seamless in-store checkout.

Klarna In-store supports purchases through a Scan QR flow, allowing customers to complete their payment using their mobile device. A unique QR code is generated for each payment session and displayed on a consumer-facing screen, such as a card terminal, tablet (e.g., iPad), mobile checkout device, or self-checkout screen.
The typical flow looks like this:

  1. The Partner generates a unique QR code for the payment session.
  2. The code is displayed on an in-store device.
  3. The customer scans the QR code using their smartphone to complete the Klarna checkout experience.

[ADD TABLE WITH IMAGES OF A IN-STORE FLOW]

Partners may also generate QR codes independently using a URL-based generator, which is helpful when custom branding, sizing, or placement is needed.

These QR codes must always be unique per payment session to ensure accurate transaction processing.

To support Klarna in-store setup, Acquiring Partners are expected to:

  • Ensure the store has either of:
    • POS terminal, a card terminal where QR code can be displayed
    • digital consumer-facing screen, such as a self-checkout, an iPad, or a mobile checkout device, on which the QR codes can be displayed
  • Review the implemented customer experience thoroughly to verify compliance with Klarna’s requirements for displaying and promoting Klarna Payment Services.
  • Allow Partners to submit interoperability data points and ensure these are handled according to Klarna’s interoperability standards.
  • Support Klarna’s Step-Up flow, which may be triggered during payment authorization for additional customer verification.

Required components

  • A server-side API that Partners can use to request a Payment with Klarna.
  • A payment server to initiate requests to Klarna’s Payment Authorize API.
  • A webhook listener to receive and process Klarna’s asynchronous payment status updates.

Klarna In-store can be integrated with card terminal or with customer facing digital screen, such as kiosk, iPad, etc. Depending on the hardware please choose corresponding integration guidelines.

POS checkout integration

Card terminal with Klarna QR

  1. The customer is making a purchase in a physical store.
  2. The customer selects Klarna as the preferred payment method by verbally communicating this to the cashier.
  3. The Acquiring Partner calls Klarna’s Payment Authorize API, forwarding the interoperability data points provided by the Partner. The Acquiring Partner returns a Klarna QR code for the Partner to launch the Klarna Purchase Journey.
  4. The Acquiring Partner monitors the status of the Klarna payment asynchronously using Webhooks.
  5. Upon successful completion of the Klarna purchase journey, the Acquiring Partner calls the Payment Authorize API a second time to finalize the transaction.
sequenceDiagram autonumber participant C as Customer participant S as Sales Person participant P as Partner participant AP as Acquiring Partner participant K as Klarna C->>S: Visit checkout counter S->>P: Initiates payment flow to display Klarna QR alt Partner integrates Klarna SDK directly P->>K: Request Klarna payment presentation Note over P,K: Share store specific data points else Partner uses Acquiring Partner APIs P->>AP: Request available payment methods Note over P,AP: Share store specific data points AP->>K: Request Klarna payment presentation Note over AP,K: Share store specific data points end P->>AP: Create payment session Note over P,AP: Share store specific data points AP->>K: Authorize payment (initial) Note over AP,K: Share store specific data points alt Step-up required K->>AP: Return payment request for step-up Note over K,AP: Klarna QR code and request ID AP->>P: Return payment session Note over P,AP: Forward Klarna QR code and request ID P->>P: Launch Klarna purchase journey by scanning QR C->>K: Complete purchase on Klarna K->>AP: Webhook notification Note over K,AP: Payment request completed AP->>K: Authorize payment (final) K->>AP: Payment APPROVED AP->>P: Webhook notification Note over P,AP: Order completed AP->>C: Print physical receipt else Transaction approved K->>AP: Payment APPROVED AP->>P: Respond with approval Note over P,AP: Order completed P->>C: Print physical receipt else Transaction declined K->>AP: Payment DECLINED AP->>P: Respond with decline Note over P,AP: Payment declined P->>C: Redirect to checkout page Note over C,P: Communicate that purchase is declines to customer end
Implementation checklist

Self-service checkout

POS terminal with Klarna QR

  1. The customer is making a purchase in a physical store.
  2. When customer makes purchase via self checkout or kiosk then the Partner displays a payment selector to the customer, with Klarna listed as a payment method. This can be implemented using one of the following approaches:
    1. Retrieve the Payment Presentation instructions directly from Klarna.
    2. Obtain a list of supported payment methods and descriptors from the Acquiring Partner (if available).
  3. The Acquiring Partner calls Klarna’s Payment Authorize API, forwarding the interoperability data points provided by the Partner. The Acquiring Partner returns a Klarna QR code for the Partner to launch the Klarna Purchase Journey.
  4. The Acquiring Partner monitors the status of the Klarna payment asynchronously using Webhooks.
  5. Upon successful completion of the Klarna purchase journey, the Acquiring Partner calls the Payment Authorize API a second time to finalize the transaction.
sequenceDiagram autonumber participant C as Customer participant S as Self Checkout participant P as Partner participant AP as Acquiring Partner participant K as Klarna C->>S: Visit self checkout in store S->>P: Initiates payment flow alt Partner integrates Klarna SDK directly P->>K: Request Klarna payment presentation Note over P,K: Share store specific data points else Partner uses Acquiring Partner APIs P->>AP: Request available payment methods Note over P,AP: Share store specific data points AP->>K: Request Klarna payment presentation Note over AP,K: Share store specific data points end P->>P: Display payment selector C->>P: Select Klarna and click Pay button P->>AP: Create payment session Note over P,AP: Share store specific data points AP->>K: Authorize payment (initial) Note over AP,K: Share store specific data points alt Step-up required K->>AP: Return payment request for step-up Note over K,AP: Klarna payment QR code and request ID AP->>P: Return payment session Note over P,AP: Forward Klarna payment QR code and request ID P->>P: Launch Klarna purchase journey by scanning QR C->>K: Complete purchase on Klarna K->>AP: Webhook notification Note over K,AP: Payment request completed AP->>K: Authorize payment (final) K->>AP: Payment APPROVED AP->>P: Webhook notification Note over P,AP: Order completed AP->>C: Print physical receipt else Transaction approved K->>AP: Payment APPROVED AP->>P: Respond with approval Note over P,AP: Order completed P->>C: Print physical receipt else Transaction declined K->>AP: Payment DECLINED AP->>P: Respond with decline Note over P,AP: Payment declined P->>C: Redirect to checkout page Note over C,P: Display error message to customer end
Implementation checklist