POC for Raiffeisen Bank self-service terminal development

Project overview
Raiffeisen Bank contacted DICEUS to perform a proof of concept and determine if the idea of realization of specific self-service terminals’ functionalities is feasible, i.e., if it can be turned into reality. This POC was focused solely on two operations – encashment of individual entrepreneurs’ revenue and internet payments/transfers. Our team offered the client authentication options and how transactions should be reflected in General Ledger and other business systems. The bank has also received consultations and recommendations from us on some technical aspects of the future solutions’ integration into an existing IT landscape.
Client information
Since 2005, our client, the bank has been a part of the Raiffeisen Bank International AG Group, Austria. It is one of Ukraine’s biggest banks with foreign capital. It offers products and services both to over 2.5 million retail and business customers. The bank aims to implement the latest technologies to enhance customer service quality.
Business challenge
The main idea of the bank is to turn a standard ATM that dispenses cash into a smart self-service terminal of NCR class with functionalities inherent in mobile app functionalities. The matter is that the range of ATM services for retail customers is limited to a standard number of functionalities like cash withdrawal, repaying a loan, or getting information related to cards. Therefore, the bank wants to develop a smart self-service terminal with a web interface and functionalities similar to mobile banking and internet banking functionalities that users got used to. Moreover, the functionalities provided would also include some capabilities for individual entrepreneurs, like encashment. This interface, integrated with the card reader and cash dispenser, will give the bank a chance to gain a competitive edge in the market of banking services.
Technical challenges
Our team had to plunge into the private-cloud environment of the bank and ensure the interoperability of existing systems without interfering hard with the current architecture. The idea was to develop software for the smart ATM using Angular. The front end would interact with the back side and the help of the existing APIs. Using a transport message broker Kafka and special adapters, requests to the system services and business services could be sent. As a result, we created a workable prototype of the software with asynchronous parallel processing architecture.
Solution delivered
Our team has realized a POC project, formalized and offered the software architecture for the private-cloud environment of the bank. The scope of our services included collecting functional and non-functional requirements, clarifying business process flows, developing a clickable ATM prototype, designing backend architecture, approving candidate architecture and information flow schema, and developing the working candidate architecture prototype. We also implemented the fundamental interaction between the frontend and backend based on the BFF (Backend for Frontend) approach in accordance with one of the scenarios of the operation selected by the bank. Interaction with ATM devices (card reader, banknotes receiver, cash dispenser) was also implemented. A clickable UI/UX prototype was created and demonstrated to the client.

Let’s discuss how we can help with your project
Key features
Synchronous and asynchronous operations
If the software is implemented, synchronous client operations will be supported. In addition, asynchronous/postponed operations will also be supported (when one of the applications or services required for a specific operation is unavailable).
Event logs
The future application will be able to use and supply its own event logs to banking monitoring and logging systems.
Security standards compliance
The future app will comply with PCI DSS (Payment Card Industry Data Security Standard), PSD2 (second Payment Services Directive), and internal banking security policy.

JavaScript
REST API
PostgreSQL
MySQL