Implement the recommended access solution featuring two entry points: deep linking from your portal and an AP button on Klarna's login page. This complete package provides secure, passwordless access with the best user experience.
A button or link in your Partner-facing admin portal that uses the Deep Link API to provision access and redirect Partners directly to Klarna Partner Portal.
Partners already logged into your portal who want to access Klarna features.
From Klarna Partner Portal login
A button on Klarna Partner Portal's login page that redirects Partners to your authentication system, then provisions access via Deep Link API.
Partners starting their journey from Klarna Partner Portal or bookmarking Klarna Partner Portal directly.
Both entry points use the same Deep Link API and JWT signing mechanism. You only need to implement the JWT generation once to enable both entry points.
Before implementing this solution, ensure you have completed the common prerequisites.
Additionally, you will need:
Public-facing URL (for Klarna Partner Portal login) where Partners can authenticate
Important: This method requires JWT signing with a client certificate. If you haven't completed the JWT setup yet, follow the JWT signing setup in the Overview page first.
Note: The amr (authentication methods reference) field is required for deep linking. Use ["pwd"] to indicate password authentication is implemented on your side.
On success, the endpoint responds with 200 OK, returning a JSON payload that includes a url property to use as the deep link.
Important characteristics:
One-time use: Each deep link can only be used once
Expires in 60 seconds: Request a new link if not used immediately
Session timeout: The session is automatically terminated after 8 hours of inactivity.
Only request deep links when the Partner explicitly wants to enter Klarna Partner Portal. Deep links may only be generated for accounts onboarded via your services.
sequenceDiagram
participant A as User
participant B as Acquiring Partner
participant C as Management API
participant D as Klarna Portal
A->>B: User clicks "Go to Klarna"
B->>C: Creates short lived deep-link URL
alt Signed request (JWT) - Klarna will require 2FA only for the User to log in
Note over B,C: POST /v2/accounts/{partner_account_id}/<br/>portal/deep-links <br/> <<Signed JSON Web Token (JWT)>>
else Unsigned request - Klarna will require both password and 2FA to log in
note over B,C: POST /v2/accounts/{partner_account_id}/<br/>portal/deep-links <br/> {<br/>"subject": "john.doe@example.com",<br/>"roles": [<br/>"merchant:admin"<br/>}
end
B -->>C: 200
note over B,C: {<br/>"url": "https://auth.eu.portal.klarna.com/..."<br/>}
B -->>A: 200
note over A,B: {<br/>"url": "https://auth.eu.portal.klarna.com/..."<br/>}
A ->>D: User is redirected to the Klarna Portal
This entry point displays a "Continue with [Acquiring Partner]" button on Klarna Partner Portal's home screen. When Partners click this button, they are redirected to your authentication system.
Extract the deeplink_session_token from the query parameters
Generate your signed JWT (same process as Entry Point 1)
Call the createDeepLink endpoint with the JWT, including the deeplink_session_token from Klarna
Redirect the Partner to the URL returned by the Deep Link API
sequenceDiagram
participant A as User
participant B as Klarna Portal
participant C as Acquiring Partner Portal
participant D as Management API
A->>B: User clicks "Continue with Acquiring Partner" button
B->>A: Redirect to AP's Klarna Access Provision URL<br/> with {deeplink_session_token}
A->>C: Load Klarna Access Provision URL
opt If the user is not already authenticated with the Acquiring Partner system
A->>C: Enter credentials
C->>C: Authenticates
end
C->>D: Creates short lived deep-link URL
alt Signed request (JWT) - Klarna will require 2FA only for the User to log in
Note over C,D: POST /v2/accounts/{partner_account_id}/<br/>portal/deep-links <br/> <<Signed JSON Web Token (JWT)>>
else Unsigned request - Klarna will require both password and 2FA to log in
note over C,D: POST /v2/accounts/{partner_account_id}/<br/>portal/deep-links <br/> {<br/>"subject": "john.doe@example.com",<br/>"roles": [<br/>"merchant:admin"<br/>],<br/> "deeplink_session_token": "<<deeplink_session_token>>"<br/>}
end
D -->>C: 200
note over C,D: {<br/>"url": "https://auth.eu.portal.klarna.com/..."<br/>}
C -->>A: 200
note over A,C: {<br/>"url": "https://auth.eu.portal.klarna.com/..."<br/>}
A ->>B: User is redirected to the Klarna Portal
Following these steps will enable the "Continue with [Acquiring Partner]" button on Klarna Partner Portal's login screen and ensure a secure and streamlined login experience for Partners.
If you cannot implement signed JWT deep linking due to technical constraints, unsigned deep linking is available as a fallback.
Not Recommended: This approach requires users to set up a password when accessing Klarna Partner Portal, adding an additional step that degrades user experience. Only use this if signed deep linking cannot be implemented.
With unsigned deep linking:
You call the Deep Link API without providing a JWT
You provide the user's email address and other parameters directly
MFA is enforced within Klarna Partner Portal (instead of your portal)
Users must set up a password on first access
For unsigned deep linking parameters, see createDeepLink .