After fully integrating the Limepay checkout using our direct API integration, it can now be modified to enable business to business (B2B) transactions.
If you are using Limepay in a more conventional business to customer configuration, this section is not relevant to your integration.
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 Limepay. They have integrated (and make sales through) the Limepay 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.
As in direct integration (B2C), Limepay will issue the merchant with two API keys:
- A secret key: used for calls from the merchant’s back-end system to Limepay APIs.
- A publishable key: passed to the checkout on initialisation and used internally by the checkout to call select Limepay APIs.
In a B2B transaction, business (organisation) customers must be explicitly onboarded before they can make purchases. This is achieved via the Organisation Customer [Upsert] API call.
The onboarding process produces a Limepay internal 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.
Once a customer has been onboarded, its delegates can place orders through the Limepay checkout after being logged in during checkout initialisation. The login process is achieved through either the Customer Delegate User Org Customer Id [Signin] or Customer Delegate User [Signin] API calls. This will produce an authentication token for passing to the checkout initialisation sequence.
Customer Delegate User Org Customer Id [Signin] uses the merchant’s internal identifier to identify the customer,
Customer Delegate User [Signin] requires the Limepay internal customer identifier returned by the
Organisation Customer [Upsert] call from the on-boarding. Either option will work.
Your Limepay 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 Limepay.
This token is passed to the checkout initialisation in the
customerToken field along with other data pre-population fields.