# Business to Business Integration After fully integrating the April checkout using our **[direct API integration](/developer-portal/direct-integration-landing)**, it can now be modified to enable business to business (B2B) transactions. If you are using April in a more conventional business to customer configuration, this section is not relevant to your integration. ## Terminology For this configuration, we will use the following terminology to identify participants in a B2B relationship: - **Merchant:** The entity with a direct financial relationship with April. They have integrated (and make sales through) the April checkout. In a B2B relationship, an example *merchant* might be a food supplier. - **Customer:** An entity making purchases from the *merchant*. In a B2B relationship, a *customer* would be another business, for example a restaurant. In the code, this entity is often represented as “organisation”. - **Delegate:** An individual authorised to place orders with the *merchant* on behalf of the *customer*. An example *delegate* might be a chef who works at the restaurant. ## B2B Merchant API Keys As in direct integration (B2C), April will issue the merchant with two API keys: - A secret key: used for calls from the merchant’s back-end system to April APIs. - A publishable key: passed to the checkout on initialisation and used internally by the checkout to call select April APIs. ## Customer Onboarding In a B2B transaction, business (organisation) customers must be explicitly onboarded before they can make purchases. This is achieved via the [Upsert Customer](/openapi/april-public/customers/upsertcustomer) API call providing an `Organisation` customer type . The onboarding process produces an April system identifier for storage against the customer in the merchant’s database, for subsequent inclusion in future checkout authentication tokens. Onboarding customers is idempotent, so if the same customer is accidentally added a second time it will not create a duplicate identifier. ## Customer Login and Purchases Once a customer has been onboarded, its delegates can place orders through the April checkout after being logged in during checkout initialisation. The login process is achieved the [Sign In Customer](/openapi/april-public/authentication/signincustomer) API call. This will produce an authentication token for passing to the checkout initialisation sequence. `Sign In Customer` has two options for organisation customers. `SignInDelegateByReferenceId` type uses the merchant’s reference identifier to identify the customer, whereas `SignInDelegate` type requires the April internal customer identifier returned by the `Upsert Customer` call from the on-boarding. Either option will work. Your April checkout has now been configured to function effectively with your business customers. In B2B checkout mode, the merchant calls the Customer Login API to get an authentication token from April. This token is passed to the checkout initialisation in the `customerToken` field along with other data pre-population fields. br br **[Return to documentation home](/).**