Skip to content
5.0 Upwork, 100+ reviews Adobe Certified since 2021 New: become your own Magento developer Learn more →
Magento glossary

What is Klarna for Magento?

Short answer Klarna for Magento adds the Swedish Buy Now, Pay Later (BNPL) provider to the Magento checkout through the official Klarna_Kp module. Shoppers can split a purchase with Pay in 3 (3 interest-free instalments), Pay in 4 (US), Pay Later in 30 days or Financing over 6-36 months. Klarna takes the credit risk and pays the merchant upfront, usually on a T+1 to T+3 schedule. It works in 25+ countries, and the case for it is strongest on stores with higher order values.

How it works
  1. Composer-install the Klarna Payments module 01
  2. Wire your Klarna API credentials in admin 02
  3. Customer picks Klarna at checkout: soft credit check runs 03
  4. Klarna pays the merchant upfront, then chases the customer 04
  5. Webhooks keep Magento and Klarna order state in sync 05
Each step is explained below

Most common mistake Enabling Klarna without modelling the fee delta

How it works

Five steps from composer-install to live BNPL checkout

Magento talks to Klarna through a module, a credential pair per store and signed webhooks. This is the setup from install to a working checkout.

  1. 01

    Composer-install the Klarna Payments module

    On a standard install, composer require klarna/m2-kp adds the Klarna Payments module (Klarna_Kp). For the hosted Klarna Checkout (KCO), which replaces Magento’s own checkout, the package is klarna/module-klarna-checkout. Then I run bin/magento module:enable Klarna_Kp Klarna_Core Klarna_Ordermanagement, followed by setup:upgrade and setup:di:compile. For Hyvä there is a separate klarna/hyva-checkout bridge.

  2. 02

    Wire your Klarna API credentials in admin

    Create a merchant account at portal.klarna.com, choose your region (EU, NA or OC) and copy the API username and password. In the Magento admin go to Stores → Configuration → Sales → Payment Methods → Klarna Payments. I paste the credentials per store view, set the region, keep test mode on for staging, and pick which Klarna options to show at checkout. Klarna sets its fees per merchant, based on country and volume.

  3. 03

    Customer picks Klarna at checkout: soft credit check runs

    At the payment step the Klarna widget loads inline and runs a soft credit check, which does not affect the shopper’s credit score. Klarna answers with approve or decline and the options that shopper can use: Pay-in-3, Pay-Later-30 (full amount due in 30 days, no interest) or Financing over 6-36 months. The payment is authorised when the order is placed.

  4. 04

    Klarna pays the merchant upfront, then chases the customer

    Once the order is captured, Klarna pays the full amount minus its fee into the merchant’s bank account, usually on a T+1 to T+3 schedule depending on region and contract. From then on the credit risk is Klarna’s: it collects each instalment, handles late payments and runs collections if the shopper defaults. The store gets paid either way.

  5. 05

    Webhooks keep Magento and Klarna order state in sync

    Klarna sends order event webhooks to /klarna_kp/webhook for capture, refund, partial return and dispute events. The Klarna_Kp\Controller\Webhook controller checks the HMAC signature, updates the Magento order and adds a comment to the order history. A refund made in the Magento admin calls Klarna’s Refund API for you. I tell store teams never to settle refunds by hand outside Magento, because the shopper then still owes Klarna.

When to use

Four scenarios where adding Klarna is the obvious answer

Klarna usually costs more per order than a card payment, so it has to earn its fee. These are the four cases where I think it does.

  • Stores with AOV $100+ (especially fashion, electronics, furniture)

    BNPL helps most on bigger carts. On a $20 cart most people just pay by card. On a $400 cart, seeing 3 x $133 instead of one charge removes the “is this too much right now?” pause at checkout. Fashion, consumer electronics and furniture are the usual fit, because they are considered purchases with higher order values.

  • Stores selling into EU, UK, and the Nordics

    Klarna is one of the most used payment methods in Europe, especially in Sweden (its home market), Germany, the Netherlands, Finland, Norway and Denmark. If a store sells into those countries and doesn’t offer it, some shoppers won’t see the way they normally pay. In the US Klarna is growing, but Affirm and Afterpay are strong in some categories.

  • D2C brands targeting Gen-Z and millennial shoppers

    Younger shoppers use BNPL more than older ones. If a D2C brand sells to an audience that skews young (streetwear, beauty, fitness, lifestyle), I treat Klarna as a standard option next to wallets like Apple Pay. The on-site messaging widget on product and category pages shows the instalment price early, before the shopper reaches checkout.

  • Stores with high cart abandonment at the payment step

    If your analytics show a big drop between “reached payment” and “placed order”, some of those shoppers are leaving because the total feels like too much in one go. Showing it as 3 x $X instead of one charge can win some of them back. I also mention the instalment option in abandoned cart emails, which gives the shopper a reason to come back.

Common mistakes

Three Klarna integration mistakes that wreck the ROI

