Personal Accounts (LC) are a key component in the ecosystem of the credit institution SMSFinance. Every day, clients from all over Russia use it to find out their loan debts, make another payment or apply for a new loan.
Technically, the LC is a web application that can be accessed from any modern desktop and mobile browser. The old version was written more than 5 years ago and has not changed fundamentally until now. Over time, it became outdated and began to lose ground in comparison with similar solutions of competitors.
At the beginning of 2019, the management of SMSFinance set a task to release a new Personal Account for the client.
Success criteria were identified as follows:
- 1. Friendly user interface. The system must understand what the client is currently expecting from her and offer him the next step to achieve the goal.
- 2. Responsive design. The site must be adapted for mobile devices – phones and tablets.
- 3. Support for new products in the LC.
- 4. Transition from outdated tools to a new modern technology stack. Ensuring system operation without page reloading.
Before improving the interface, we decided to set the stage for functional changes. Unlike life, the statement “an old friend is better than two new ones” is not technologically applicable. HippoCMS, Wicket and jQuery tools have been eliminated in favour of modern Angular 7, TypeScript. We replaced the outdated session authorization with authorization via OAuth 2 tokens. Thus, we started at point # 4.
Having laid a good foundation for development, we gradually built the functionality: we worked out the UI / UX of the main pages of the personal account, implemented an adaptive design for all LC pages: all our styles applied to the components are adaptive to any screen size, including mobile phones and tablets.
For the convenience of our clients, we have built a seamless process for issuing a loan: after registering on the site, the client enters his personal account without entering a username and password, the system prompts the client for further steps to obtain a loan:
- Check out available credit offers and current promotions.
- Choose a suitable loan product, amount, loan term and method of obtaining.
- Check out the individual conditions.
- Sign a loan agreement.
- Get money using your chosen method.
After receiving a loan, the personal account becomes a real assistant for the client: it displays information about the debt, informs in detail what the amount of debt is composed of, shows the schedule of planned payments, a package of documents for the loan, tells you when it will be more profitable to repay the loan for the client and how to save good credit history if the client cannot repay the loan on time.
Thus, we have confidently completed points # 1 and # 2.
As for point # 3, in 2019, changes in the work of microfinance companies came into effect. Now the maximum loan rate should be no more than 1% per day. In order not to face losses, MFIs need to change their business model, reorienting it to long-term loans. The “old” personal account was not adapted for multi-product offers: the client could take only a short-term loan. Adding new products was time consuming and required a lot of developer resources. The new LC supports the rapid addition of new product offerings, with minimal developer involvement. The client now has a choice of several product offers.
The classic registration process looks like this:
- The user is registered in the system
- The system sends SMS with a password from a personal account (LC).
- The user is authorized using the received password.
During registration, a significant part of users are lost at the authorization step. This reduces the conversion for registered users. The business gets fewer clients, which means that income falls.
We have implemented a seamless registration solution for a credit institution. After implementing the solution, the process was simplified. Now SMS with a password is not sent, re-authorization is not required. When the user fills in the registration data, scoring is launched – an automatic process of checking the borrower’s reliability. By the time the questionnaire is completed, the scoring result and the loan decision are already ready. If this decision is positive, the user only has to choose the method of obtaining a loan, after which the system instantly transfers the money to the client’s account.
Seamless registration is part of the onboarding strategy implementation, i.e. retention of the client and bringing him to the successful implementation of the business scenario embedded in the system. Customer satisfaction increased, conversions increased, and the business generated more revenue.
We used the following technologies:
- Front-end technologies: Angular 6 .x, Webpack, nodejs, sass, lodash, Nginx
- Server technologies: Spring Boot 2.x (spring mvc, spring core, spring data jpa, spring security), Tomcat 8.x
- Postgres 9.x database
As part of the development of the portal of public services in the Russian Federation, the Unified Identification and Authentication System (ESIA) was created. It is a federal system designed to provide authorized access to information. The ESIA is implemented using solutions that have been certified by the FSB, which guarantees compliance with the requirements of legislation on the protection of personal data. Later, by order of the government, the ESIA was integrated with federal portals, sites of the executive authorities of the constituent entities of the Russian Federation and other resources to provide priority services. The same order of the government allowed private organizations to integrate their information systems with ESIA.
When providing electronic services, it is important to ensure information security. We have integrated ESIA with the personal account (LC) of the borrower of the financial company. As a result, two indicators have increased. Conversion for registered users and conversion for loans. The first became possible because the entrance to the ESIA increases user confidence, the second – due to the availability of a large number of channels for issuing loans when identifying the ESIA. Working with the service has become more convenient. For users who already have an account in the ESIA, now there is no need to register in the LC – just log in. In addition, it is not required to enter passport data and fill in other fields that are stored in the Unified identification and authentication system. The system automatically transfers information from the ESIA to the system.
The following technologies were used on the project:
- Front-end technologies: Angular 6.x, Nginx
- Server technologies: JWT / OAuth2, RSA SHA 256 encryption, Spring Boot 2.X, Tomcat 8.X
Risk Engine – Solution for scoring optimization and profit maximization of a credit institution (CO)
A quick and accurate assessment of the solvency of borrowers (scoring) is the key task of CR, on which the profitability of the business depends. There are many scoring services on the market. Different scoring services analyze the solvency of borrowers by different parameters, thus, the results of the checks complement each other. As a rule, in order to decide on the issuance of a loan, a KO successively turns to several scoring services. The quality of scoring, and hence the profitability of the credit card, depends on the correctly selected scoring services and the correctly specified sequence of checks.
It is impossible to maximize the financial efficiency of scoring right away. The quality of the scoring is improved iteratively, by analyzing the results, and making adjustments. Changing this process is a time consuming and costly operation that includes programming, testing, and debugging. For these reasons, in many CR this process is not optimized and operates with low efficiency.
The Risk Engine is a tool that allows you to quickly change the scoring process.
The results of the implementation of “Risk Engine” in one of the largest IFCs in Russia – “SMSFinance” are presented in the table below.
|It was||Risk Engine – Became||Benefit|
|The connection of a new scoring service took from several days to several weeks.||It takes a few minutes to connect a scoring service.||Increasing the speed of decision making.|
Reduced change costs.
|Problems in one scoring service led to incorrect scoring results.||Problems in one scoring service do not affect the scoring result.||The scoring process runs smoothly and correctly.|
|Analysis of the financial efficiency of scoring services is time consuming.||Analysis of the financial efficiency of scoring services is easy and transparent. Now it is possible to provide reports for each scoring service separately.||Improving the efficiency of the scoring process.|
Reducing the cost of paying for scoring services.
|Simultaneous support of several scoring processes is time consuming and, as a rule, is not used.||It is now possible to quickly run several scoring processes at the same time and compare their actual yields. The main process that most borrowers handle. Experimental processes that handle a limited number of clients.||Scale up proven effective experimental scoring processes.|
“Schedule of payments” – a module for managing applications for spending money in the financial block of the logistics operator’s system.
We have created a tool that automates the formation, approval and execution of payments approved in the external module ‘Bank’. To restrict access to module functions, we implemented a system of rights and roles. The module interfaces are made with UI / UX design, in addition, they are adaptive to any screen size, including mobile phones and tablets.
The solution provides the following features:
- Managing requests for spending money
- Keeping a history of changes in applications
- Search and view outgoing payments
- Adjustment of cash balances at the beginning of the period in the Register of payments
- Export of outgoing payments to the client bank
- Synchronization of payment statuses with the client bank
The following technologies were used on the project:
- Backend: Java 1.8, maven, spring-boot 2.2.1, spring-stream, rabbitmq, mybatis, mapstruct, swagger, testcontainers
- Frontend: Angular 10
- Search and view outgoing payments
- Database: PostgresSQL