Klarna Docs - Klarna Payments

Klarna Payments

Klarna is available as an alternative payment method using Shopify's new Payments Platform.

Here are steps to integrate to integrate.

Klarna Payments requires name, phone, and email to place most Klarna orders. If the consumer's email is not shared with Klarna upon redirect from Shopify to the Klarna payment page, the consumer will receive an error message from Klarna, and the customer will need to return to Shopify checkout to enter their email.  To avoid this error, Klarna recommends that merchants choose Email for the “Customer contact method”, configurable within the store's Shopify admin →  Settings →  Checkout and accounts →  Customer contact method

Klarna requires both first and last name, so verify this at the Customer information configuration setting.

With the new Shopify payments app integration, Shopify does not currently share the consumer's shipping phone number with payment integrations. Shopify will share either (but not both) the email or phone number, whichever the consumer enters in the first single field on the first page of Shopify checkout, (or both fields if the customer is logged into their Shopify account), as shown in the screen shot below. Since a Klarna session can not be started without email, per recommendation above, email should be configured as required in checkout. When email is required, the consumer's phone number may not be shared by Shopify, and Klarna will have to request, via a modal, for the consumer to enter their phone number.

The first Contact Information field for Shopify checkout can be configured either as 'email required' OR 'email or mobile phone number'

Klarna configures the translations for the Klarna payment method. There is one translation per supported language, not determine by customer's country or storefront language. The translation used in the store's checkout is determined by the store's single checkout language, which is configurable in the Shopify store admin under Settings->Checkout and accounts->Manage checkout language.

Payment method nameLanguage
CzechKlarna - Zaplať ve 3 splátkách
DanishKlarna - Betal nu eller senere
DutchKlarna - Betaal nu of betaal later
EnglishKlarna - Flexible payments
FinnishKlarna - Maksa heti tai myöhemmin
FrenchKlarna - Payer maintenant, ou plus tard
GermanKlarna - Sofort oder später bezahlen
GreekKlarna - 3 άτοκες δόσεις
GreekKlarna - Paga in 3 rate
ItalianKlarna - Paga in 3 rate
NorwegianKlarna - Betal nå eller senere
PolishKlarna - Kup teraz, zapłać później
PortugeseKlarna - 3 pagamentos sem juros
SpanishKlarna - Paga a plazos sin intereses
SwedishKlarna - Betala nu eller senare

Note: related Known Constraint that currently payment methods cannot be renamed for Shopify Plus merchants via custom scripts.

(Previous to 2022-July, the payment method name was "Klarna".)

The locale for Klarna Payments hosted payment page will be set based on the store's language concatenated with the customer's billing address country, e.g. English language selected for a customer with a US billing address entered in Shopify checkout would result in a request locale of 'en-US' when Klarna Payments is loaded. If the requested locale is supported by Klarna Payments, per: Available purchase countries, currencies and locales, the locale will be honored. If the locale is not supported, English is used as a fallback.

Locale is not configurable in Klarna; merchants can configure their store's language in their Shopify admin under Settings -> Languages.

One way to check a store's Shopify language is via browser developer tools, e.g. console:

HTTP
Shopify.locale

Klarna offers an app on the Shopify app store to enable you to easily promote Klarna on your store. The app can be installed from https://apps.shopify.com/klarna-on-site-messaging Additional details about the app available at: On-site messaging app for Shopify

  1. Single payment method: All Klarna payment offers (pay now, pay later, pay over time) will be supported within one payment method activated in the store admin (configured under Settings->Payments->Supported payment methods), with a translated name in checkout based on the shop's language. (Shopify Plus merchants that have custom Shopify scripts based on payment method name(s) will need to update their code to use the new payments integration method name: 'Klarna'; note: custom script code for renaming payment methods is not yet supported for new payments app integrations.)
  2. Shopify order id is not shared: the Shopify order number is not shared with Klarna. - NOW can be mitigated using Klarna's On-site messaging app as a companion app with Extended Access.
  3. Order edits: are supported.
  4. Capture (and cancel): depending on the merchant's "Payment capture" configuration setting in their Shopify store admin (under Settings->Payments), the Shopify order, and the corresponding Klarna order, will be automatically or manually captured. The Klarna order capture is NOT tied to the fulfillment of the Shopify order (as was the case for the previous HPSDK integration). If the Payment capture is set to 'Automatically capture' when the order is placed in the Shopify store, cancel and partial captures are not supported since the order is already be captured immediately after placement. If the Payment capture is set to 'Manually', once the payment is captured, the order cannot be cancelled as funds have already been transferred; instead the payment could be refunded.
  5. Order line data: Shopify shares limited order line data fields for product order lines via this new payments integration. Shopify does not share any order line data for non-product order lines, e.g. VAT/taxes, discounts, surcharges, tip, etc, so those will be grouped as a single other "Adjustment" order line data in the Klarna order. The Klarna order will not have full order line data (image URL, product URL, etc.) as previously for HPSDK orders (e.g. in Klarna Merchant Portal or consumer Klarna app) for Shopify orders. As the data shared with Klarna is limited, and cannot be customized to support additional data, Klarna Extra Merchant Data cannot be supported. NOW can be partially mitigated using Klarna's On-site messaging app as a companion app with Extended Access.
  6. Shipment tracking info: Shipment tracking information is no longer shared from Shopify to Klarna.
  7. Order tags: new payments integrations cannot currently set tags on a Shopify order. Stores that can use the Shopify Flow app could set order tags within a flow for Klarna orders.
  8. Fraud pending: Klarna fraud pending functionality is not currently supported for fraud decisioning after the order is placed. Orders are still reviewed by Klarna for fraud, but the fraud decision will be made when the order is placed.
  9. Oversells of stock inventory: this integration cannot query the store stock inventory to avoid oversells.
  10. Customizations of the Klarna payments page (locale, colors, logo, footer text) are not currently supported.
  11. Test mode: the way test mode is supported is different between HPSDK and new payment method app integration, more info at Test Mode.
  12. Phone number may be requested: Even if customers already previously entered their phone number in Shopify checkout, Shopify may not share that phone number with payments integrations when email is required in checkout, thus Klarna may request the consumer enter their phone number again..
  13. Logo not shown in footer: more info in Known Constraints.
  14. Authorization field: cannot be set by Klarna on Shopify orders, as could previously be set with the HPSDK integration. Merchants instead will need to use the "Payment" id. More info at: Shopify order number is not shared with Klarna. - NOW can be partially mitigated using Klarna's On-site messaging app as a companion app with Extended Access.
  15. Hosted payment page URL: this new payments app integration uses a different hosted payment page URL (pay.klarna.com); the HPSDK uses (www.klarnapayments.com). Merchants that filter this domain in Google Analytics will need to update their GA configurations accordingly.

