# Klarna

Recurring

Note
For guest checkout integrations after March 2026, please refer to [Klarna](/access/products/apms/klarna).

This previous version of Klarna is for recurring integrations (and for guest checkout integrations existing before March 2026).

In this case, the recurring functionality allows you to save a token which represents your customer's data and use this across multiple requests to Klarna.

Klarna is a "Buy Now, Pay Later" payment method allowing your customer to pay in installments.

Note
Make yourself familiar with our [API principles](/access/products/reference/api-principles) to ensure a resilient integration.

details
summary
Product overview
#### Capabilities

* defer payment by 30 days
* spread the cost over a period of up to 36 months (with financing)
* pay the full amount immediately with "Pay Now" for card, local domestic or local bank transfer payments
* spread the cost over three (four in some markets) equal interest-free installments


Klarna manages the relationship and collection of future installment payments directly with your customer. You receive full funding upfront and are protected from the risk of unpaid installments.

#### Brand and marketing guidelines

Follow the link for the latest guidelines from [Klarna](https://docs.klarna.com/marketing/solutions/grab-and-go/).

#### Feature summary

| Payment type | Countries | Recurring | Reversals | Partial reversals | Disputes | Auth only |
|  --- | --- | --- | --- | --- | --- | --- |
| Pay Now, Pay in Parts, Pay Later, Financing | AT,BE,FI,DE,NL,NO,ES,SE,CH | ✅ | ✅ | Partial refund - yesPartial cancel - no | Handled directly via Klarna. We will deduct the funds if the dispute is lost. | ✅ |


Note
Refunds are completed through Klarna to your customer's account within 365 days and you can submit multiple partial refunds for one payment.

#### Acceptance currencies

| Currency | Currency codes |
|  --- | --- |
| Czech Koruna | CZK |
| Danish Krone | DKK |
| Euro | EUR |
| Norwegian Krone | NOK |
| Polish Złoty | PLN |
| Pound Sterling | GBP |
| Swedish Krona | SEK |
| Swiss Franc | CHF |


## Get started

Use our [API reference](/access/products/apms/openapi) and set your headers.

## Request

`POST` `https://try.access.worldpay.com/apmPayments`

### Example request

Recurring
Token
Guest

```json
{
  "transactionReference": "Memory265-13/08/1876",
  "orderReference": "apm-order-12345",
  "merchant": {
    "entity": "default"
  },
  "instruction": {
    "method": "klarna",
    "value": {
      "amount": 2468,
      "currency": "GBP"
    },
    "narrative": {
      "line1": "MindPalace"
    },
    "paymentInstrument": {
      "type": "direct",
      "country": "GB",
      "language": "en",
      "billingAddress": {
        "address1": "221B Baker Street",
        "address2": "Marylebone",
        "address3": "Westminster",
        "postalCode": "NW1 6XE",
        "city": "London",
        "state": "Greater London",
        "countryCode": "GB"
      }
    },
    "resultUrls": {
      "cancel": "https://worldpay.com/cancel",
      "failure": "https://worldpay.com/failure",
      "pending": "https://worldpay.com/pending",
      "success": "https://worldpay.com/success"
    },
    "shipping": {
      "method": "registered box",
      "timeFrame": "normal",
      "firstName": "James",
      "lastName": "Moriarty",
      "phone": "00000000000",
      "email": "test@email.com",
      "address": {
        "address1": "221B Baker Street",
        "address2": "Marylebone",
        "address3": "Westminster",
        "postalCode": "NW1 6XE",
        "city": "London",
        "state": "Greater London",
        "countryCode": "GB"
      }
    },
    "customer": {
      "firstName": "James",
      "lastName": "Moriarty",
      "email": "moriarty@example.com",
      "phone": "00000000000",
      "dateOfBirth": "1999-01-01"
    },
    "order": {
      "orderTotalTaxAmount": 0,
      "termsUrl": "https://example.com",
      "items": [
        {
          "type": "physical",
          "productCode": "fff1223",
          "name": "Red Hat",
          "quantity": 1,
          "unitOfMeasure": "per unit",
          "unitCost": 1234,
          "taxRate": 1,
          "totalTaxAmount": 0,
          "totalAmount": 1234,
          "totalDiscountAmount": 0,
          "productUrl": "https://example.com",
          "imageUrl": "https://example.com"
        },
        {
          "type": "physical",
          "productCode": "fff1256",
          "name": "Blue Hat",
          "quantity": 1,
          "unitOfMeasure": "per unit",
          "unitCost": 1234,
          "taxRate": 1,
          "totalTaxAmount": 0,
          "totalAmount": 1234,
          "totalDiscountAmount": 0,
          "productUrl": "https://example.com",
          "imageUrl": "https://example.com"
        }
      ]
    }
  }
}
```

Information
You must settle the payment, using next action links, when using Klarna with a token.

### Parameters

Recommendation
We suggest you provide the `cancelURL`,`failureURL`, `pendingURL` and  `successURL` attribute to redirect your customer to, once you have received the payment result.

## Response

### Example response

Recurring response

```json
{
  "paymentId": "uK9Oh5zz4yKhGuFofhhnC056-K6qn-w8Krt2pRT2oSzwh_KRcHUrrs1qJtQso9gjgJ_wwjT869eMBB_T4PM4D6HdjtgfjDBh7htEkjHxp4Q_KzkRIENkZoejad--FtjVrMslJn1mvz4mwr-TuKlP9ZAhBEzSApkfhL__fXCo-vMkR1a2Zrj_R8rGSgu6m2Wd",
  "lastEvent": "pending",
  "_links": {
    "self": {
      "href": "https://try.access.worldpay.com/apmPayments/uK9Oh5zz4yKhGuFofhhnC056-K6qn-w8Krt2pRT2oSzwh_KRcHUrrs1qJtQso9gjgJ_wwjT869eMBB_T4PM4D6HdjtgfjDBh7htEkjHxp4Q_KzkRIENkZoejad--FtjVrMslJn1mvz4mwr-TuKlP9ZAhBEzSApkfhL__fXCo-vMkR1a2Zrj_R8rGSgu6m2Wd"
    }
  },
  "_actions": {},
  "redirect": "https://secure-test.worldpay.com/jsp/test/shopper/APMSTSimulator.jsp?customerRef=3417843726&amp;paymentMethod=KLARNA_PAYNOW&amp;country=DE",
  "paymentInstrument": {
    "method": "klarna",
    "type": "klarna/token"
  },
  "commandId": "cmdEy5vwB0krLe9eMwAcE66c0"
}
```

Token response

```json
{
  "paymentId": "uK9Oh5zz4yKhGuFofhhnC056-K6qn-w8Krt2pRT2oSzwh_KRcHUrrs1qJtQso9gjgJ_wwjT869eMBB_T4PM4D6HdjtgfjDBh7htEkjHxp4Q_KzkRIENkZoejad--FtjVrMslJn1mvz4mwr-TuKlP9ZAhBEzSApkfhL__fXCo-vMkR1a2Zrj_R8rGSgu6m2Wd",
  "lastEvent": "authorized",
  "_links": {
    "self": {
      "href": "https://try.access.worldpay.com/apmPayments/uK9Oh5zz4yKhGuFofhhnC056-K6qn-w8Krt2pRT2oSzwh_KRcHUrrs1qJtQso9gjgJ_wwjT869eMBB_T4PM4D6HdjtgfjDBh7htEkjHxp4Q_KzkRIENkZoejad--FtjVrMslJn1mvz4mwr-TuKlP9ZAhBEzSApkfhL__fXCo-vMkR1a2Zrj_R8rGSgu6m2Wd"
    }
  },
  "_actions": {},
  "redirect": "",
  "paymentInstrument": {
    "method": "klarna",
    "type": "klarna/token",
    "tokenId": "11c03afa-3449-14fd-997e-55510cf01f27",
    "country": "DE",
    "productType": "payLater"
  },
  "commandId": "cmdEy5vwB0krLe9eMwAcE66c0"
}
```

Guest response

```json
{
  "paymentId": "uK9Oh5zz4yKhGuFofhhnC056-K6qn-w8Krt2pRT2oSzwh_KRcHUrrs1qJtQso9gjgJ_wwjT869eMBB_T4PM4D6HdjtgfjDBh7htEkjHxp4Q_KzkRIENkZoejad--FtjVrMslJn1mvz4mwr-TuKlP9ZAhBEzSApkfhL__fXCo-vMkR1a2Zrj_R8rGSgu6m2Wd",
  "lastEvent": "pending",
  "_links": {
    "self": {
      "href": "https://try.access.worldpay.com/apmPayments/uK9Oh5zz4yKhGuFofhhnC056-K6qn-w8Krt2pRT2oSzwh_KRcHUrrs1qJtQso9gjgJ_wwjT869eMBB_T4PM4D6HdjtgfjDBh7htEkjHxp4Q_KzkRIENkZoejad--FtjVrMslJn1mvz4mwr-TuKlP9ZAhBEzSApkfhL__fXCo-vMkR1a2Zrj_R8rGSgu6m2Wd"
    }
  },
  "_actions": {},
  "redirect": "https://secure-test.worldpay.com/jsp/test/shopper/APMSTSimulator.jsp?customerRef=3417843726&amp;paymentMethod=KLARNA_PAYNOW&amp;country=DE",
  "paymentInstrument": {
    "method": "klarna",
    "type": "direct"
  },
  "commandId": "cmdEy5vwB0krLe9eMwAcE66c0"
}
```

Error response

```json
{
  "errorName": "bodyDoesNotMatchSchema",
  "message": "The json body provided does not match the expected schema",
  "validationErrors": [
    {
      "errorName": "fieldHasInvalidValue",
      "message": "Field is mandatory",
      "jsonPath": "$.instruction.value.amount"
    }
  ]
}
```

### Schema

#### Errors

Check out our API reference for [more responses or error codes](/access/products/apms/openapi/other/payment#other/payment/response&c=400).

**Next steps**

[Manage your Klarna (recurring) payment](/access/products/apms/manage/)