Klarna Docs - Payment form and interoperability data
Payment form and interoperability data

Enable a seamless Klarna checkout experience by integrating its payment presentation and interoperability features to enhance the checkout experience with up-to-date payment method listings.

With this integration path:

  • Partners are responsible for building the payment form and selector.
  • Acquiring Partners must support this by:

    • Documenting Klarna’s presentation requirements.

    • Ensuring API compatibility with Klarna's Payment Presentation API

Acquiring Partners must:

  • Include Klarna’s official presentation requirements in their documentation.
  • Ensure that Partners implement these requirements properly.
  • Refer to Klarna’s documentation for how to present Klarna.

This step only applies to Acquiring Partners that have APIs that allow Partners to retrieve available payment methods.

If an Acquiring Partner provides an API for retrieving payment methods, it must:

  • Accept interoperability_token and interoperability_data in requests.
  • Use Klarna’s Payment Presentation API to fetch the most up-to-date Klarna content.
  • Include Klarna-specific display instructions and assets (labels, icons, etc.) in the API response sent to Partners.

Klarna uses interoperability_token and interoperability_data to ensure all information and context associated with a Payment Transaction is preserved throughout the journey of a customer. These must be forwarded accurately.

Below an example of how Acquiring Partners can accept the interoperability parameters in their Get Payment Method API endpoint.

Sample request

JSON
{
  "currency": "USD",
  "amount": 17800,
  "locale": "en-US",
  "payment_method_options": {
    "klarna": {
      "interoperability_token": "eyJhbGciOiJ...",
      "interoperability_data": "****"
    }
  }

You should name these fields clearly, using either:

  • klarna_interoperability_token / klarna_interoperability_data, or
  • interoperability_token / interoperability_data (in Klarna-specific context).

This ensures easy identification for any Partner.

Parameter validation guidelines

As those parameters can change over time and are versioned so that the third party integration continues to work, Acquiring Partners need to respect these guidelines if they wish to validate parameters:

  • interoperability_token: JWT (≤ 8192 characters)
  • interoperability_data: stringified JSON object (≤ 10240 characters)

Do not modify the values. Forward them exactly as received.

The Klarna Payment Presentation API enables Acquiring Partners to retrieve Klarna-branded presentation assets (e.g. button text, icons, descriptors) tailored to a specific payment context. These assets help Partners render Klarna in compliance with Klarna’s brand and UX guidelines.

This API is intended to be used server-side, and its response should be incorporated into the Acquiring Partner’s own API that returns available payment methods.

Request

ParameterLocationDescription
partner_account_idPathThe unique identifier of the Partner account. This is used to scope the request.
Klarna-Interoperability-TokenHeaderThe interoperability token provided by the Partner. Required for interoperability-based flows.
localeBodyThe locale to use for localization of Klarna assets (e.g., en-US, fr-FR).
amountBodyThe total payment amount in minor units (e.g., 11836 = $118.36).
currencyBodyISO 4217 3-letter currency code (e.g., USD, EUR).
intentsBodyList of requested intents. Currently, ["PAY"] is the supported value.

Sample request

JSON
{
  "locale": "en-US",
  "amount": 11836,
  "currency": "USD",
  "intents": ["PAY"]
}

Response

FieldTypeDescription
instructionstringKlarna display instruction (e.g., SHOW_KLARNA, HIDE_KLARNA, etc.).
payment_buttonobjectContains the label to be used on the Klarna payment button.
descriptorobjectContains all Klarna display assets for the payment selector, including:
  • header: Main title (e.g., "Pay with Klarna")
  • subheader.short: Short message (e.g., "Pay in 4.")
  • subheader.enriched: Detailed offer text with optional link
  • icon: Badge images (square, rectangle, alt text)

Sample response

JSON
{
  "instruction": "SHOW_KLARNA",
  "payment_button": {
    "text": "Pay with Klarna"
  },
  "descriptor": {
    "header": {
      "text": "Pay with Klarna"
    },
    "subheader": {

Your API response (e.g., for Get Payment Methods) should include Klarna-specific payment presentation data so your Partner can render the payment method correctly.

You have two options:

  1. Map Individual Fields : Extract and structure the response from Klarna’s Payment Presentation API and map relevant keys (e.g., descriptor, payment_button) into your API response format.
  2. Serialize the Entire Response : Alternatively, you may populate a single field—klarna_payment_presentation_data—with a serialized version (e.g., JSON string) of the full response obtained from Klarna’s Payment Presentation API. This avoids the need to map each field individually.
JSON
{
  "paymentMethods": [
    {
      "name": "VISA",
      "type": "scheme"
    },
    {
      "name": "Pay with Klarna",
      "type": "klarna",
      "klarna_payment_presentation_data": "{\"instruction\":\"SHOW_KLARNA\",...}"

You may structure the response to fit your API format, but ensure that the Klarna presentation data is clearly identifiable. Use a field name like:

  • klarna_payment_presentation_data
  • or payment_presentation_data (when used specifically for Klarna)

This makes it easy for Partner integrations to parse and use Klarna presentation data dynamically.

  • Include Klarna presentation rules in your documentation
  • Support interoperability_token and interoperability_data in your APIs
  • Forward these values unaltered to Klarna’s APIs
  • Use Klarna’s Payment Presentation API to fetch assets
  • Return Klarna’s presentation data to your Partners in a consistent format.
  • Optionally serialize the full response from the Payment Presentation API into klarna_payment_presentation_data