This product, Klarna Payments (kpm) is deprecated. Go to the current version

Prepare your checkout for Klarna

The first step is to go through how to display the payment options from Klarna in your checkout. It’s critical that consumers recognise the Klarna brand, and that the information displayed is compliant with local market regulations. We’ll guide you through it!

Collecting consumer information

Klarna just needs the customer’s top of mind information such as billing details and in some cases, date of birth or social security number, to process an order. Most of this information you have already collected in your regular checkout process. Please make sure to check out which fields that apply in your market in our reserve amount API , so that you can collect them before placing the order with Klarna.

This section only applies to the regions:
Sweden, Norway, Finland, Germany

Payment method naming and presentation

Adding clear descriptions of the different payment methods allows consumers to understand the payment terms. We’ll now go through how to collect and use information from Klarna when rendering your checkout

How does it work?

All you need to do is send our Payment Method Service API a few basic details, such as your merchant id, total cart value and locale. The API will then respond with a JSON object that contains all the information you need to render your checkout using our visual guidelines.

1. Create the digest

In order to authenticate against the service you would need to generate a digest. This consists of values from merchant_id, currency code and secret (in this order).

The digest is a sha256 encryption of the values in a colon separated string that is then base64 encoded, as the following pseudo code suggests:

End of regional section
This section only applies to the regions:
Sweden, Norway, Finland, Germany
1
base64encode(hex(sha256("[merchant_id]:[currency]:[shared_secret]")))
End of regional section
This section only applies to the regions:
Sweden, Norway, Finland, Germany

This digest should then be added to the Authorization header of the request:

End of regional section
This section only applies to the regions:
Sweden, Norway, Finland, Germany
1
Authorization: xmlrpc-4.2 xZWJjNjI5NmRjEwZThmMzE1MA==
End of regional section
This section only applies to the regions:
Sweden, Norway, Finland, Germany

2. Make the API call

Once you have collected all the required information go ahead and make the API call:

