Frequently asked questions

In this guide, you can find answers to frequently asked questions about SPI.


Find more answers in the frequently asked questions for Spice but note that some are not relevant to SPI.


How to download the latest version of SPI?

The latest version of the SPI library (@mx51/spi-client-js) can be installed in your JavaScript project using npm.

npm install @mx51/spi-client-js

Is there a sample application made using SPI?

Yes, you can download the sample application’s code at the link below.

SPI sample application Latest version

EFTPOS pairing

How to check if SPI is paired and connected with an EFTPOS terminal?

Listen for the ‘StatusChanged’ event as it contains this information.

Can SPI pair with multiple terminals at once?

This is possible when using Pay at table.

What causes the 'NAME_NOT_RESOLVED' error when pairing?

This error is caused when spi.SetTenantCode(...) is used to set a tenant code that is not in the list of available tenant codes. To get this list, call SpiClient.GetAvailableTenants(...). Learn more

POS Steps to reconnecting the EFTPOS terminal after POS crash and relaunch

In case of POS App crash/closer and relaunch, to reconnect with the already paired EFTPOS terminal POS need to pass in the stored secret and other info when initiating a new Spi object before calling the .start() ,
it would be something like below

const spi = new Spi('posId', 'serialNumber', 'eftposAddress', storeSecret)


How to make transaction receipts print from the EFTPOS terminal?

You will need to set spi.Config.PromptForCustomerCopyOnEftpos as true. Learn more

What happens if internet connection is lost during a transaction?

If there is a network outage or internet disconnection during a transaction, SPI can recover the transaction and return the result.

Signature transactions

What causes a transaction to require a signature?

Whether a transaction requires a signature is determined by the customer's card or bank account. It is not determined by the merchant or SPI. For instance, international cards often require a signature when used overseas.

How to handle the 'SignatureFlowOnEftpos' setting?

No additional logic is needed for your SPI integration to handle the spi.Config.SignatureFlowOnEftpos setting. This is because when this setting is enabled, the EFTPOS terminal handles the signature workflow, allowing your POS to handle it as a normal transaction.

When this setting is enabled and a signature is required for a transaction, a 'signature required' message will not be returned. Instead, a standard 'TxFlowStateChanged' event will be returned (but only after the EFTPOS terminal completes the signature workflow).