This section of the guide walks you through initiating a payment and letting your customers pay with Klarna.
When your customer wants to pay with Klarna, you have to open a payment session and share the shopping cart details in a POST request to the {apiURL}/payments/v1/sessions endpoint. In that request, you also specify if the payment is one-time or recurring.
Once you start a payment session, it stays open for 48 hours or until you place an order. You can also send a separate POST request to cancel the session.
Klarna payments API uses HTTP basic authentication. To authenticate, use your API credentials that consist of:
A username linked to your Klarna merchant ID (MID)
A password associated with your username
If you're using an API platform that lets you store your credentials, you can add them in relevant fields. Otherwise, make sure to include the Base64-encoded username:password in the Authorization header field of each API request, as shown below.
JSON
1
2
Authorization: Basic pwhcueUff0MmwLShJiBE9JHA==
A sample authorization request header with Base64-encoded credentials.
To get a success response, include the following required parameters in your POST {apiURL}/payments/v1/sessions request.
Parameter
Description
locale
The language of information presented on the Klarna widget. Learn more about using locale in API calls.
purchase_countryrequired
The country where the purchase is made. Learn more about supported countries.
purchase_currencyrequired
The currency in which the customer is charged. Learn more about supported currencies.
order_amountrequired
The total price of the order, including tax and discounts.
order_linesrequired
The details of order lines in the purchase.
intent
The purpose of the payment session.
merchant_urls.authorization
Get a callback once the customer has completed the flow and you can create an order.
We recommend you don't include customer details when initiating a payment session. Instead, use the authorize() call to share them with Klarna at a later stage of the checkout process when the customer clicks Buy.
As we already mentioned, you can use Klarna payments in a variety of payment scenarios. Depending on the scenario, add the right value in the intent field of the request.
For one-time payments, set intent to buy.
For recurring payments:
Set intent to tokenize if you don't want to place an order at checkout.
Set intent to buy_and_tokenize if you want to place the first order at checkout.
Set intent to buy_and_default_tokenize if you want to place the first order at checkout and add an additional service at the same time.
The intent you set for a session determines the steps you need to take when creating an order later in the process.
payment_method_categories, an array that lists the grouped Klarna payment methods available for the session. We can respond with one or more categories depending on the market and account configuration.
A sample error response caused by incorrect order line details.
Go to Error Handling to learn more about common errors and troubleshooting suggestions. You can use the value in correlation_id to find entries related to the request under Logs in the Merchant portal.