This can now be mitigated using Klarna's On-site messaging app as a companion app with Extended Access.

When the order is placed in Shopify, a payment id is set in the Shopify order Timeline information under the "payment was processed on Klarna." section, within the "Information from the gateway" subsection. This payment id is set in the Klarna order's merchant reference 1 and 2. (Shopify does not share the Shopify order id for this payments app integration for Klarna to be able to associate the Shopify order id or order name in the Klarna order. Additionally, Shopify no longer allows new payments app integrations to set the 'authorization' field on the Shopify order.) Related query about API access for this data: https://help.shopify.com/en/manual/orders/search-view-print-orders#match-third-party-payment-information-with-shopify-orders

Shopify payment id is available in the Payment section Shopify store admin order's Timeline: Information from the gateway.

Shopify payment id is available in the merchant_reference_1 field in the order in the Klarna merchant portal

If your store is Shopify Plus, it may also be helpful to find Klarna orders to run a custom report for orders by payment type (under Analytics -> Reports -> Create custom report, per: https://help.shopify.com/en/manual/reports-and-analytics/shopify-reports/report-types

With "Test mode" active on the Klarna payment method, merchants can place test orders. No actual money is collected or settled by Klarna for test orders.

If you do activate "Test mode" for the payment method, as soon as testing is done, make sure to uncheck "Enable test mode" as Klarna does NOT pay out for test / playground orders ever, even if a live customer places a real order while "Test mode" was checked.

  • Test orders (without a custom test app) will NOT be visible in your Klarna production merchant portal; test orders will show in the Shopify store admin, if the order was completed. When test mode is not active, live orders will be visible in both the Klarna production merchant portal and the Shopify store admin.
  • The Klarna payment methods offered with test mode active may not match a merchant's production account's configured Klarna payment offerings. The Klarna Shopify direct integration is agnostic of specific Klarna payment methods though, so testing is still applicable with differing payment methods. To test specific payment methods, https://www.klarna.com/demo/ can be used with applicable payment methods by region.

For very limited, very large enterprise Shopify Plus merchants needing to test with a Shopify development store using Klarna test / playground API credentials (not using Klarna live production API credentials), Klarna can support playground testing using a custom app, only with app payment extension approval by Shopify. Each Klarna Test custom app must be manually configured by Klarna, and is associated with only one single development store.

For other merchants, Klarna will continue to work on options to support testing using Klarna's playground environment. Until that is available though, Klarna can be tested using production Klarna API credentials, for one single store at a time, with test mode active.

Shopify restricts all alternative payment methods, such as Klarna Payments, to only process orders in the store’s base currency, as documented at: 

https://help.shopify.com/en/manual/payments/shopify-payments/multi-currency/conversions#shopify-payments-and-other-payment-providers

“Only Shopify Payments can process payments in a customer's local (presentment) currency. If your customer chooses a payment option from a different payment provider, then their payment is made in the currency of your store.”  

See also Known Issue: “Klarna Payments accepts orders only for customer billing addresses in the markets that match the store base currency”.

For Shopify Plus merchants, please also see: “Shopify Plus: custom scripts” section below if you would like to hide Klarna Payments in checkout based on certain cart data.

Shopify does not yet support alternative payment methods, like Klarna, to integrate into Shopify's POS sales channel. Customers in store can still easily pay with Klarna using Shopify draft orders. To do so:

  1. Create a Shopify draft order for a customer (with optional customer details prepopulated) with the desired products. (Do not check "Paid").
  2. Email the invoice to the customer from the Shopify draft order admin page using the "Send invoice" button (either from the draft order or "Payment due later" order).
  3. The customer then can pay for the draft order via your Shopify store's Online Store sales channel using your store's Shopify web checkout and choose Klarna (or any payment option available in checkout).