Payment Terminals

Implementation of nexo

The nexo implementation for a business app is just a few messages.

Edit "Implementation of nexo" on GitHub

Implementing nexo When On Device

Implementing nexo for On Device is probably the simplest implementation when using the client only mode and is just a few messages. Refer to the documentation on this site for nexo Retailer but ignore the HTTP part since the nexo messages are passed in intents.

LoginRequest

The LoginRequest is needed to be able to start communicating with the payment app. Once login is successful several payments can be done until the terminal reboots or software restarts. An attempt to make a PaymentRequest before successful login will give a failure response with ErrorCondition set to NotAllowed.

PaymentRequest

PaymentRequest is used for both purchase and refund. The PaymentResponse contains the receipt information. The sad part is that according to branding regulations less secure, purchases that need to be signed by cardholder need to be implemented although they rarely occur. Please read about CVM signature.

ReversalRequest

ReversalRequest can only be made on the very last transaction if it was successful. There is a big difference in reversals versus refunds, where reversal will clear the booked money latest the next day while refund may take business days before the money is back on the customer’s account. Reversal is a must for the cvm signature test case if the cardholder is unable to identify himself or the signature is rejected.

PrintRequest

PrintRequest is used for printing receipts via the payment app.

TransactionStatusRequest

TransactionStatusRequest is used for retreiving a copy of a result for a transaction. This may be useful if out of paper or any other malfunction causing the original result to be lost.

LogoutRequest.

LogoutRequest is the least important to implement since a reboot of the terminal will cause the same thing.