Klarna Docs - Shipping

Shipping

How we handle shipping in Klarna checkout.

How it is done

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

Using the same address for billing and shipping

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",

Allowing a separate shipping address

An order that is created with allow_separate_shipping true will have the Klarna Shipping Assistant (KSA) visible in Checkout. 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",

Sending shipping options

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) 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",

Allowing separate shipping & sending shipping options

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",

Shipping option update callback

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.

Using a transport management system

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.