Multi Payment Provider Upgrade - SPI Library

What Is It?

As mx51 onboards more payment providers, we will be adding them to our in-store payments capabilities. This will allow POS the ability to display multiple payment providers from mx51 dynamically without the need to upgrade the library each time.

A new method will be exposed by our SPI library which lists the payment providers (this is called tenant inside SPI library). POS can list mx51's payment providers by calling this new method, and the list will be updated by mx51 each time we add a new payment provider to our capabilities.

For example, mx51 currently supports payment provider alpha. After a POS has implemented this method call, when mx51 add payment provider beta, the payment provider will be exposed dynamically on the POS.

📘

SPI Library Versions

Multi payment provider is available on versions 2.6.6 onwards for iOS/Java and 2.8.4 onwards for .NET/JavaScript

POS Design and Workflow

In POS’s Payment Type or Eftpos selection, include a Simple Payments Integration button. This represents mx51’s in-store integration using our SPI Library.

Once Simple Payments Integration is selected, a list of payment providers should be retrieved using the static method call to SPI library which will then return an object:

// posVendorID - This is the POS identifier, same as the one you provided in SetPosInfo() method
// apiKey - apiKey provided by mx51</param>
// countryCode - 2 digit ISO Country code, eg. AU
GetAvailableTenants(string posVendorId, string apiKey, string countryCode)
// posVendorID - This is the POS identifier, same as the one you provided in SetPosInfo() method
// countryCode - 2 digit ISO Country code, eg. AU
// apiKey - apiKey provided by mx51
static async GetAvailableTenants(posVendorId, apiKey, countryCode)
// posVendorID - This is the POS identifier, same as the one you provided in SetPosInfo() method
// countryCode - 2 digit ISO Country code, eg. AU
// apiKey - apiKey provided by mx51
GetAvailableTenants(String posVendorId, String apiKey, String countryCode)
// posVendorId - Unique identifier for the POS vendor
// apiKey-  Device API key that was provided by mx51 to identify the POS
// countryCode - An ISO 3166-1 alpha-2 country code. i.e for Australia - AU
getAvailableTenants:(NSString *)posVendorId
             apiKey:(NSString *)apiKey
        countryCode:(NSString *)countryCode
         completion:(SPITenantsResult)completion;

The POS should then display a list of payment providers using this object. Once a payment provider has been selected by the merchant, the pairing screen should now be active and the POS will pass the right tenant code to the following code:

// AcquirerCode - this is the tenant code selected from the list above
SetAcquirerCode(string acquirerCode)
// this is the tenant code selected from the list above
SetAcquirerCode(acquirerCode)
// this is the tenant code selected from the list above
setAcquirerCode(String acquirerCode)
// this is the tenant code selected from the list above
setAcquirerCode:(NSString *)acquirerCode

Important Note
We will be mandating that a text field (see screenshot) to be included during the payment provider selection. This allows a merchant to enter a tenant code in the event that no payment provider is being displayed. This will stop the POS from locking up as well as allow the ability for the merchant to manual override in this scenario.

Next Steps

With the amount of work required to enable Multi-tenant, the POS will be required to complete a certification. Please arrange some time to speak with the Integration Team, to discuss testing and the next steps.

📘

Important Message

As the POS update is rolled out, merchants/clients will be affected by the multi-tenant update. Our merchants may experience changes with the Integration between the terminal and POS as the Acquirer is not set. As such, we should try to mitigate this by ensuring the Acquirer selected for existing merchants are not affected. Our Support Team can help with the monitoring of sites/locations and repairing.