Klarna Docs - Initiate an in-store payment

Initiate an in-store payment

This section of the guide walks you through initiating a payment and letting your customers pay with Klarna in your physical store.

To let your customer pay with Klarna in a physical store, start a new Klarna payments session by sending a POST request to the {apiURL}/payments/v1/sessions endpoint.

Sample request

To start an in-store payment session, include the following in your request:

  • the acquiring_channel parameter set to in_store to indicate the payment will happen in a physical store
  • the distribution object, including the distribution method and the URL that will receive status updates
    "acquiring_channel": "in_store",
    "purchase_country": "us",
    "purchase_currency": "usd",
    "locale": "en-US",
    "merchant_reference1": "ON4711",
    "order_amount": 20000,
    "order_tax_amount": 0,
    "order_lines": [

A sample request to initiate an in-store payment session.

ParameterTypeRequired or optionalDescription
methodstringThe distribution method. Supported values are:
  • qr if you want customers to scan a QR code on your own device
  • payment_link if you want to generate your own QR code, for example, if you're using a terminal provided to you by a payment partner
callback_urlsobjectoptionalInclude this object if you want to use a webhook instead of polling to get the distribution result.
status_updatestringoptionalThe URL to which the distribution status updates will be sent.

Success response

In response to your request, you receive:

  • session_id, a payment session identifier.
  • payment_method_categories, an array that lists the available payment methods. This information is returned by the API, but you don’t need to take any actions related to it.
  • the distribution object, containing result_url with the URL of the QR code you can display to the customer, or the payment link you can use to generate a QR code.
    "session_id" : "{session_id}",
    "payment_method_categories": [
            "identifier": "pay_later",
            "name": "Pay later.",
            "asset_urls": {
                "descriptive": "https://x.klarnacdn.net/payment-method/…",
                "standard": "https://x.klarnacdn.net/payment-method/…"

A sample success response to initiate an in-store payment session request.

Once you've created a new session and received the distribution URL, display the QR code to the customer, so they can complete the payment.