Klarna Docs - Shipping

Shipping

How we handle shipping in Klarna checkout.

There are several ways shipping can be added to an order and below we will explain the differences.

Creating an order without specifying the property options.allow_separate_shipping will not have the shipping section of checkout visible and the shipping_address of the completed order will always be the same as the billing address.

With this order configuration Klarna Shipping Assistant (KSA) is disabled.

JSON
{
  "purchase_country": "GB",
  "purchase_currency": "GBP",
  "locale": "en-GB",
  "order_amount": 50000,
  "order_tax_amount": 4545,
  "order_lines": [
      {
        "type": "physical",
        "reference": "19-402-USA",

Customers can enable the shipping address to be the same as billing address.

An order that is created with allow_separate_shipping  true will have the Klarna Shipping Assistant (KSA) visible in Checkout if the "Merchant Portal" configuration is set properly. This will allow the consumer to enter a separate shipping address.

JSON
{
  "purchase_country": "GB",
  "purchase_currency": "GBP",
  "locale": "en-GB",
  "order_amount": 50000,
  "order_tax_amount": 4545,
  "order_lines": [
      {
        "type": "physical",
        "reference": "19-402-USA",

Customers can have a shipping address different from the billing address.

As a merchant you can provide Klarna with shipping_options you want to present to the consumer. These are sent in using the property shipping options . This will enable Klarna Shipping Assistant(KSA) if the "Merchant Portal" configuration is set properly which will present a shipping selector in the checkout where the consumer can select a shipping option and the cart will be updated automatically.

JSON
{
  "purchase_country": "GB",
  "purchase_currency": "GBP",
  "locale": "en-GB",
  "order_amount": 50000,
  "order_tax_amount": 4545,
  "order_lines": [
      {
        "type": "physical",
        "reference": "19-402-USA",

Customers can select a shipping method.

If you specify both the options.allow_separate_shipping  property and send in shipping_options  the consumer will be able to choose a shipping option and a shipping address.

JSON
{
  "purchase_country": "GB",
  "purchase_currency": "GBP",
  "locale": "en-GB",
  "order_amount": 50000,
  "order_tax_amount": 4545,
  "order_lines": [
      {
        "type": "physical",
        "reference": "19-402-USA",

You can specify a shipping_option_update url to get a server-side callback whenever the consumer changes the shipping option. Read more .

When this callback is used the shipping option cost will not be added automatically to the order_lines or the order_total of the order and this will be your responsibility.

If you want to use a transport management system (TMS), please see Klarna Shipping Assistant(KSA) documentation.

Read more

Klarna Shipping Assistant have more documentation on the topic and a special section about Checkout integration, read more about KSA.