(Note that the URL for test and production/live differ. When accessing the live environment, you need to replace https://api-test.klarna.com/ with https://api.klarna.com/ in the example below)

End of regional section
This section only applies to the regions:
Finland
1
2
3
curl "https://api-test.klarna.com/touchpoint/checkout/?merchant_id=0&currency=EUR&locale=fi_FI&total_price=10000" \
    -H "Authorization: xmlrpc-4.2 xZWJjNjI5NmRlZjEwZThmMzE1MA==" \
    -H "Accept: application/vnd.klarna.touchpoint-checkout.payment-methods-v1+json"
End of regional section
This section only applies to the regions:
Germany
1
2
3
curl "https://api-test.klarna.com/touchpoint/checkout/?merchant_id=0&currency=EUR&locale=de_DE&total_price=10000" \
    -H "Authorization: xmlrpc-4.2 xZWJjNjI5NmRlZjEwZThmMzE1MA==" \
    -H "Accept: application/vnd.klarna.touchpoint-checkout.payment-methods-v1+json"
End of regional section
This section only applies to the regions:
Sweden, Norway
1
2
3
curl "https://api-test.klarna.com/touchpoint/checkout/?merchant_id=0&currency=SEK&locale=sv_se&total_price=1000000" \
    -H "Authorization: xmlrpc-4.2 xZWJjNjI5NmRlZjEwZThmMzE1MA==" \
    -H "Accept: application/vnd.klarna.touchpoint-checkout.payment-methods-v1+json"
End of regional section
This section only applies to the regions:
Sweden, Norway, Finland, Germany

The API call would produce the following HTTP request:

End of regional section
This section only applies to the regions:
Finland
1
2
3
4
5
GET /touchpoint/checkout/?merchant_id=0&currency=EUR&locale=fi_FI&total_price=10000 HTTP/1.1
Host: api-test.klarna.com
Accept: application/vnd.klarna.touchpoint-checkout.payment-methods-v1+json
Authorization:  xmlrpc-4.2 xZWJjNjI5NmRjEwZThmMzE1MA==
User-Agent: curl/7.35.0
End of regional section
This section only applies to the regions:
Germany
1
2
3
4
5
GET /touchpoint/checkout/?merchant_id=0&currency=SEK&locale=de_de&total_price=10000 HTTP/1.1
Host: api-test.klarna.com
Accept: application/vnd.klarna.touchpoint-checkout.payment-methods-v1+json
Authorization:  xmlrpc-4.2 xZWJjNjI5NmRjEwZThmMzE1MA==
User-Agent: curl/7.35.0
End of regional section
This section only applies to the regions:
Sweden, Norway
1
2
3
4
5
GET /touchpoint/checkout/?merchant_id=0&currency=SEK&locale=sv_se&total_price=1000000 HTTP/1.1
Host: api-test.klarna.com
Accept: application/vnd.klarna.touchpoint-checkout.payment-methods-v1+json
Authorization:  xmlrpc-4.2 xZWJjNjI5NmRjEwZThmMzE1MA==
User-Agent: curl/7.35.0
End of regional section
This section only applies to the regions:
Sweden, Norway, Finland, Germany

The API will then respond with all the information that you need to render the checkout.

End of regional section
This section only applies to the regions:
Finland
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
HTTP/1.1 200 OK
Connection: close
Content-Length: 1002
Content-Type: application/vnd.klarna.touchpoint-checkout.payment-methods-v1+json; charset=utf-8
Date: Thu, 17 Jul 2014 14:29:00 GMT
ETag: W/"612-3862573905"
Server: nginx

{
"payment_methods": [
        {
            "pclass_id": 100,
            "name": "Account",
            "logo": {
                "uri": "https://cdn.klarna.com/1.0/shared/image/generic/logo/fi_fi/basic/blue-black.png"
            },
            "terms": {
                "uri": "https://cdn.klarna.com/1.0/shared/content/legal/terms/0/fi_fi/account"
            },
            "group": {
                "title": "Erämaksu",
                "code": "part_payment"
            },
            "details": {
                "annual_percentage_rate": {
                    "label": "todellinen vuosikorko",
                    "value": "1,31",
                    "symbol": "%"
                },
                "interest_rate": {
                    "label": "vuosikorko",
                    "value": "0,00",
                    "symbol": "%"
                },
                "monthly_invoice_fee": {
                    "label": "hallinnointimaksu",
                    "value": "2,95",
                    "symbol": "€"
                },
                "start_fee": {
                    "label": "perustamismaksu",
                    "value": "0,00",
                    "symbol": "€"
                },
                "monthly_pay": {
                    "label": "kuukausierä",
                    "value": "208,33",
                    "symbol": "€"
                },
                "total_credit_purchase_price": {
                    "label": "luoton kokonaissumma",
                    "value": "5 073,75",
                    "symbol": "€"
                }
            },
            "title": "Joustava Erämaksu - maksa omaan tahtiin",
            "extra_info": "...",
            "use_case": "..."
        }
    ]
}
End of regional section
This section only applies to the regions:
Germany
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
{
"payment_methods": [
        {
            "pclass_id": 100,
            "name": "Account",
            "logo": {
                "uri": "https://cdn.klarna.com/1.0/shared/image/generic/logo/de_de/basic/blue-black.png"
            },
            "terms": {
                "uri": "https://cdn.klarna.com/1.0/shared/content/legal/terms/0/de_de/account"
            },
            "group": {
                "code": "part_payment"
            },
            "details": {
                "annual_percentage_rate": {
                    "value": "11,95"
                },
                "interest_rate": {
                    "value": "14,79"
                },
                "monthly_invoice_fee": {
                    "value": "0,45"
                },
                "setup_fee": {
                    "value": "0"
                },
                "monthly_pay": {
                    "value": "44,86"
                },
                "months": {
                    "value": 3
                },
                "month": {
                    "value": "augusti"
                },
                "total_credit_purchase_cost": {
                    "value": "538,35"
                }
            },
            "title": "Flexible Laufzeit – Raten und Laufzeit selbst bestimmen",
            "extra_info": "...",
            "use_case": "..."
        }
    ]
}
End of regional section
This section only applies to the regions:
Norway
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
{
    "pclass_id": 3214,
    "name": "Account",
    "logo": {
        "uri": "https://cdn.klarna.com/1.0/shared/image/generic/logo/nb_no/basic/blue-black.png"
    },
    "terms": {
        "uri": "https://cdn.klarna.com/1.0/shared/content/legal/terms/131/nb_no/account"
    },
    "group": {
        "title": "Delbetaling",
        "code": "part_payment"
    },
    "details": {
        "interest_rate": {
            "label": "Årsrente",
            "value": "0",
            "symbol": "%"
        },
        "monthly_invoice_fee": {
            "label": "Administrajonsgebyr",
            "value": "29",
            "symbol": "kr"
        },
        "start_fee": {
            "label": "Etableringsgebyr",
            "value": "0",
            "symbol": "kr"
        }
    },
    "title": "Konto - delbetal i din egen takt",
    "extra_info": "...",
    "use_case": "..."
}
End of regional section
This section only applies to the regions:
Sweden
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
{
"payment_methods": [
        {
            "pclass_id": 100,
            "name": "Account",
            "logo": {
                "uri": "https://cdn.klarna.com/1.0/shared/image/generic/logo/sv_se/basic/blue-black.png"
            },
            "terms": {
                "uri": "https://cdn.klarna.com/1.0/shared/content/legal/terms/0/sv_se/account"
            },
            "group": {
                "code": "part_payment"
            },
            "details": {
                "annual_percentage_rate": {
                    "value": "11,1"
                },
                "interest_rate": {
                    "value": "19,9"
                },
                "monthly_invoice_fee": {
                    "value": "29"
                },
                "setup_fee": {
                    "value": "0"
                },
                "monthly_pay": {
                    "value": "583"
                },
                "months": {
                    "value": 3
                },
                "month": {
                    "value": "augusti"
                },
                "total_credit_purchase_cost": {
                    "value": "11 458"
                }
            },
            "title": "Konto - delbetala i din egen takt",
            "extra_info": "...",
            "use_case": "..."
        }
    ]
}
End of regional section
This section only applies to the regions:
Sweden, Norway, Finland, Germany

Next, we will look at how to present this data in the best way in your checkout.

End of regional section
This section only applies to the regions:
Sweden, Norway, Finland, Germany

3. Render your checkout

As you have seen above, the response returned by the Payment Method Service is a JSON object containing a object for each available payment method. The concept with this object is that you are supposed to loop through it and present each containing object the same way, whatever type of payment it is. That said, it is important to point out that even though you do present it the same way, it will look a bit different due to the containing information.

Here is a visual layout example that we will go through in this section. A full reference guide for each market is available here

End of regional section
This section only applies to the regions:
Finland

End of regional section
This section only applies to the regions:
Norway

![](/uploads/media/5838451dc04e2/CCCP_illustrations_161125_NO base.jpg)

End of regional section
This section only applies to the regions:
Germany

End of regional section
This section only applies to the regions:
Sweden

End of regional section
This section only applies to the regions:
Sweden, Norway, Finland, Germany

Grouping

The first element you need to take into consideration is the group->code value. This value tells you which group the payment option belongs to.

End of regional section

This section only applies to the regions:
Finland
<markdown> json "group": { "title": "Erämaksu", "code": "part_payment" } <markdown>
End of regional section

This section only applies to the regions:
Germany
1
2
3
4
"group": {
    "title": "Flexible Laufzeit – Raten und Laufzeit selbst bestimmen",
    "code": "part_payment"
}
End of regional section
This section only applies to the regions:
Sweden, Norway
1
2
3
4
"group": {
    "title": "Delbetaling",
    "code": "part_payment"
}
End of regional section
This section only applies to the regions:
Sweden, Norway, Finland, Germany

In theory you can present all option in a list, but from a user UX/UI perspective this will be both confusing and annoying. If there is a lot of data, it needs to be put into structure. Basically you should group each payment option into its respective group. Point A represent the grouping in the example below.

End of regional section
This section only applies to the regions:
Sweden, Norway, Finland, Germany

Klarna mainly work with two groups, invoice and part_payment, but a group called special_campaigns might also occur. You should however not focus on these variable values in general. These names might be vary. You should only focus on grouping the payment options based on the values, no matter what the names are.

Presenting the payment options:

The next step would be to present some options to the consumer. The name of the options you will present is represented by the payment options title. It will have different descriptions based on what option type it is.

End of regional section
This section only applies to the regions:
Germany
1
"title": "Flexible Laufzeit – Raten und Laufzeit selbst bestimmen"
End of regional section
This section only applies to the regions:
Norway
1
"title": "Konto - delbetal i din egen takt",
End of regional section
This section only applies to the regions:
Sweden
1
"title": "Konto - Betala i din egen takt"
End of regional section
This section only applies to the regions:
Finland
1
"title": "Joustava Erämaksu - maksa omaan tahtiin",
End of regional section
This section only applies to the regions:
Germany

There is no way to sort these options in a given way. The payment options are returned in its correct order in the JSON object, and should be presented thereafter.

In the example below, point B represents the title:

Note that you should not focus on what options to present. You should present all options available in the group. The information returned by Klarna has taken into account the value etc, and only return acceptable options.

End of regional section
This section only applies to the regions:
Sweden

There is no way to sort these options in a given way. The payment options are returned in its correct order in the JSON object, and should be presented thereafter.

In the example below, point B represents the title:

Note that you should not focus on what options to present. You should present all options available in the group. The information returned by Klarna has taken into account the value etc, and only return acceptable options.

End of regional section
This section only applies to the regions:
Norway

Also please note that in Norway, you are not allowed to display the monthly amount next to the number of months in the options list, unless you also display the detailed terms in full for each option. The title field takes care of this, and by following the visual guidelines above to ensure you comply with the local market regulations.

End of regional section
This section only applies to the regions:
Sweden, Norway, Finland, Germany

Detailed Payment Information:

For each payment option, there is a set of information that needs to be presented. This is important both from a legal perspective and a for transparency towards consumers. We want the consumer to understand what payment type they are selecting and what it implies. Detailed Payment Information consists of three parts that you must present:

  1. details (D,E,F,G)
  2. use_case (H)
  3. terms (I)

Note that in the example you can see that the title is used on top of the payment details. This is done because of the structure of the example checkout. If you had presented the payment details directly below the option you selected, it would make less sense. Also note that all the information in the payment details should have the same weight to its presentation. That means that you should not make any text larger or bolder than the other.

End of regional section
This section only applies to the regions:
Norway

End of regional section
This section only applies to the regions:
Finland

![](/uploads/media/586674bd33af9/CCCP_illustrations_160816_FI-baseac new.jpg)

End of regional section

Part 1 - Details

When presenting the details you shall not focus on what information that this object contains (D,E,F,G in example above). The actual content is not relevant. What you need to focus on is how you present it.

This section only applies to the regions:
Germany
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
"details": {
    "interest_rate": {
        "label": "Jahreszins",
        "value": "18,07",
        "symbol": "%"
    },
    "monthly_invoice_fee": {
        "label": "Rechnungsgebühr",
        "value": "29",
        "symbol": "EUR"
    },
    "start_fee": {
        "label": "Bearbeitungsgebühren",
        "value": "0",
        "symbol": "EUR"
    }
},
End of regional section
This section only applies to the regions:
Sweden, Norway
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
"details": {
    "interest_rate": {
        "label": "Årsrente",
        "value": "0",
        "symbol": "%"
    },
    "monthly_invoice_fee": {
        "label": "Administrajonsgebyr",
        "value": "29",
        "symbol": "kr"
    },
    "start_fee": {
        "label": "Etableringsgebyr",
        "value": "0",
        "symbol": "kr"
    }
},
End of regional section
This section only applies to the regions:
Finland
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
"details": {
                "annual_percentage_rate": {
                    "label": "todellinen vuosikorko",
                    "value": "1,31",
                    "symbol": "%"
                },
                "interest_rate": {
                    "label": "vuosikorko",
                    "value": "0,00",
                    "symbol": "%"
                },
                "monthly_invoice_fee": {
                    "label": "hallinnointimaksu",
                    "value": "2,95",
                    "symbol": "€"
                },
                "start_fee": {
                    "label": "perustamismaksu",
                    "value": "0,00",
                    "symbol": "€"
                },
                "monthly_pay": {
                    "label": "kuukausierä",
                    "value": "208,33",
                    "symbol": "€"
                },
                "total_credit_purchase_price": {
                    "label": "luoton kokonaissumma",
                    "value": "5 073,75",
                    "symbol": "€"
                }
End of regional section
This section only applies to the regions:
Germany

The concept with the details is that you loop through the objects and present all its content in the same way: <label> <value><symbol>. This way you ensure the dynamic capabilities of the PMS is kept. If there new information needs to be added, Klarna can just add it to the object. By handling the object this way it does not matter what kind of payment option this is (part payment, invoice etc) because the object only contains relevant information.

Part 2 - Use case

The use_case should be presented after the details. This is done to further enhance the understanding of what the customer is accepting.

For example:

Verfügungsrahmen ab 199,99 € (abhängig von der Höhe Ihrer Einkäufe), effektiver Jahreszins 18,07%* und Gesamtbetrag 218, 57€* (*bei Ausnutzung des vollen Verfügungsrahmens und Rückzahlung in 12 monatlichen Raten je 18,21 €).

End of regional section
This section only applies to the regions:
Norway

The concept with the details is that you loop through the objects and present all its content in the same way: <label> <value><symbol>. This way you ensure the dynamic capabilities of the PMS is kept. If there new information needs to be added, Klarna can just add it to the object. By handling the object this way it does not matter what kind of payment option this is (part payment, invoice etc) because the object only contains relevant information.

Part 2- Use case

The use_case should be presented after the details. This is done to further enhance the understanding of what the customer is accepting.

For example:

Ved for eksempel et kjøp på 5000 kr med Klarna konto basisvilkår tilkommer det ingen etableringsgebyr. Årsrenten er 22 % og nedbetaling over 12 måneder på 513 kr stk har en effektiv rente på 48,56 %. Total kredittkjøpspris er 6156 kr.

End of regional section
This section only applies to the regions:
Sweden, Finland

The concept with the details is that you loop through the objects and present all its content in the same way: <label> <value><symbol>. This way you ensure the dynamic capabilities of the PMS is kept. If there new information needs to be added, Klarna can just add it to the object. By handling the object this way it does not matter what kind of payment option this is (part payment, invoice etc) because the object only contains relevant information.

Part 2- Use case

The use_case should be presented after the details. This is done to further enhance the understanding of what the customer is accepting.

End of regional section

Part 3 - Terms

The last part of the presentation is the terms.

This section only applies to the regions:
Germany

Part 3 - Terms

This section depends slightly on which payment methods you offer. Please check the full reference PDF guide for all payment methods available on this page to ensure you display and collect the details necessary in each case.

Terms and Conditions

Klarna’s terms and conditions for the method needs to be displayed in relation to the purchase. This text shall link to other pages as follows:

  • Weitere Informationen: is included in the response from Klarna under the variable terms.uri.
1
2
3
"terms": {
    "uri": "https://cdn.klarna.com/1.0/shared/content/legal/terms/131/de_de/account"
},

Make sure this text is separated from the consent privacy policy text (I)

Consent privacy policy text

This text asks the customer to approve a transfer of their personal data to Klarna (3rd party) upon purchase so Klarna may do a credit check on them.

Mit der Übermittlung der für die Abwicklung der gewählten Klarna Zahlungsmethode und einer Identitäts– und Bonitätsprüfung erforderlichen Daten an Klarna bin ich einverstanden. Meine Einwilligung kann ich jederzeit mit Wirkung für die Zukunft widerrufen. Es gelten die AGB des Händlers.

This text shall link to other pages as follows:

Please note:

  • This box cannot be pre checked.
  • The customer cannot place the order with Klarna without checking this box.
End of regional section
This section only applies to the regions:
Sweden, Norway
1
2
3
"terms": {
    "uri": "https://cdn.klarna.com/1.0/shared/content/legal/terms/131/nb_no/account"
},
End of regional section
This section only applies to the regions:
Finland
1
2
3
"terms": {
    "uri": "https://cdn.klarna.com/1.0/shared/content/legal/terms/0/fi_fi/account"
},
End of regional section
This section only applies to the regions:
Sweden, Norway, Finland

This is basically a link to Klarnas Terms and Conditions information. To increase the user experience you should make the information show in a popup. You do not want to link this page in a way that leads the consumer away from the checkout. To read more about terms and conditions, visitthis page .

End of regional section
This section only applies to the regions:
Denmark, Netherlands, Austria

Terms & Conditions

Klarna’s consumer terms and conditions is a mandatory implementation in all payment method integrations. Find out what to display in your e-store here

End of regional section
This section only applies to the regions:
Finland, Denmark, Netherlands, Austria

Logotypes for brand awareness

Presenting our logos next to the payment methods will help your consumer get a quick overview of the different payment methods available. You can obtain all our graphical assets with instructions on how to use them under Logos .

End of regional section
This section only applies to the regions:
Denmark, Netherlands, Austria

Payment method naming and presentation

Adding clear descriptions of the different payment methods allows consumers to understand the payment terms. You can find all this in our Guidelines section.

End of regional section

Presentation of order amount and buy button text

Lastly, a few words on the presentation of order amount and the buy button in relation to consumers paying with Klarna’s fixed or flexible part payment options.

Order amount

When presenting the complete order amount in your checkout, make sure to use words and phrases which are not confusingly similar to the amount which is the total credit purchase price for a consumer choosing to use part payment. This means e.g. that “total amount” should not be used. Instead “order amount”, “cash price” or similar are better suited, adapted to your local language.

Buy button

Similarly, the text on your buy button should also always clearly reflect that an order is being placed. Please note that there might be local regulatory requirements as to what it should state.

Great!

You are now ready for the next step, to prepare the back-end call to Klarna. Let’s check out what you need to do before you create the order .