Card Payments with Time & Materials Android Application

2012-05-09 by Marina Astapchik


Time and Materials application for Android tablet is a mobile point of sale (POS) application. It is a part of a complex payment solution which has the following components:

1. Time and Materials application running on an Android tablet;
2. PIN Entering Device (PED);
3. Payment gateway;
4. Accounting server.

Card payment process

In this article I will describe the implementation of the card payment process in the Time and Materials application. PED, ATM and Payment Gateway take part in this card payment.The payment process consists of the following steps:

1. Time and Materials application sends initial payment request to PED.
2. PED reads the card and the user PIN input, and sends this information to ATM.
3. The PED communication module extracts the required information pieces (EMV or magnetic card, card number, PIN block, EMV tags, etc.) from the PED-specific message and uses them to construct a payment request message in ISO 8583 format. j8583 library is used for ISO8583 message generation / parsing. The payment request message is then sent to the payment gateway.
4. The payment gateway processes the message, communicates with bank network and sends a response message to ATM containing the information whether the transaction was approved and optional EMV tags.
5. ATM parses the gateway response message and sends the approval status and optional EMV tags back to the PED.

The requirement was to have the ability to support different PEDs, so a generic PED interface was developed and used in the application's PED communication logic. This approach makes specific PED support implementation easier, allows different PED connection options (currently Bluetooth and USB), and also makes PED change transparent to the application. Currently supported PEDs are:

1. PED Simulator — in early stages of development we had no PED, so a PED Simulator application was developed to simulate basic operations with magnetic cards, such as swipe card, approve the amount and enter PIN number. It runs on Android smartphones and uses Bluetooth for communication with T&M.
2. SP30 — supports magnetic stripe and EMV cards, uses RS232 port for communication. A USB-to-serial adapter is used to connect this device to the Android tablet.
3. MPED400 — a more up to date device with magnetic stripe and EMV card support. It can connect via Bluetooth or serial port.


The part of the time and materials application that is responsible for card payment processing acts like an adapter between PED and Payment Gateway, converting the PED messages in proprietary format to ISO 8583 format that is used by Payment Gateway, and vice versa. The development of generic PED interface unifies and simplifies new device support and also allows easy PED interchange.

Figure 1 provides a simplified graphical representation of the architecture.

Figure 1: Application architecture

Figure 2 demonstrates the payment process:

Figure 2: Card payment process

Industries and Technology Areas:

Industries: payment card industry

Technology Areas: digital payment technologies, Time and Materials application, PIN Entering Device (PED), ATM, software development, Android. tablet


Top Questions and Answers about CRM

Growing businesses are looking for a better way to manage customer relations. Understanding that the idea to store their information in note cards or Google documents is a bit old-fashioned, they are wondering, what is CRM, how it works and how it can help their businesses. These questions are hardly...
Node.js: pros and cons

Bringing Node.js into your project: pros and cons

Introduction “Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.” This is what official Node.js website tells us, and this...
Database Migration Best Practice

How to migrate high-load tables with zero downtime using background jobs and SQL views

Sometimes database migration may become a pain. The tables are large, the load is high, HDD space is expensive and the downtime should be as short as possible. Elinext team has recently investigated the issue within one of our Ruby on Rails projects and managed to offer a flexible data…


Best practices of Big Data implementation

Part 1. How we struggled with big data implementation. The  whole story about big data implementation started with an ongoing project. Our team was working on a project for monitoring a range of devices: switches, routers, computers and more. The main goal of this system was to provide businesses with...


Elinext is a custom software development and consulting company focusing on web, mobile, desktop and embedded software development, QA and testing. Since 1997, we have been bringing digital transformation to mid-sized and large enterprises in Banking and Finance, Insurance, Telecommunications, Healthcare and Retail. Our key domains include enterprise software, e-commerce, BI and Big Data, e-learning and IoT.