Partner Accounts

The Partner Account is the primary resource for interacting with Klarna's APIs. It serves as the root entry point for all API operations and contains all metadata and configuration details that represent a company within the Klarna ecosystem.

A Partner Account represents a company that interacts with Klarna. It serves as the entry point to all Klarna APIs and holds essential company-level data. Regardless of how many legal entities, websites, or brands a company has, only one Partner Account is required to collaborate with Klarna.

A Partner Account does not have a specific type. Its relationship with Klarna is defined through the products it connects to:

Partner Accounts also connect to multiple foundational resources, including API Credentials, Portal Users and Webhook configurations.

graph PA(Partner Account) PP(Partner Product) PAC(Product Account Contact) APIK(API Credential) WEBC(Webhook Configuration) POR(Portal User / Access) PBE(Partner Business Entity) SG(Brand & Stores) PA -->|1..n| PP PA -->|1..n| SG PA -->|1..n| PBE PA -->|1..1| PAC PA -->|1..n| APIK PA -->|1..n| WEBC PA -->|1..n| POR class PA primaryEntity

These relationships determine how a Partner Account functions within Klarna's ecosystem.

Partner AccountsKlarna Icon

Copied

PATCH:/v2/accounts/{partner_account_id}
Show recommended
ParameterRequiredDescription

Copied

state
Yes

The current state for the Partner Account

Copied

partner_account_id
Yes

Unique identifier assigned by Klarna to the onboarded partner.

Copied

partner_account_reference
Yes

Provide a unique string reference for the Partner account to identify it within the integrator system without relying on Klarna-generated IDs. This reference is used to associate requests with the correct Partner account. Ensure the referen...

Copied

partner_account_name
Yes

A human-readable name that represents the current partner, such as the company conglomerate name, a brand, or similar. Not used for customer interactions.

Copied

partner_account_contact
Yes

Provide the key contact details for the Partner account. The server validates that this field contains a non-empty, valid object representing the contact. Ensure the object includes the required contact attributes.

Copied

-email
Yes

E-mail address. Regex ^(?=.{1,64}@.{1,255}$)(?:[a-zA-Z0-9!#$%&'+/=?^_{|}~\p{IsLatin}\p{N}\p{S}-&&[^<>]]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_{|}~\p{IsLatin}\p{N}\p{S}-&&[^<>]]+)|"(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|\[\x01-\x09...

Copied

state_reason
Yes

Additional state information when the Account state is ACCOUNT_UPDATE.

Here you can find all required parameters for this operation updateAccountKlarna Icon

Link copied!

The Partner Account lifecycle is defined as:

flowchart LR start((Start)):::teritiaryEntity -->|Onboarding| PO[PARTIALLY_OPERATIONAL]:::box2 PO -->|Async configuration done| OP[OPERATIONAL]:::box1 OP -->|Klarna disables| DIS[DISABLED]:::box3 DIS -->|Klarna enables| OP
StatusDefinition

PARTIALLY_OPERATIONAL

Represents an account that was just onboarded and is currently being set up in our systems. If this account has a payment product, it can already process transactions, but can not yet be managed. This state is transitional, and typically moves to OPERATIONAL within seconds

OPERATIONAL

Represents an account that is fully operational and can both be managed and process transactions

DISABLED

Represents an account that is no longer operational in any respect. It cannot be managed or have new products added. All products within the account are disabled as part of this status.

Status transitions are handled internally by Klarna systems. Manual transitions to DISABLED are performed by Klarna Support and cannot be triggered via API.

Link copied!

Event nameWhenUse cases

partner.account.state-change.operational

An account is fully set up on Klarna's sideShould be used to know when it's possible to update Partner Accounts.

Only status transitions to OPERATIONAL will trigger webhooks to be dispatched. Status transitions to DISABLED are done manually and do not currently trigger any webhook.

The following example reflects the payload structure for partner.account.state-change.operational:

JSON

Copied

{
  "metadata": {
    "event_id": "99bf6248-b3ed-42d9-b2b5-bf560668d42a",
    "event_type": "partner.account.state-change.operational",
    "event_version": "v1",
    "occurred_at": "2025-03-04T13:31:14.603057514Z",
    "account_id": "krn:partner:global:account:test:M48JTZF8",
    "recipient_account_id": "krn:partner:global:account:test:M48JTZF8",
    "subject_account_id": "krn:partner:global:account:test:M7UJ6WZ2",
    "webhook_id": "krn:partner:global:notification:webhook:8e3e2120-04fd-4975-88fa-fd26299c4280",

This payload differs slightly from general webhook events because it does not include a product_id, as the event applies to the entire account.

Link copied!

Use the onboardKlarna Icon operation to create a Partner Account. Learn more about how to execute the onboard here.Klarna Icon

Use the getAccountKlarna Icon operation to list all properties of an account. The expand query parameter can be used to add sub-resources to the response.

To update Partner Accounts, use the updateAccountKlarna Icon operation. It follows as a RESTful PATCH approach, meaning that only the properties sent on the payload of the request will be affected. Read more about when to update here.

There is no support to delete a partner account. To disable new transactions on a Partner Account, disable the Payment Product instead.

Link copied!