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:
The Partner generates a unique QR code for the payment session.
The code is displayed on an in-store device.
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
The customer is making a purchase in a physical store.
The customer selects Klarna as the preferred payment method by verbally communicating this to the cashier.
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.
The Acquiring Partner monitors the status of the Klarna payment asynchronously using Webhooks.
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
The customer is making a purchase in a physical store.
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:
Retrieve the Payment Presentation instructions directly from Klarna.
Obtain a list of supported payment methods and descriptors from the Acquiring Partner (if available).
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.
The Acquiring Partner monitors the status of the Klarna payment asynchronously using Webhooks.
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