Skip to main content
Skip to main content


In this document, you’ll learn how to integrate Klarna as a payment provider in Medusa.


Following the release of v1.8 of the core Medusa package, the naming of payment providers have changed to payment processors with the introduction of the Payment Processor API. However, plugins or implementation that still don't implement the Payment Processor API are still called payment providers.


Klarna is a payment provider that allows customers to pay in different ways including direct payment, installment payments, payment after delivery, and more.

You can integrate Klarna into Medusa using the official plugin.


Medusa Components

It is assumed that you already have a Medusa backend installed and set up. If not, you can follow the quickstart guide.

In addition, you’ll need to use the Medusa Admin to enable the payment provider in later steps. You can alternatively use the REST APIs.

Needed Accounts

Install Plugin

On your Medusa backend, run the following command to install the plugin:

npm install medusa-payment-klarna

Then, add the following environment variables:



  • <YOUR_KLARNA_BACKEND_URL> is your Klarna URL.
  • <YOUR_KLARNA_URL> is the base Klarna URL based on your environment.
  • <YOUR_KLARNA_USER> and <YOUR_KLARNA_PASSWORD> are your API credentials.
  • <YOUR_KLARNA_TERMS_URL>, <YOUR_KLARNA_CHECKOUT_URL>, and <YOUR_KLARNA_CONFIRMATION_URL> are the terms, checkout, and confirmation URL of your Klarna account.

Finally, in medusa-config.js, add the Klarna plugin to the plugins array with the necessary configurations:

const plugins = [
// other plugins...
resolve: `medusa-payment-klarna`,
options: {
backend_url: process.env.KLARNA_BACKEND_URL,
url: process.env.KLARNA_URL,
user: process.env.KLARNA_USER,
password: process.env.KLARNA_PASSWORD,
merchant_urls: {
terms: process.env.KLARNA_TERMS_URL,
checkout: process.env.KLARNA_CHECKOUT_URL,
confirmation: process.env.KLARNA_CONFIRMATION_URL,

Enable Klarna in Regions

To use Klarna in your store, you must enable it in at least one region.

You can follow this user guide to learn how to enable a payment provider in a region. You can alternatively use the REST APIs.

See Also

Was this section helpful?