# Business to Business (B2B) This page details the integration and implementation of Kustom Checkout for Business-to-Business (B2B) transactions. ## How it’s done Kustom Checkout can be configured for B2B in Austria, Belgium, Denmark, Finland, France, Germany, the Netherlands, Norway, Spain, Sweden, the United Kingdom and Switzerland. ### Billie as a B2B payments provider Billie provides Buy Now, Pay Later (BNPL) payment methods for business customers. Billie is available in Austria, Belgium, Denmark, Finland, France, Germany, the Netherlands, Norway, Spain, Sweden, the United Kingdom and Switzerland. Important B2B via Billie is only available in the United Kingdom (GB) for merchants registered in the UK, and in Switzerland (CH) for merchants registered in Switzerland. ## Prerequisites * Kustom Checkout is implemented. * Your Merchant ID is enabled for B2B. Reach out to [support@kustom.co](mailto:support@kustom.co) for assistance with activating it. ## How it works The B2B flow in Kustom Checkout is built on the same underlying logic and API as the B2C flow. This means merchants can reuse their existing integration and only need to apply the adjustments described in the implementation section. For business customers, a dedicated user flow is introduced, allowing shoppers to switch between B2C and B2B during checkout. In the B2B flow, organization details (such as organization number) are required, and shipping and billing addresses can be configured separately. Both invoice and card payments are supported, as well as recurring orders. You can also provide separate terms and conditions for the B2B flow by supplying a dedicated link; if no B2B-specific terms are provided, the default B2C terms are used. ## Implementation flow ### Step 1 - Configure the checkout Before loading the checkout, configure options for the B2B flow. #### 1a. Enable B2C/B2B flow choice Configure the `allowed_customer_types` option in the checkout order to include both "person" and "organization". ```json "options": { "allowed_customer_types": ["person", "organization"] } ``` #### 1b. (Optional) Render B2B flow by default Optionally render the B2B flow by default, setting the `customer.type` field to "organization". ```json "customer": { "type": "organization" } ``` #### 1c. (Optional) Prefill organization number Optionally prefill the organization number with the `organization_registration_id` field. ```json "customer": { "type": "organization", "organization_registration_id": "556036-0793" } ``` #### 1d. (Optional) Set specific B2B terms Use the `merchant.organization_terms_uri` field to provide separate terms for the B2B flow. If not set, the default B2C terms are used. ```json "merchant.organization_terms_uri": { "your URI string" } ``` ### Step 2 - Load the checkout Load the checkout as usual. The customer can switch between B2C and B2B flows. ### Step 3 (Optional) - Listen for customer interaction events Subscribe to the `load` event to receive customer data and flow type before the order is placed. ```javascript _klarnaCheckout(function(api){ api.on({ load: function(data){ console.info(data) } }) }) ``` The `shipping_address_change` event can also be used for similar purposes. ### Step 4 - Parse organization address details Handle the push POST request when the customer places the order. The `customer.type` field in the order will identify whether the order was placed by an organization or a person. ```json "customer": { "type": "organization", // optionally, this could be set to "person" "organization_registration_id": "556036-0793" }, ``` The `billing_address` will potentially include additional fields for organization details (e.g., `organization_name`, `reference`). **Note:** Contact Kustom to enable B2B support for your e-store ID before going live.