Case Studies Blog Careers Technologies
Hyper-Automation system for ATM customer complaints resolution
Python, Angular, MySQL
About Client

CMS is the 5’th largest ATM Cash Management company Globally. They enable commerce – connecting business, and banks and people with money, they automate ATM and currency management in India, their networks and support services ensures money is readily available across all states. They provide Cashiering services for top retail chains to picking up cash from more than 40000 merchants and banking it, they provide range of services across each stage of cash cycle in India from currency chests to ATMs to vaults to stores to wallets, to installing and managing Intelligent ATMs, Cash Deposit Machines and Recyclers; they are pioneer in helping change banking in India.

Problem Statement

Each day CMS receives thousands of queries from MSPs and Banks, client has employed 100+ personnel to manage below tedious and manual process of complaints resolutions:

  • Read every email manually
  • Create a ticket in the portal
  • Download the attached zip files
  • Unpack and open each EJ file to map it with the dispute from the email excel file
  • Look up the errors within EJ for that disputed transaction manually
  • Log into the CMS Connect app to resolve the dispute as per the Rule Book

This results into below problems

  • Emails getting missed by users due to large volume of queries resulting in SLA miss and penalties
  • Turn-Around-Time (TAT) missed by individuals as emails being assigned and not tickets, as each email may comprise of one or more disputes
  • Due to company’s pan-India presence, the addressing of queries needs to be standardised across all regions
Oneture's Role

As a Digital Technology Transformation Partner, Oneture designed, developed and launched a real-time automation platform to handle ~100000 ATM cash withdrawal/deposit related customers complains per month.


  • To build universal EJ parser – support for More than 50+ EJ file formats, extracting information from Electronic Journal (EJ) as the format differs for MSP-Bank and as per the OEM make, Multi-vendor software (MVS) also played a role in it.
  • Emails with different encodings and multiple encodings in a single email as well.
  • Variety of data in Dispute File, at-times irrelevant data
  • Multiple file-formats and multi-level of compression (.zip, .7z and .rar).
  • Analysing the disputes and reporting the difference between the EJ and custodian declaration of cash collection.
  • Response email from MSP to be identified and re-opening of tickets in the Query Resolution Platform

Built an Automatic ATM complaints resolution system for one of the largest CRA to cut down average handling time to near zero and relieving staff of menial data processing for millions of complaints . The solution is broadly divided into four parts:

  1. Email Automation
  2. Dispute Creation and Electronic Journal Parsing
  3. Business Logic Implementation (Rule Based System)
  4. Integration with the Query Resolution Platform (Internal System comprises storing of data and frontend).

The architecture was designed in such a way that each module could be used independently, this modular structure helped to scale, accommodate new features, and meet growing business needs


Solution is extremely modular, flexible and scalable


Tech Stack : Python 3.6, MySQL, Flask, REST APIs, Angular 4.0, MSSQL, Web API

Email Automation

  • Build IMAP protocol based email reader to fetch the emails from the mailbox on a real-time basis
  • Runtime- Detection of the emails encoding for abstracting the body of the email in Human Readable format and to be saved in .html and .txt formats for further processing
  • Attachments consisting of compressed and nested compressed files, were downloaded, and extracted (with or without passwords)
  • Initial Support for IceWarp server and later after email migration, Microsoft Outlook was also supported
  • Built SMTP based email response module to send responses and handle email thread / conversations

Dispute Creation and EJ Parsing

Universal EJ parser supporting majority of OEMs & MVSs like : Hitachi, Hyosung, Lipi, NCR, Perto, Wincore, Diebold, Parser supports End-of-Day (EOD) Counters Reading, Transaction Counters Reading, EOD to EOD EJ Successful Transaction Listing, EOD to EOD EJ Errors Listing (with missing transactions)

  • Use of Pandas Dataframe to identify valid disputes from Excels and email body inserts, eliminating junk data
  • EJ Formats depend on MSP-Bank-OEM combination, MVS also plays a role in it. Algorithmic approach for identifying these EJ formats and creating a Common Data Format (CDF) out of it in the form of Python-supported data structures
  • CDF used for extracting relevant data from the EJ and validating it with the given dispute thus catching the discrepancies (if any) found with the transaction in dispute
  • Counter Reading from EJ for tallying of dispense from the machine.
  • EJ Parsing accomplished for both ATMs and BNA/Recyclers

Business Logic Implementation (Rule Based System)

  • Error Identification from the CDF
  • Step-wise resolution as per the business logic for the given query
  • Identification in the discrepancy in the data provided by the Custodian and ATM machine counters
  • Triggered from the Module 2 before the re-architecture. Post re-architecture, can be invoked from multiple sources as a Flask end-point was set

The important and fundamental use of system-wide logging helped in early detection of defects, enhance support activities and reduces considerable time in debugging.


Value Delivered

From 11 Feb 2020 to 26 July 2020

  • Total Number of Emails processed = 259291
  • Total number of disputes/tickets created in System: 553611 (and still counting)
  • 75% of their queries are automated through 42 rules developed on the basis of EJ Errors
  • 73% of EJ Parsing Accomplished for ATMs managed by the CRA
Lessons Learned
  • Start at the top – With solid leadership and visibility in place, you can have more confidence that your automation projects are tied to your organization’s strategic direction. You may be better positioned to secure appropriate funding while setting defined targets for value capture and ROI. And you can gain the support of your peers and reports, knowing its importance to the top brass and to business performance.
  • Automation is not about technology – It’s about business—and business processes that are enabled by technology. Advance automation initiatives under an umbrella of well-developed strategy along with a solid governance structure in place, one can attain exponential ROI.
  • Without buy-in across the board – it is a waste – Identify and Engage all stakeholders, users that may be impacted by the automation initiative upfront. Managing project interdependencies to minimise last minute surprise is very important
  • Don’t run the risk of building the same bot elements in two places – run centralised governance. Automation that is developed and implemented without proper controls and monitoring could result in poor data that impact strategic decisions. And that can have disastrous consequences for the business. A centralized governance model maintains oversight, agility, and consistency across the enterprise, helping save time and effort—resulting in new ways of doing business.
Choosing a digital partner for us was about more than capabilities — it’s about collaboration and business evolution. Whether our goal of building the world’s first AI automated ATM Security software application or Hyper Automation for Dispute Resolutions and Reconciliation or be it a transformation of our core business processes – The team Oneture is always there to partner with us to help us gain— and maintain—competitive advantage with efficient, sustainable models and tailored made solutions at scale. Over the last 2.5 years, their commitment to quality solution delivery and proactive approach in problem-solving, hands-on talent, agility is a key strength that built trust, not just with me but with my business partners too.
Rohit Kilam
CTO - CMS Info Systems