Klarna

Intro
As Klarna offer various payment methods, multiple paymentProductId exist. Find all possible values in the table below.
Klarna offers a global payment solution, enabling customers to shop now and pay later.
Klarna's flexible options — Pay Now, Pay Later, and Financing — enhance the checkout experience, improving conversion rates and satisfaction.
By integrating Klarna, you offer a seamless, secure payment process that aligns with consumer preferences, reducing cart abandonment and increasing sales.
Offer this exceptional payment experience to all your customers all over the world:
Payment method category |
Description | PaymentProductId | Country availability |
---|---|---|---|
Pay Now |
Combined (Direct Bank Transfer + Direct Debit) & Pay by Card |
3301 |
Austria |
Pay Now |
Direct Bank Transfer only Your customers make a transfer to Klarna sometime after the purchase, but you will get the funds right away. |
3304 |
Austria |
Pay Now |
Direct Debit only Klarna debits your customer’s bank account sometime after the purchase, but you will get the funds right away. |
3305 |
Austria |
Pay Later |
Pay in 30 days Your customers will pay after the purchase, but you will get the funds right away. |
3302 |
Austria |
Pay Later B2B (Billie) |
A B2B variant of Pay Later/Pay Later (Pay in 3). Allow your B2B customers to split payments using various flexible options, but you will get the right away. |
3302 |
Austria |
Pay in 3/4 |
Allow your customers to split payments into smaller interest-free payments. Only available for merchants with a specific contractual agreement with Klarna. |
- |
- |
Fair Financing (Instalments) |
Financing (3, 6, 12, 24, 36 months) Allow your customers to split payments over a 6 – 36 month-period using the Klarna app, but you will get the full amount right away. |
3303 |
Austria |
During the payment process, Klarna suggests all available payment methods according to your customers' location and your contract with Klarna.
Populate field hostedCheckoutSpecificInput.locale to indicate the location and language with any of the values Klarna offers. Mind the following:
- Klarna offers different locations/languages than our Hosted Checkout Page .
- If you send a language not available on our platform, the Hosted Checkout Page is translated into English. You can avoid the intermediate redirection to our platform: Send your customers to the Klarna portal directly by using property
paymentProductFilters.restrictTo.products
.
Integration
Redirect your customers to the Klarna payment portal via our Hosted Checkout Page. Find a high level overview in the "Process flows" chapter.
Add the following properties to a standard CreateHostedCheckout request:
{
"order":{
"amountOfMoney":{
"currencyCode":"EUR",
"amount":2980
},
"shipping":{
"address":{
"name":{
"title":"Miss",
"firstName":"Road",
"surname":"Runner"
},
"street":"Neptunusstraat",
"houseNumber":"13b",
"zip":"2132JA",
"city":"Hoofddorp",
"countryCode":"NL"
}
},
"customer":{
"personalInformation":{
"name":{
"title":"Mr.",
"firstName":"Wile",
"surnamePrefix":"E.",
"surname":"Coyote"
},
"dateOfBirth":"19490917"
},
"locale":"en-NL",
"billingAddress":{
"street":"Neptunusstraat",
"houseNumber":"13b",
"zip":"2132JA",
"city":"Hoofddorp",
"countryCode":"NL"
},
"contactDetails":{
"emailAddress":"Johnia.Doe@outlook.com",
"phoneNumber":"0636469107"
}
},
"shoppingCart":{
"items":[
{
"amountOfMoney":{
"currencyCode":"EUR",
"amount":2500
},
"invoiceData":{
"description":"ACME Super Outfit"
},
"orderLineDetails":{
"productName":"ACME12",
"discountAmount":0,
"productCode":"ASO45",
"productPrice":500,
"productType":"CLOTH",
"quantity":5,
"taxAmount":0,
"unit":"piece"
}
},
{
"amountOfMoney":{
"currencyCode":"EUR",
"amount":480
},
"invoiceData":{
"description":"Asperin"
},
"orderLineDetails":{
"productName":"ASPIRIN",
"discountAmount":0,
"productCode":"ASP01",
"productPrice":480,
"productType":"MEDIC",
"quantity":1,
"taxAmount":0,
"unit":"piece"
}
}
]
}
},
"hostedCheckoutSpecificInput":{
"returnUrl":"https://yourShopUrl.com"
},
"redirectPaymentMethodSpecificInput":{
"paymentProductId":3301
}
}
Properties | Remarks |
---|---|
order.customer.contactDetails |
Your customer's e-mail address/phone number. |
order.shipping.address.name |
Your customer's shipping address. |
order.customer |
Your customer's personal information. |
hostedCheckoutSpecificInput.locale |
The language version of our Hosted Checkout Page and the Klarna portal. Mind that Klarna supports different languages than our Hosted Checkout Page. |
billingAddress |
Your customer's billing address. |
shoppingCart.items |
The content of the shopping cart as an array of items objects. amountOfMoney.amount: The full amount of the items, calculated as orderLineDetails.productPrice X orderLineDetails.quantity . Make sure to calculate the value for order.amountOfMoney.amount by adding up all instances of shoppingCart.items.amountOfMoney.amount . |
.hostedCheckoutSpecificInput.returnUrl |
returnUrl : The URL we redirect your customers to after the payment has been finalised. |
redirectPaymentMethodSpecificInput.paymentProductId |
The numeric identifier of the payment method on our platform. It instructs our platform to send your customers directly to the Klarna portal. If omitted, our platform sends your customers to the Hosted Checkout Page instead, allowing them to choose this or any other payment method that is active in your account. |
Find detailed information about this object and its properties in our CreateHostedCheckoutAPI.
When processing Klarna transactions, keep the following in mind:
- Klarna does not support direct sale transactions (authorisations and data capture in one go). For each order, Klarna estimates a delivery date and issues a due invoice at the agreed date. Capture the transaction after you have sent the goods to your customers.
- Klarna allows you to perform partial and full refunds and to cancel authorisation.
Process flows
- Your customers finalise an order in your shop and select Klarna.
- You send this CreateHostedCheckout to our platform.
- You redirect your customers via the redirectUrl to the Klarna portal. They select their preferred payment method and confirm the order with their credentials.
- We receive the transaction result.
- We redirect your customer to your returnUrl.
- You request the transaction result from our platform via GetHostedCheckout or receive the result via webhooks.
- If the transaction was successful, you can deliver the goods / services.
Testing
Refer to our Test cases for test data and detailed instructions.
Make sure to use the right endpoint and switch back to the live URL as soon as you have finished your tests.
Additional information
Integration with Billie
Billie is a B2B variant of Pay Later/Pay Later (Pay in 3), offering both you and your customers various benefits (i.e. individual payment arrangements, protection from payment defaults).
The integration is almost identical to other Klarna payment methods, but requires you to add property order.customer.companyInformation.name to your CreateHostedCheckout request:
{
"hostedCheckoutSpecificInput": {
"locale": "de_DE",
"returnUrl": "https://yourReturnUrl.com"
},
"order": {
"amountOfMoney": {
"amount": 6108,
"currencyCode": "EUR",
"taxAmount": 0
},
"customer": {
"type": "organization",
"organization_entity_type": "REGISTERED_SOLE_TRADER",
"organization_registration_id": "HRB 934855",
"vat_id": "DE812345678",
"companyInformation": {
"name": "Zeta Electronics Gold GmbH"
},
"billingAddress": {
"city": "Haslach im Kinzigtal",
"countryCode": "DE",
"houseNumber": "4",
"street": "Tannenweg",
"zip": "77716"
},
"personalInformation": {
"name": {
"title": "Mr.",
"firstName": "Wile",
"surnamePrefix": "E.",
"surname": "Coyote"
}
},
"contactDetails": {
"emailAddress": "test@test.de",
"mobilePhoneNumber": "+43123456789"
},
"locale": "de_AT",
"personalInformation": {
"name": {
"firstName": "Jack",
"surname": "Black",
"title": "Male"
}
}
},
"discount": {
"amount": 0
},
"shipping": {
"address": {
"city": "Haslach im Kinzigtal",
"countryCode": "DE",
"houseNumber": "4",
"name": {
"firstName": "Test",
"surname": "Test",
"title": "Male"
},
"street": "Tannenweg",
"zip": "77716"
},
"emailAddress": "test@test.de",
"method": {
"name": "DELIVERY"
},
"shippingCost": 500
},
"shoppingCart": {
"items": [
{
"amountOfMoney": {
"amount": 1018,
"taxAmount": 0,
"currencyCode": "EUR"
},
"invoiceData": {
"description": "+20% Reservierung"
},
"orderLineDetails": {
"productName": "+20% Reservierung",
"productPrice": 1018,
"productType": "+20% Reservierung",
"quantity": 1,
"taxAmount": 0,
"taxRate": 0
}
},
{
"amountOfMoney": {
"amount": 4590,
"taxAmount": 0,
"currencyCode": "EUR"
},
"invoiceData": {
"description": "Your-description"
},
"orderLineDetails": {
"productCode": "00-636234",
"productName": "Hendrick's Gin",
"productPrice": 4590,
"productType": "Getränke",
"quantity": 1,
"unit": "Flasche",
"taxAmount": 0,
"taxRate": 0
}
}
]
}
}
}
- Mind that Billie shares the same paymentProductId=3302 with Pay Later/Pay Later (Pay in 3).
- If any of the Billie-specific properties are missing or incorrect, our platform will process your request as a standard Pay Later/Pay Later (Pay in 3) transaction.
Testing
- To perform test transactions, you need to have an agreement with Klarna to use Billie.
- Use the JSON sample in the "Integration with Billie" chapter to perform tests.
Make sure to use the right endpoint and switch back to the live URL as soon as you have finished your tests.