Onboard your first partner to Klarna, submit all required data, store the response and configure account lifecycle webhooks to receive real-time notifications about your Partner Account.
Run the onboard API call to create a fully functional Partner Account in Klarna Network, then subscribe to the account lifecycle webhook to know exactly when setup completes. This guide focuses on the asynchronous nature of onboarding and clarifies what to store, what to expect from responses, and which webhooks to use.
The onboard operation can also be used to create new resources on an existing Partner Account. See Creating new resources on an existing Partner Account for details.
Identify the correct Payment Profile and Payment Acquiring Account for the Partner you’re onboarding:
Build the onboard payload using your system’s references so the Partner Account maps cleanly to your internal records.
Example request payload:
{
"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"
},
"products": [
{
"type": "PAYMENT",Adjust the references and identifiers to match your own business entities, brands, and stores.
Call the onboard operation from your backend (never from a client app).
Klarna-Idempotency-Key header for each logical onboarding request so that safe retries do not create duplicate Partner Accounts.partner_account_idpayment_acquiring_account_id and payment_account_reference for each created payment account
Avoid performing other Partner Account management actions until onboarding is confirmed operational by webhook (see Step 4).If the call fails with validation errors (for example, 4xx responses), correct the payload and, when appropriate, retry with the same Klarna-Idempotency-Key to keep the onboarding idempotent.
Subscribe your webhook endpoint to the account lifecycle events so you know when onboarding is complete and when brand data needs attention.
Recommended events:
partner.account.state-change.operational — Indicates that the Partner Account setup across Klarna systems is complete. Treat this as the signal that the Partner Account is fully operational for ongoing management actions.partner.account.brand.data-incomplete — Indicates that submitted brand data (for example, logo_url) is invalid or incomplete. This event is informational and does not block onboarding, but you should correct the brand data promptly for accurate brand representation.You can call the onboard endpoint multiple times for the same Partner Account to create new resources (Brands, Store Groups, Stores, Payment Accounts, or Partner Business Entities). This is particularly useful when Partner information becomes available progressively or when you need to expand an existing Partner Account.
Use the onboard operation to create new resources when you need to:
partner_account_reference as the existing Partner Account.Klarna-Idempotency-Key.brand_reference), all fields must match what Klarna has stored. Any mismatch results in a 409 Conflict error.Klarna-Idempotency-Key for each logical onboardpartner.account.state-change.operational) when creating new resources as you do when creating a Partner Account.Scenario: A Partner initially onboarded with one Store Group wants to add a new Store in a different market.
M123786123412 exists with Store Group STORE_NY004.partner_account_reference and include only the new Store Group STORE_EU005.Klarna-Idempotency-Key.For detailed payload examples, see Creating new resources on an existing Partner Account.
Use your test environment to validate the full onboarding flow:
Creating a Partner Account:'
partner_account_id and the payment_acquiring_account_id and payment_account_reference pairs.partner.account.state-change.operational for the new Partner Account and that your logs include the full payload.logo_url (for example, a URL that returns 404) and verify your webhook endpoint receives partner.account.brand.data-incomplete.Creating new resources on an existing Partner Account:
partner_account_reference and only new resources (for example, a new Store Group) and confirm a 2xx response.display_name). Confirm you receive a 409 Conflict error.Klarna-Idempotency-Key without creating duplicate resources.Common HTTP responses
Klarna-Idempotency-Key.payment_account_reference for the selected payment_acquiring_account_id, or duplicate reference for another resource type.
display_name and other fields match exactly.Klarna-Idempotency-Key.Related articles
API & SDK references