Loan Payment Monitoring


Duration: 9 months, ongoing
Industry: Finance and Banking
Location: Germany
Employees: over 250
Revenue: $40 million


The client is an innovative German bank digitally transforming its services and constantly improving financial products. One of the areas identified for performance improvements and gaining additional competitive advantage is automation of loan application processing, and risk management automation


Upon originating a loan, banks have to monitor corresponding payments and validate payment parameters against loan terms and conditions. The technical payment parameters should be monitored on a daily basis, signalizing violations of their performance if any. Automating such monitoring became a task our client assigned to Aterise


Aterise was challenged to build a software solution that complies with supervisory authority requirements. Specific requirements are placed on the stability of the system and the consistency of its state. Data Corruptions or inconsistencies may have serious consequences for the bank, and controversial situations with the bodies supervising the banking sector can occur

Additionally, the system was supposed to receive a sufficiently large amount of data from third-party systems, many of which are specific to a particular country or region. The solution was required to allow flexible configuration for different countries in which the bank operates


After an in-depth analysis, we developed a flexible architecture that, after development, allowed us to create a truly stable and flexible system that monitors the execution of credit contracts

Contracts are conducted on a set of states in accordance with a given logic, which allows to gently resolve the most disputable situations in a fully automatic mode and involve bank employees only within extreme cases. The service also makes sure that the necessary manual procedures are carried out and helps all the parties involved in the payment process

We chose an Event Sourcing approach as a basic architecture, in which the current state of the system can be calculated based on the sequence of events that are themselves separate entities. This made it possible to achieve exceptional stability of the solution, where it in most cases can independently restore the correct state after a failure of the entire system, its individual components, or external data sources

We also paid due attention to the support mechanism of requirements versioning so as not to affect the historical data by the introduction of any kinds of new functions. In this configuration, the system always has an adequate full history of each contract, which is available for analysis to bank employees and, if necessary, could be provided to the supervisors

Thank you for reading!


Let’s get started

Drop us a line to give your product a new lease of life.



    How can we help you?

    We will process your personal information in accordance with our Privacy Policy.

    Paul-Heyse-Str. 34; 80336 Munich Germany
    Share your request via contact form below, and we will contact you.