Token creation - Build the payment form

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

​This guide explains how to provide dynamic Klarna assets to Partners using Klarna’s Presentation API, enabling them to create their own payment selector in line with Klarna’s best practices.

Below is a step-by-step overview for supporting dynamic payment method listing:

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

Example of the payment selector built by a Partner when the Acquiring Partner enables this support:

Initial presentationWhen Klarna is selected

This step only applies to Acquiring Partners that have APIs that allow Partners to retrieve available payment methods. It is identical to the server-side only integration for one-time payments.

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:

ParameterTypeMax lengthValidation

interoperability_token

string8192 charsOptional: verify length only

interoperability_data

string (stringified JSON object)10240 charsOptional: check for valid JSON

The Acquiring Partner can validate the input based on the provided guidelines but must not modify it. The input must always be forwarded as received, without any interference.

The Klarna Payment Presentation APIAPI 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.

Payment Presentation
API
GET:/v2/accounts/{partner_account_id}/payment/presentation
Show recommended
ParameterRequiredDescription
partner_account_id
Yes

Unique account identifier assigned by Klarna to the onboarded merchant

Here you can find all required parameters for this operation getPresentationAPI
API

Your API response (e.g., for Get Payment Methods) should include the Klarna assets returned in the response from the Payment Presentation API, 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
{
  "payment_methods": [{
    "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.