Every Klarna-related Magento engagement I’ve been called in to fix came from one of these three mistakes. Audit your config and on-site widgets before going live.

  • Enabling Klarna without modelling the fee delta

    Klarna’s merchant discount rate (MDR) sits at roughly 3-5% depending on country, volume, and which Klarna products you enable, meaningfully higher than Stripe’s typical ~3% on cards. The decision isn’t “Klarna or Stripe” (most stores run both); it’s “does the BNPL conversion lift cover the fee delta?” Build a simple sheet: current Stripe AOV * conversion rate * (1-3%) versus projected Klarna AOV * lifted conversion rate * (1-4.5%). On AOV $100+ carts the math almost always works. On AOV under $50 it rarely does.

  • Forgetting on-site messaging on PDP and cart pages

    The single biggest mistake I see: stores install Klarna at the checkout step only and skip Klarna’s On-Site Messaging widget on product detail and cart pages. The BNPL price-tag (“From $25/month with Klarna” or “3 payments of $33, learn more”) is what drives the conversion lift, it reframes the purchase before the shopper even adds to cart. Klarna provides drop-in JavaScript widgets via klarna-osm-magento. Place them under the price block on PDP and in the cart summary. Without them you’re paying Klarna’s MDR for the checkout step only and leaving the conversion lift on the table.

  • Not wiring the refund hand-off back to Klarna’s API

    When a customer requests a refund or partial return in Magento, the admin must trigger Klarna’s Refund API in addition to issuing the Magento credit memo. If you forget, or if a custom RMA workflow bypasses the Klarna_Kp observer, Magento marks the order refunded but Klarna keeps chasing the customer for the original instalments. The customer gets debt-collection emails for an order they returned, complains to Klarna, and Klarna chargebacks the merchant plus dispute fees. Test the refund flow end-to-end in Klarna’s sandbox before going live.

FAQ

Klarna for Magento, frequently asked questions

  • Klarna vs Afterpay vs Affirm, which BNPL for Magento?
    Pick by geography first, then by audience. Klarna is the right default if you sell into Europe, the UK, or the Nordics, it dominates those markets by a wide margin and is increasingly strong in the US. Afterpay (Clearpay in the UK) leans hardest into Pay-in-4 for fashion and beauty under $400, especially in Australia and the US. Affirm leads US-only high-AOV financing (think Peloton, mattresses, electronics over $500) with longer 12-36 month terms. If you only enable one, pick by where your top-5 markets are. If you sell globally, run Klarna plus one regional alternate, the Magento module ecosystem supports all three concurrently.
  • Does Klarna replace Stripe / PayPal, or run alongside?
    Alongside, every time. Klarna is a BNPL specialist, not a general card processor, it does not handle low-value card payments efficiently and most shoppers still want a plain card option at checkout. The standard production Magento stack runs Stripe (or Braintree / Authorize.Net) for cards and Apple Pay / Google Pay, PayPal for the PayPal-loyal segment, and Klarna for the BNPL upgrade path on AOV $100+ carts. Magento’s checkout supports an arbitrary number of payment methods side by side, and Klarna’s module is built to coexist with the others, the widget only renders when Klarna’s risk engine approves the cart.
  • What’s Klarna’s MDR and who pays Klarna’s fees?
    The merchant pays. Klarna’s merchant discount rate sits in the 3-5% band of order value depending on country, volume, and which Klarna products are enabled, Pay-in-3 typically costs the merchant less than Financing because Klarna’s risk window is shorter. That compares to Stripe’s roughly ~3% on cards and PayPal’s 2.9-3.49%. The customer pays nothing extra for Pay-in-3 or Pay-Later-30 (interest-free), and only pays interest on the Financing product. Klarna negotiates rates per merchant, if you process more than ~$1M/year in Klarna volume, ask for a custom rate; the rack rate is for small merchants.
  • Is Klarna PSD2 / SCA safe for European checkouts?
    Yes, Klarna is fully PSD2 / SCA compliant out of the box, and that’s actually one of the operational reasons to add Klarna to a European Magento store. Klarna handles the strong-customer-authentication flow internally (typically via banking-app push notification or one-time-passcode) and returns an authenticated session to Magento. The Klarna_Kp module passes the 3DS-equivalent flag through to the Magento order, and the order is exempt from chargeback risk because Klarna assumed the SCA liability. This is the same reason banks accept Klarna-routed payments without extra authentication steps.
  • Does Hyvä storefront work with Klarna?
    Yes, Klarna ships a Hyvä-compatibility bridge as klarna/hyva-checkout, separate from the Luma module. The bridge ports the Klarna Payments widget into Hyvä’s Alpine.js-based checkout, preserves the inline risk-check and on-site-messaging components, and is maintained alongside Magento upgrades. Install with composer require klarna/hyva-checkout on top of the standard klarna/m2-kp module. The on-site-messaging widget for PDP / cart works on Hyvä without additional changes. Klarna_Checkout (the paid hosted-checkout product) also has a Hyvä bridge but the migration path is less clean, if you’re on Hyvä and starting fresh, Klarna Payments is the better fit.
  • How does Klarna handle refunds and partial returns in Magento?
    Refunds are wired through Magento’s credit memo flow. When you create a credit memo in the Magento admin against a Klarna-paid order, the Klarna_Kp observer intercepts the save event and calls Klarna’s Refund API with the same amount, marking the refund against the original Klarna order reference. Partial refunds work the same way, refund a single line item via the credit memo, Klarna refunds the matching instalment proportionally. Returns initiated by the customer through Klarna’s own portal also push back into Magento via the webhook controller, which auto-creates the credit memo. The one edge case: custom RMA modules that bypass the standard credit-memo event will skip the Klarna hand-off, always test the RMA flow end-to-end in Klarna’s sandbox before shipping a custom return workflow.
Klarna audit

Want a Klarna BNPL audit on your Magento store?

Send your storefront URL, I will check your Klarna_Kp install, on-site-messaging placement, refund hand-off wiring, and BNPL conversion math, then reply with a written tuning plan, fixed-price quote, and earliest start date. 24-business-hour turnaround.

Kishan Savaliya Online 10 AM to 7 PM IST Chat on WhatsApp