Use onboard operation to streamline Partner onboarding, ensuring accurate data submission, compliance, and seamless access to Klarna Payment Services.
The onboard payload is the request body you send when you call the onboard request in the Klarna's API. It creates the Partner Account and related structures (Partner Business Entities, Payment Products and Payment Accounts, Brands, Store Groups, and Stores) that Klarna needs to process payments on behalf of the Partner.
This article explains how to:
Before you build the onboarding payload, define the Partner’s account structure in your own system and align it with Klarna’s model. Once the account structure is defined, you should map all data points collected by your system to Klarna’s onboard payload.
Before you build the onboarding payload, define the Partner’s account structure in your own system and align it with Klarna’s model. Follow Modeling your Partner Account to decide how to represent:
After the structure is defined, map all Partner data points from your system to the onboard payload.
Each property in the payload falls into one of three categories:
It is essential for you to provide all relevant and available Partner information as specified in the data transfer and cooperation agreement with Klarna.
Always include available company registration data in supplementary_business_data.legal_registration, including:
The stakeholders object in supplementary_business_data should always be provided. For Partners without formal registration information, such as sole traders, stakeholders is especially important as it serves as the primary identification data when legal_registration fields are not available.
Read Legal Registration Number for detailed instructions to be compliant with Klarna Network Rules.
{
"partner_account_reference": "M123786123412",
"partner_account_name": "John Doe Stakehouse",
"partner_account_contact": {
"given_name": "John",
"family_name": "Doe",
"email": "john.doe@example.com",
"phone": "+18445527621"
},
"partner_business_entities": [
{
"partner_business_entity_reference": "LE_US002",The example provided here is for illustrative purposes only. The parameters required for onboarding may vary based on your commercial agreement and the parameters available to you.
{
"partner_account_id": "krn:partner:global:account:test:MABCDEFG",
"partner_account_reference": "M123786123412",
"partner_account_name": "John Doe Stakehouse",
"state": "PARTIALLY_OPERATIONAL",
"state_reason": "INITIAL_SETUP"
}When Klarna successfully completes onboarding, Klarna creates the Partner Account and returns a partner_account_id in the response. Store this identifier so you can use it in later API integrations, including the Payments API.
After a successful onboarding run, the Partner Account will be in the PARTIALLY_OPERATIONAL state and is ready to process payments in all markets where Klarna is enabled for that Partner. Some setup steps still continue in Klarna systems in the background. For more detail about state changes after onboarding, see the Partner Account lifecycle.
Several identifiers in the onboarding payload and response are required in later integrations. Storing these identifiers at onboarding time is essential to integrate the Payments API and other Klarna APIs consistently.
partner_account_id: Returned by Klarna in the onboardpayment_acquiring_account_id and payment_account_reference : Sent in the onboardThe onboard operation can be used to create new resources on an existing Partner Account. When you call onboard
with an existing
partner_account_reference, Klarna identifies the existing Partner Account and adds any new resources included in the payload.
This capability is useful when:
partner_account_reference.409 Conflict error.brand_reference, the display_name and all other fields must match what Klarna has stored. Any mismatch results in a 409 Conflict error.The following example demonstrates how to add a new Store Group and Store to an existing Partner Account.
Scenario: The Partner Account with reference M123786123412 already exists. You want to add a new Store Group for a different market without resending all existing data.
{
"partner_account_reference": "M123786123412",
"partner_account_name": "John Doe Stakehouse",
"store_groups": [
{
"store_group_reference": "STORE_EU005",
"brand_reference": "d7e26b06-8fe0-4702-91fb-9d4a65068dec",
"stores": [
{
"store_reference": "eu-store-001",
"type": "WEBSITE",
"url": "https://eu.example.com"In this example:
partner_account_reference matches an existing Partner Account.STORE_EU005) is included in the payload.brand_reference (d7e26b06-8fe0-4702-91fb-9d4a65068dec) already exists and is being referenced for the new Store Group.display_name), the request would fail with a 409 Conflict.Some data points become immutable after onboarding. You cannot change these fields by sending another onboarding payload or an update call, therefore is critical to ensure these values are correct before you send the onboard request.
Related articles
API & SDK references