Klarna Docs - Known Issues

Klarna Payments accepts orders only for customers with billing addresses in the markets that match the currency of the order, per: https://docs.klarna.com/klarna-payments/in-depth-knowledge/puchase-countries-currencies-locales/

Klarna Payments integration is an alternative payment provider in Shopify, and Shopify limits Klarna Payments, as for all alternative payments methods, to always using only the store’s base currency, per: https://help.shopify.com/en/manual/payments/shopify-payments/multi-currency/conversions#shopify-payments-and-other-payment-providers

As such, if the store base currency is SEK, Klarna Payments will be able to accept orders for customers whose billing country is Sweden.  Customers with addresses in other countries will receive an error message, e.g. as shown in the screenshot below.  The exact error message may be dependent upon region & Klarna product, i.e. such as “Option not available” or “You need a US billing address to use Klarna”.

The exact error message may differ based on region and other data.

In the Klarna Merchant Portal Settings app, merchants can generate new Klarna API credentials and/or disable previous API credentials, as shown below:

If changing API credentials are necessary, updated credentials must be changed both for 1) the Klarna Payments app (under Apps in your Shopify store) and 2) the Klarna alternative payment method(s) (under Settings->Payments in your Shopify store). If the API credentials don’t exactly match between the app and the payment method, order updates will fail to update Klarna.  You can verify order updates or manually update orders in the Klarna Merchant Portal, as needed, but note there may be a small time delay (~ 5 minutes) for Klarna to be updated after the Shopify order has been updated so take care to not duplicate order management updates (such as partial refunds).  

When API credentials are changed but credentials use the same Klarna merchant id (i.e. K100123_26712af8ef91 to K100123_1d2d9e478472), pending fraud status notifications from Klarna (e.g. fraud pending to accepted) will not be able to modify previously placed orders in the Shopify store; those Shopify orders will stay stuck in Pending status. Other order management updates can still be successful as long as the API credentials match between both the Klarna Payments app and alternative payment methods (including inactive alternative payment methods).  

If a store is required to change the Klarna contract  (e.g. change in store ownership) resulting in a new Klarna merchant id (i.e. K100123_26712af8ef91 to K100789_83e99c12023), all order management updates will be unsuccessful for previously placed orders, and all order management for those orders must be done in the Klarna Merchant Portal. 

Removing the Klarna Payments app from a Shopify store will prevent capture or cancel order management updates automatically from Shopify to Klarna; refunds should update Klarna (without refund order line items though as refund order line item data is not accessible without the Klarna Payments app).

If choosing Klarna from the Shopify checkout results in an Oops error page, per screenshot below, verify that the Klarna API credentials for the payment method (at Shopify admin Settings->Payments->Alternative Payment Methods) exactly match the Klarna API credentials used for the Klarna Payments app in the store (under Apps menu in Shopify Admin).  The Klarna API credentials are entered in 2 places and both those entries must match exactly (without any extra whitespace, upper vs. lower case must match, etc.).

After Shopify redirects to a HPSDK alternative payment integration, such as Klarna Payments, when a customer places an order, stock inventory can no longer be guaranteed as the inventory is not locked in the Shopify store.  To avoid oversells, the Klarna Payments integration again checks Shopify inventory when the Klarna Payments hosted payments page is loaded, reloaded, and when the customer places the order (if the Klarna Payments app is up to date with the required read_inventory scope).  (To verify that the app is up to date, click the Klarna Payments app within the Shopify admin, and if an update is required, the update will be requested.)  Even with these additional inventory checks, depending on store traffic and timing, oversells can still possibly occur. 

To further prevent oversells, Klarna Payments offers a merchant-configurable setting “Minimum quantity of product's stock inventory required for a Klarna order” (accessible either via the Klarna Payments app in the Shopify store OR via https://www.klarnapayments.com/install) for merchants to limit Klarna orders based on stock inventory availability.

Additionally, each Shopify app, such as the Klarna Payments app, are limited for the rate of Shopify API calls that can be made during a time period, as documented at: https://shopify.dev/concepts/about-apis/rate-limits  For stores with high volume flash sales in a small time period, alternative payment methods, like Klarna, could result in rate limit errors for customers.

Klarna Payments on Shopify is not compatible with the following apps:

  • OneClickUpsell by Zipify - as this replaces standard Shopify checkout, a Klarna Payments integration would require code in Zipify to integrate with Klarna Payments
  • Subscriptions by ReCharge - as ReCharge replaces standard Shopify checkout, a Klarna Payments integration would require ReCharge to integrate with Klarna Payments
  • Gooten: Print On Demand -  fulfillments within Shopify for Gooten orders currently don't trigger the necessary Shopify webhook to inform Klarna to capture the order; merchants could manually capture in the Klarna merchant portal as a workaround

There are multiple possible unrelated pending refund issues:

Refunds older than 60 days require the read_all_orders scope, as noted at https://help.shopify.com/en/api/reference/orders/order.  If some refunds are stuck in pending in your Shopify store and the order is older than 60 days, please make sure that the Klarna Payments app is up to date in your Shopify store to be able to access orders older than 60 days.  To do so, a Shopify admin user with full admin permissions to the Shopify store, within the Shopify admin web page, can go to the Apps menu on the left hand side and click the "Klarna Payments" app.   If the Klarna Payments app doesn’t have the necessary permissions, a web page will be presented stating "You are about to update Klarna Payments".   After clicking "Update unlisted app" from the bottom right of the screen, future refunds should again update the corresponding Klarna order, including orders older than 60 days.  For already processed refunds, the order can be updated through the Klarna Merchant Portal.

For stores that integrated Klarna Payments after July 2018, the required read_all_orders scope is requested when the Klarna Payments Shopify app is installed, and any refund can be processed successfully as long the refund is approved by Klarna.

When a refund is first made in Shopify, the Shopify order timeline will have an entry stating "A refund is pending". After a short delay (around 5 minutes), the Klarna order will be updated (if the refund is successful) and another order note will be added to the Shopify order timeline indicating if the refund was successful ("{refund amount} was refunded'") or not ("Unable to refund").

Note, even for successful refunds, the "Message" in the Shopify order timeline always states "Transaction pending". This is expected based on a Shopify bug, per: https://community.shopify.com/c/shopify-apis-and-sdks/how-to-change-refund-status/m-p/502556/highlight/true#M32584

If the Klarna API credentials were updated for an HPSDK payment method(s), and the Klarna API credentials are valid and active, but not updated in the Klarna HPSDK database, the Klarna refund can still be processed successfully in Klarna, but the refund cannot set as successful in Shopify (as the authentication mismatches between Klarna and Shopify). To allow future refunds to be set as successful in both Klarna and Shopify, update the Klarna API credentials for the HPSDK "Klarna Payments" app, from your Shopify store's Apps menu to match the API credentials set at the Shopify payment method. Note: once an HPSDK payment method is deactivated, it can not be re-activated, and thus API credentials cannot be updated for the payment method; API credentials can only be updated in the HPSDK "Klarna Payments" app.

The Klarna Payments for Shopify integration does not yet support Shopify’s edit orders functionality: https://help.shopify.com/en/manual/orders/edit-orders 

For edited orders, Klarna will block Klarna as a payment method upon redirect, and the customer can instead pay with a different supported payment method for the store.  

Orders edited in Shopify will NOT update Klarna, and any order updates must be manually edited in the Klarna order via the Klarna Merchant Portal, separately from the Shopify order.