Integrate On-site messaging with Klarna mobile SDK
Boost transparency and conversions by integrating Klarna's Mobile SDK to display payment messaging.
6 min read
Messaging on the product detail page
Messaging in the checkout
Prerequisites
Before you integrate On-site messaging, please check that you meet the following conditions:
1.
Ensure that you have Klarna enabled with your Acquiring Partner.
2.
Confirm you have access to the Klarna Partner Portal.
3.
Inside Klarna Partner Portal:
3.1.
Confirm that you have generated a client identifier with your domain URL allowlisted.
3.2.
Confirm that you have generated an API key.
Integration overview
This guide will cover both iOS (Swift) and Android (Kotlin) integrations.
Adding On-Site Messaging to your native app is a straightforward process. At a high level, to achieve this tailored experience for your users, you will need to follow these steps:
Request access to On-Site Messaging.
Add the Mobile SDK Messaging library.
Initialize the Klarna SDK.
Create the native messaging view and add it to your screen.
sequenceDiagram
participant C as Customer
participant P as Partner
participant K as Klarna
participant AP as Acquiring Partner
P->>K: Initialize Klarna SDK
P->>K: Get OSM placement
K->>P: Return messaging/prequalification content
P->>C: Display messaging/prequalification content
alt Prequalification flow - Approved
C->>K: Clicks to check purchase power
K->>C: Start prequalification journey
C->>K: Completes prequalification
K->>P: Send approval event & updated messaging
K->>C: Update placement to show approval
alt Partner builds checkout form
K->>P: Prequalification state preserved
else Checkout form via Acquiring Partner
P->>K: Fetch klarna_network_session_token
P->>AP: Share klarna_network_session_token
end
end
Add Mobile SDK Messaging Library
iOS
Swift Package Manager
In Xcode, navigate to File → Swift Packages → Add Package Dependency and enter the repository URL:
https://github.com/klarna/klarna-mobile-sdk-spm
In Version, Select Up to Next Major and take the default option. Then choose KlarnaNetworkMessaging in the Package Product column.
Cocoapods
If you’re using Cocoapods, you can add the SDK by adding the dependency to your Podfile:
SWIFT
1
2
pod "KlarnaNetworkMessaging"
Followed by performing:
SWIFT
1
2
pod install
You should then be able to import the KlarnaNetworkMessaging module in your workspace.
Android
First, add the Klarna Mobile SDK Maven repository:
The first step to add On-Site Messaging to your application is to initialize the Klarna SDK and provide the required configuration:
SWIFT
1
2
3
4
5
6
7
8
9
10
// Create an instance of KlarnaConfiguration
let configuration = KlarnaConfiguration(
clientId: clientId,
locale: locale,
klarnaNetworkSessionToken: klarnaNetworkSessionToken
)
// Initialize Klarna
let klarnaResult = Klarna.initialize(configuration: configuration)
do {
self?.klarnaInstance = try klarnaResult.get()
Parameters
Param
Type
Presence
Description
clientId
String
Required
The client ID of the partner account that is integrating the Mobile SDK. If the integration is done by a PSP/DP then this must be set to the distribution partners own client ID.
locale
String
Optional
Set the default locale(ISO 3166-1 alpha-2) for the SDK. System default locale will be used if not set.
klarnaNetworkSessionToken
String
Optional
The klarna network session token allows the SDK to be initialized with an existing session. The token is only retrievable server-side via the Network Session API.
Create the Native View
The On-Site Messaging native view is called KlarnaMessagingPlacementView. You can create this view programmatically and add it to your layout with your desired layout options.
SWIFT
1
2
3
4
5
6
7
8
9
10
// Create an instance of KlarnaMessagingPlacementConfiguration
// Depending on your requirements, you can create `CreditPromotionBadge` or
// `CreditPromotionAutoSize` configuration
let placementConfiguration = KlarnaMessagingPlacementConfiguration.creditPromotionBadge(
theme: .automatic,
amount: 10000,
currency: "USD"
)
// Create an instance of the view
let placementView = KlarnaMessagingPlacementView(
Parameters
CreditPromotionBadge
Parameters
Type
Presence
Description
- style="height:25px;"
theme
KlarnaTheme
Optional
Enumerated theme value to specify how to stylize the view on light, dark or automatic (system) configurations.
amount
Long
Required
Amount for the placement. Set in micro units ($120.00 = 12000), used for amount based credit promotions.
currency
String
Required
3-letter ISO 4217 currency code
CreditPromotionAutoSize
Parameters
Type
Presence
Description
- style="height:25px;"
theme
KlarnaTheme
Optional
Enumerated theme value to specify how to stylize the view on light, dark or automatic (system) configurations. Default value is light / LIGHT
amount
Long
Required
Amount for the placement. Set in micro units ($120.00 = 12000), used for amount based credit promotions.
currency
String
Required
3-letter ISO 4217 currency code
KlarnaTheme
Swift Value
Kotlin Value
Descriptions
light
LIGHT
Light style for placement view.
dark
DARK
Dark style for placement view.
automatic
AUTOMATIC
Automatic theme that will use the system’s user interface style.