Klarna
Klarna is a global payments and shopping service that enables consumers to pay online using flexible payment options. Your consumers can quickly complete purchases using saved payment details and choose how to pay while also accessing tools to track spending and manage their finances.
Before you begin
Ensure you complete the following before you proceed:
- Onboard as a merchant with J.P. Morgan. Contact your relationship manager if you are an existing client or contact Sales if you are a new client.
- Onboard the Notifications API to receive notifications for Klarna transactions.
Availability
| Payment method | Payment type | Consumer country | Merchant country | Supported presentment currencies |
|---|---|---|---|---|
| Klarna | Wallet | AT, AU, BE, CA, CH, CZ, DE, DK, ES, FI, FR, GB, GR, HU, IE, IT, MX, NL, NO, NZ, PL, PT, RO, SE, SK, US | US | USD |
How Klarna works
The Klarna payment process follows these steps:
- Your consumer selects Klarna as their preferred method of payment from your checkout page.
- You return the redirect URL to your consumer’s browser.
- The consumer is automatically redirected to Klarna’s hosted payment page for authentication.
- Once the consumer is authenticated, they select the payment program of their choice.
- Klarna approves the payment and returns the consumer to your website to complete the order.
- J.P. Morgan processes the payment transactions and displays the confirmation of a successful transaction on the payment result page.
- A notification is sent to you containing all the relevant information.
Payment programs
Klarna offers the following payment programs to your consumers.
| Payment programs | Description |
|---|---|
| Pay in full | Consumers pay for the order immediately in a single payment. |
| Pay later | Consumers pay for the order in a single payment within 30 days. |
| Pay in N | Consumers pay for the purchase in three or four interest-free installments. Note: The total transaction amount is typically spread equally across the installments, but Klarna might occasionally charge your consumer more in the first installment based on the consumer's purchase power and other credit factors. |
| Financing | Consumers pay for the purchase over a longer term of up to 36 months, which might include interest. Note: Not all consumers are approved for the maximum amount, and approval is subject to credit worthiness. |
Presenting Klarna in your payment form
Present Klarna in your payment form by performing the following steps:
- Integrate the Klarna web SDK.
- Initialize Klarna web SDK in your checkout experience.
- Request Klarna’s payment presentation for the current payment context.
- Render Klarna payment program(s) dynamically in the payment form according to the instructions.
- Allow the customer to select and deselect a Klarna payment program.
- Display the Klarna button and start the payment process when clicked.
For a full step by step guide including best practices, refer to the Klarna Docs.
Conversion features
You can implement Klarna’s Conversion features with your payments. These features should be implemented directly on your online store using the guidelines provided in Klarna Docs and the Klarna Partner Portal:
For conversion features, make sure to add the interoperability-token returned by the Klarna web SDK to the POST /payments call.
- Token type (paymentMetadataList.metadataAttribute) - The type of token or key (i.e. Interoperability-token)
- Token value (paymentMetadataList.metadataAttributeValue) - The value for the token.
Settlement funding
Transaction funding occurs in the same currency as presentment. Klarna sends the settlement file to J.P. Morgan, and we handle settlement processing.
Refunds
Klarna supports full and partial refunds, which allows you to refund up to 3 years after the payment completes.
How refunds work:
- Klarna cancels any remaining payments on a refunded amount and returns the already-paid amount to the consumer.
- You can also issue multiple partial refunds up to the amount of the original amount.
- Partial refunds update the order to reflect the new total amount.
- If the partial refund is greater than the remaining balance of the order, Klarna deducts the refund amount from the outstanding balance and returns the difference.
- If the partial refund is less than the remaining balance of the order, Klarna deducts the amount from the outstanding balance and spreads refunds evenly across the remaining payments.
For more information on how to refund a transaction, refer to Refund a payment.
Supplementary purchase data
You can enhance the consumer experience by including the Supplementary Purchase Data (SPD) in your payment request. This enables more accurate pre-assessment of eligibility, reduces false declines, and helps present the most suitable payment programs. SPD consists of the following fields:
retailAddenda.level3.lineItems[]shipTo[]accountHolder[]merchantOrderNumber
For more information on Klarna's decision engine and guidelines, refer to the Klarna Docs.
Payment parameters
The following fields are required for Klarna transactions. All required (R) and conditionally required (CR) fields must be included for a request to be successful, while optional (O) fields increase the approval rate and add extra functionality to a request.
| Field name | Description | R, O, or CR | Comments |
|---|---|---|---|
captureMethod |
This value determines whether the payment is captured immediately, after a delay (default is 120 minutes), or manually with a separate API call. If excluded, the payment is captured immediately.
|
O | |
initiatorType |
The party who actively initiates the payment, and is related to the Merchant Initiated Framework (MIT). If this field is not provided in the request, it defaults to CARDHOLDER.
|
O | For Klarna transactions, the initiatorType must be MERCHANT. |
|
Total monetary value of the payment including all taxes and fees. | R | |
|
Identifier of the currency for the amount fields. This is the 3 character ISO 4217 currency code. | R | |
merchant.merchantSoftware. |
The company name of the software integrated to this API. If merchant is directly integrated, send JPMC. | R | |
merchant.merchantSoftware.productName |
The name of the product used for marketing purposes from the consumer's perspective. | R | |
accountOnFile |
The value indicates if the merchant maintains the consumer's payment credentials for returning/recurring purchases. Valid values are:
|
O | |
accountHolder.firstName |
The personal name or given name and generally positioned before the last name or family name. | O | |
accountHolder.lastName |
The last name of the account holder. | O | |
accountHolder.email |
The email address of the account holder. | O | |
accountHolder.billingAddress.line1 |
The first line of the street address. | O | |
accountHolder.billingAddress.line2 |
The second line of the street address. | O | |
accountHolder.billingAddress.postalCode |
The portion of a party’s address that is the encoded representation of a geographic area to facilitate mail delivery services. | O | |
accountHolder.billingAddress.city |
The municipality name. | O | |
accountHolder.billingAddress.state |
The name of the state or province. | O | |
accountHolder.billingAddress.countryCode |
The country code of the address based on Alpha 3 ISO standards. | O | |
accountHolder.nationalId |
Identifier of the consumer or business assigned by a government authority. |
CR |
|
accountHolder.countryOfNationality |
The country code of the account holder in the format - ISO 3166-1 alpha-2. | CR | Required field if nationalId is provided. |
shipTo.firstName |
The part of an individual's full name considered a personal name or given name and generally positioned before the last name or family name. | O | |
shipTo.lastName |
The last name or surname. | O | |
shipTo.fullName |
The full name of the account holder. | O | |
shipTo.email |
The email address of the account holder. | O | |
shipTo.shippingDescription |
The description of shipping or delivery method. | O | |
shipTo.shippingCarrierName |
The third-party delivery service that ships the merchant’s products to customers. | O | |
shipTo.shippingAddress.line1 |
The first line of a street address. | O | |
shipTo.shippingAddress.line2 |
The second line of the street address. | O | |
shipTo.shippingAddress.city |
The municipality name. | O | |
shipTo.shippingAddress.state |
The state or province name. | O | |
shipTo.shippingAddress.postalCode |
The portion of a party’s address that is the encoded representation of a geographic area to facilitate mail delivery services. | O | |
shipTo.shippingAddress.countryCode |
The country code of the address based on Alpha 3 ISO standards. | O | |
retailAddenda.level3.lineItems.lineItemDescriptionText |
The description of the item purchased. | O | |
retailAddenda.level3.lineItems.unitPriceAmount |
The monetary value of the per-item cost of a good or service. | O | |
retailAddenda.level3.lineItems.lineItemUnitQuantity |
The number of units purchased. | O | |
retailAddenda.level3.lineItems.taxInclusiveLineItemTotalAmount |
The monetary value (inclusive of tax) for the price of the product or service multiplied by the quantity of the items purchased, recorded in the transaction addendum data. | O | |
retailAddenda.taxAmount |
The monetary value of the tax amount assessed to the payment. | O | |
retailAddenda.isTaxable |
Indicates whether tax has been added to the payment. | O | |
merchantOrderNumber |
A unique merchant assigned identifier for the confirmation of goods and/or services purchased. | O | |
paymentMetadataList.metadataAttribute |
The label or type of the token key attribute when used in a key-value pair. Allowed value is:
|
CR |
|
paymentMetadataList.metadataAttributeValue |
The textual description of the token value when used in a key-value pair. | CR |
|
paymentMethodType.klarna.redirectedPayment. |
Information on where the consumer needs to be redirected after payment process completion. Ensure that the URL begins with https. | R |
The following is a sample payload of a Klarna payment request with the interoperability-token.
HTTP Method: POST
Endpoint: /payments
Scenario: Sending a payment request to Klarna with metadataAttributeValue = Interoperability-token
{
"captureMethod": "NOW",
"amount": 100,
"currency": "USD",
"merchant": {
"merchantSoftware": {
"companyName": "Payment Company",
"productName": "Application Name",
"version": "1.235"
}
},
"initiatorType": "MERCHANT",
"accountOnFile": "NOT_STORED",
"paymentMethodType": {
"klarna": {
"preferredLanguage": "en_US",
"redirectedPayment": {
"merchantReturnUrl": "https://merchantreturnurl.com"
}
}
},
"merchantOrderNumber": "5450378-030124055633",
"accountHolder": {
"billingAddress": {
"line1": "123 example street",
"line2": "Apartment 3b",
"city": "Swansea",
"state": "MA",
"postalCode": "33626",
"countryCode": "USA"
},
"firstName": "Nadia",
"lastName": "Nadja",
"nationalId": "123-45-6789",
"countryOfNationality": "US",
"email": "abc.abc@chase.com"
},
"shipTo": {
"shippingAddress": {
"line1": "123 example street",
"line2": "Apartment 3b",
"city": "Swansea",
"state": "MA",
"postalCode": "33626",
"countryCode": "USA"
},
"firstName": "Nadia",
"lastName": "Nadja",
"fullName": "Nadia Nadja",
"email": "abc.abc@chase.com",
"shippingDescription": "TC",
"shippingCarrierName": "DHL"
},
"retailAddenda": {
"level3": {
"lineItems": [
{
"lineItemDescriptionText": "lineItemDescription",
"unitPriceAmount": 9000,
"lineItemUnitQuantity": "1",
"taxInclusiveLineItemTotalAmount": 9000
}
]
},
"taxAmount": 100,
"isTaxable": true
},
"paymentMetadataList": [
{
"metadataAttribute": "Interoperability-Token",
"metadataAttributeValue": "eyadnl565465454kfjkldsj"
}
]
}Response:
{
"transactionId": "07c0e89b-be73-4c32-82eb-a492bd8fd936",
"requestId": "95fbc223-cbf2-4bd6-ab4e-2c639b570106",
"transactionState": "CLOSED",
"responseStatus": "SUCCESS",
"responseCode": "APPROVED",
"responseMessage": "Transaction approved",
"paymentMethodType": {
"klarna": {
"preferredLanguage": "en_US",
"redirectedPayment": {
"merchantReturnUrl": "https://merchantreturnurl.com"
}
}
},
"captureMethod": "NOW",
"captureTime": "2026-03-17T12:25:44.508Z",
"initiatorType": "MERCHANT",
"accountOnFile": "NOT_STORED",
"isVoid": false,
"transactionDate": "2026-03-17T12:25:44.508Z",
"isAmountFinal": true,
"amount": 100,
"currency": "USD",
"remainingRefundableAmount": 100,
"remainingAuthAmount": 10,
"merchantOrderNumber": "5450378-030124055633",
"hostReferenceId": "krn:payment:us1:transaction:9c8a8fbb-1c1b-4b2d-a3a4-799bddfe3c93",
"merchant": {
"merchantId": "997051471867",
"merchantSoftware": {
"companyName": "Payment Company",
"productName": "Application Name",
"version": "1.235"
},
"merchantCategoryCode": "5047"
},
"shipTo": {
"shippingDescription": "TC"
},
"retailAddenda": {
"taxAmount": 100,
"isTaxable": true,
"level3": {
"lineItems": [
{
"lineItemDescriptionText": "test",
"lineItemUnitQuantity": "1",
"unitPriceAmount": 9000,
"taxInclusiveLineItemTotalAmount": 9000
}
]
}
},
"paymentRequest": {
"paymentRequestId": "07c0e89b-be73-4c32-82eb-a492bd8fd936",
"paymentRequestStatus": "CLOSED",
"authorizations": [
{
"authorizationId": "07c0e89b-be73-4c32-82eb-a492bd8fd936",
"amount": 100,
"transactionStatusCode": "CAPTURED",
"authorizationType": "INITIAL",
"transactionTimestamp": "2026-03-17T12:25:44.508Z"
}
],
"captures": [
{
"captureId": "07c0e89b-be73-4c32-82eb-a492bd8fd936",
"amount": 100,
"transactionStatusCode": "CLOSED",
"captureRemainingRefundableAmount": 100,
"referencedAuthorizationIdentifier": "07c0e89b-be73-4c32-82eb-a492bd8fd936"
}
]
}
}