The Backstory
Retail Management Hero (RMH) is a complete retail point-of-sale (POS) solution that enables retailers within any vertical to efficiently manage all their back office and POS activities. Packed with functionality to optimize inventory management and remove the guesswork from purchasing decisions, RMH is a standalone software system that helps small to medium-sized store chains improve business intelligence (BI) while operating smarter and faster throughout the entire retail environment. Considering that credit cards are increasingly becoming the chief mode of payment all over the whole world, you may be on the losing end if you are running a business and not accepting credit card transactions.
No matter the type of business you are involved in, there is no doubt that accepting credit cards will increase sales and generally produce positive results for the business. Here are the benefits of accepting credit cards for payment in your business:
- Lend stores some authenticity: Accepting credit cards (specifically Visa, Mastercard, Discover, and American Express) is so common that stores without the ability to accept card payments may be seen as “behind the times.”
- Increase sales overall: With more and more consumers forgoing cash entirely, allowing credit card payments means you can avoid losing out on sales when customers just don’t carry cash.
- Have cash flow benefits: Credit card payments, unlike cash, are often deposited into your bank account automatically. While the exact timing can vary from one payment processor to another, you can typically expect the money to hit your account soon after a sale is completed.
The Challenge
Code4Nord’s challenge was to create a payment integration between Retail Management Hero (RMH) EPOS and Ingenico IPP350 payment device. The integration would handle all the communication between RMH EPOS WPF application and Ingenico terminal. The most complex part of the integration consists in the security and integrity of data being transmitted from RMH EPOS to Ingenico terminal and vice-versa. Since this process involves payment processing between 2 different systems – the communication between the systems should be treated in a special way, so those ghost transactions are not permitted and one transaction is either successfully completed on both systems, or reverted in case of communication issues.
The Solution
Code4Nord team implemented RMH EPOS card payment using Ingenico IPP350 device. The process consists of:
- When RMH EPOS tenders a transaction using credit/debit card tender type, the amount is sent to the Ingenico terminal.
- RMH EPOS receives broadcast messages, allowing the cashier to see exactly what the terminal displays.
- When the terminal completes the transaction, it sends the status of the transaction back to RMH EPOS.
- Customer and Merchant receipts will be printed out by EPOS printer.
- RMH EPOS will complete the transaction if the terminal sends a successful status.
The integration has the following features implemented:
- Sale transaction
- Refund transaction
- Sale/Refund handling signature validation transactions.
- Re-print of credit card receipts in case the printer gets out of paper
- Management reports: EOD – End of Day, Banking, Z-Balance, X-Balance
The solution consists of 2 main modules:
- C# library that would be triggered when any transaction is tendered in RMH EPOS using one of the credit/debit card tender types.
- Adjusted C++ codec – that will handle the communication between EPOS and Ingenico terminal
Below, the big picture image of the communication flow is described.
Technologies & Processes Involved
- WPF, EF 6, SQL Server, C#, C++
- Scrum Methodology