Understand the Klarna network session token and how it enables seamless interoperability across Klarna's product suite. This resource explains the token's role in connecting Conversion Features with payment flows.
The klarna_network_session_token is an opaque token issued by Klarna that enables seamless customer experiences across different Klarna integrations. It carries customer context, session state, and interaction history, allowing continuity throughout the customer journey from Conversion Features through Payment Authorization.
The token is fundamental to achieving interoperability in multi-party integrations where Partners implement Conversion Features and Acquiring Partners process payments. Partners and Acquiring Partners should treat the token as a pass-through value that is forwarded to Klarna in all relevant API calls without validation or modification.
Token usage
Klarna uses klarna_network_session_token as the required token to finalize Payment Authorization.
payment_token, which continues to be returned for backward compatibility but will be removed in future versions. Plan to migrate to klarna_network_session_token.klarna_network_session_token exclusively and ignore payment_token.The Klarna network session token connects customer interactions across multiple touchpoints and resources:
The token enables interoperability by connecting:
The Acquiring Partner can obtain a klarna_network_session_token through the following channels:
Provided by the Partner: The Partner retrieves the token from Conversion Features interactions (Sign in with Klarna, Express checkout, or On-site messaging) and forwards it to the Acquiring Partner.
Exchanged from a Customer Token: The Acquiring Partner exchanges an existing Customer Token for a klarna_network_session_token to carry the customer's saved context into a new session.
Delivered after a Payment Request reaches COMPLETED: When step-up is required, authorizePayment creates a Payment Request in
STEP_UP_REQUIRED. Once the customer completes the Klarna Purchase Journey, Klarna delivers an updated klarna_network_session_token in two ways:
payment.request.state-change webhook payload includes klarna_network_session_token when the request transitions to COMPLETED.state_context.klarna_network_session_token field.The Acquiring Partner uses this updated token to finalize the Payment Authorization and create the Payment Transaction.
Generated through the Network Session API: Use generateKlarnaNetworkSessionToken to obtain a new
klarna_network_session_token that enables stateful Klarna features for a session.
Requested from the Klarna Web SDK or Mobile SDK: After SDK initialization, the SDK issues a new klarna_network_session_token that the Acquiring Partner retrieves to proceed with API calls.
The Acquiring Partner includes the klarna_network_session_token in the following API calls and SDK operations:
Klarna-Network-Session-Token header when calling the authorizePaymentKlarna-Network-Session-Token header when calling the Payment Presentation API. The token enables personalized payment methods based on the customer's session context.The klarna_network_session_token is invalidated after either of the following:
klarna_network_session_token that the Acquiring Partner must retrieve from the SDK to proceed with subsequent API calls.The klarna_network_session_token includes expiration information set by Klarna. Token validity depends on the context:
For Payment Authorization: When issued after a Payment Request completes (state COMPLETED), the token is valid for 1 hour to finalize the Payment Authorization. Use it promptly to create the Payment Transaction.
For general session context: Tokens issued during Conversion Features interactions or SDK initialization have longer validity periods for maintaining session context.
When a token expires:
This design ensures API resilience — expired or invalid tokens don't cause integration failures.
Klarna issues an updated klarna_network_session_token after a Payment Request reaches the COMPLETED state. The updated token is delivered in the payment.request.state-change webhook payload and is also available in the read Payment Request response under state_context.klarna_network_session_token. Replace the previous token with this value in subsequent calls — most importantly, in the Klarna-Network-Session-Token header of the follow-up authorizePayment call that finalizes the Payment Transaction.
The token enables interoperability by preserving customer context as the session flows from Partner-implemented Conversion Features to Acquiring Partner-processed payments. When properly forwarded through all integration points, the token delivers:
When customers interact with Conversion Features before Payment Authorization, the token carries context that can reduce step-up rates and improve conversion.
The Klarna network session token is used to:
Critical: No validation required
Partners and Acquiring Partners should not parse, decode, or validate the token. Expired or invalid tokens are gracefully ignored by Klarna's APIs without causing errors. Simply pass the token through as-is in all API calls.
Related articles