Sometime an order is placed on behalf of an organization, not an individual. We refer to this as the Business to Business flow, or B2B flow, for Klarna Checkout. The B2B flow comes with some differences in the user experience and integration compared to the Business to Consumer flow (B2C).
Klarna Checkout can be configured to support B2B in Sweden, Norway and Finland.
From an implementation point of view, B2B for Klarna Checkout is utilizing the same logic and API as the regular Klarna Checkout for B2C (Business to Consumer). This means you will re-use your existing Klarna Checkout integration and just make the changes described in the Implementation flow below.
When enabling support for B2B you introduce a new user flow, meaning there will visually be one option for business customers and a separate option for a regular consumer in the Klarna Checkout. The B2C flow is loaded as default, but you can optionally render the B2B flow by default to a known business customer.
The B2B flow for Klarna Checkout will be configured by Klarna on the same e-store ID as the regular B2C Klarna Checkout.
Follow these steps to enable the B2B flow in your existing Klarna checkout integration.
Before loading the checkout, you will set the relevant options to indicate that B2B should be included.
When configuring the checkout order, set the options for
allowed_customer_types to both person and organization.
By default, the regular B2C user flow will be rendered when the checkout loads. If you instead want to render the B2B flow when it loads, you can optionally set the
customer.type field to organization.
If you have the organization number available for this business, you can optionally prefill it in the checkout by setting it in the
organization_registration_id field. That way the customer will not have to enter them again in the checkout, but still has the option to change it if it is incorrect.
In order for a merchant to display their b2b and b2c terms differently it is possible to have a separate links. The terms are displayed in the same place as the b2c terms. In addition to the existing field that can be used for adding legal terms for B2C (merchant.terms_uri), a separate field called
merchant.organization_terms_uri is also available. If set, the terms from that field will be presented when the customer is in the b2b flow. If not set then the terms from merchant_uri will be used.
Create the order and render the checkout as usual. The customer should now be able to switch between the B2C and the B2B flows.
The customer starts entering the required fields in the B2B flow. The additional fields will be the organization id and an optional “Reference” field where they may for example add their name or department.
Start by subscribing to the load event.
You will now be notified about customer data including the flow type and partial shipping address before the order is placed. When the customer switches the flow, the checkout reloads and callback is triggered again.
Here is a sample of the notification from the callback
In order to listen shipping address change events before the order is placed, the relevant shipping_address_change event must be used in the same way.
The B2B customer places the order when they press the buy button. When you handle the push POST Request placed in the B2B flow, the customer object contains a type which identifies if this was an organization or a consumer (person).
If the customer.type is organization, the billing address includes potentially two additional fields called
reference. Note that empty fields are not returned, so if the reference was not entered by the customer, it will not be available in the response.
This was the final step.
Please note: You need to contact Klarna to enable B2B for any applicable e-store ID before going live.