Microfinance organization

Credit Product-engine for PDL lending operator's online platform
We have developed a product engine for PDL loans (PayDay Loan). Our final product combines two main functions: loan portfolio management (based on PDL) and complex credit financial accounting (charges, payments, schedules).

Our team has vast experience in creating, developing and supporting credit accounting systems, and in this project we were able to apply all our accumulated knowledge and created a flexible, convenient and fast solution.
Project team
  • 2 developers
  • 1 analyst
  • 1 QA
  • 1 project manager
  • 1 technical director
Tech Stack
Our product-engine supports a single base product, the PDL, with the ability to clone and modify it to create the desired configuration, which includes the ability to make changes to:
  • Disbursement amounts
  • Loan terms
  • Commission rates and Value Added Tax (VAT) applied to commission income
  • Daily (or periodical) late payment penalties
  • Penalties for late payments
  • Insurance fees at loan issuance
  • Interest calculation methods - linear or accelerated (XLRTD)
  • Grace periods for late payments
  • Priority order for interest and penalty deductions
  • Loan extension configurations
  • Client loyalty programs based on interest rates (with expandable logic)
The API is built asynchronously based on RabbitMQ and allows integration with any payment gateways and other external systems.
Payments are technically separated from loan accruals
Payments and credit charges are technically separated into different entities, reducing confusion when dealing with complex situations when external systems fail.
Online loan payoff capabilities
Accrual of interest and transfer to arrears is carried out by means of an overnight batch operation, which transfers the system to the next banking day. At the same time, payment by clients is made online - the system accepts payments, and immediately makes the procedure of allocation to accounts, changes the statuses of loans, and closes them. This makes the work of the loan operator more predictable for clients, and simplifies the logic of interaction between the engine and other systems.
Extensive basic product configuration options
The engine has a large set of methods to easily integrate with the loan pipeline - loan calculations, loan emulation, emulation of making payments, conditions on certain loans, etc.
Double-entry transactional accounting
The system provides transparent balance sheet accounting: all movements of funds on accounts are recorded using double entry transactional method.
Balance sheet management
In terms of accounting, the product provides for the maintenance of personal client accounts and company accounts, and the overall balance is maintained.
Readiness for new credit product types
Product-engine allows to expand the set of credit products: the system architecture was developed with the expectation of future support for BNPL and Installment-products.
Logging of data for analysis
In addition, the engine maintains a log table that contains summarized information on each loan as of the last closed day. This data allows you to quickly and with minimal effort launch an in-depth analysis of the loan portfolio using external services.
Out-of-the-box performance
The system is built using lightweight modern technologies (Kotlin, RabbitMQ, PostgreSQL) and is adapted to high loads out of the box. Without additional optimizations and tuning, a nightly batch operation to process 350 thousand loans and 4 million payments by execution time is within 1 hour.
Mechanisms for correcting incorrect payments
The system provides for a flexible approach to correcting incorrect transactions that may come from external systems (incorrect payment dates, incorrect amounts, lack of reference information for splitting payments). The engine allows retrospective recalculation of the correct loan status for any corrections, while keeping the calculation base up to date at each point in time, preserving the integrity of any reporting forms. The correction is triggered by a special method and does not require manual intervention in the database.
Let's discuss your project
Drop us a line!
Moscow: Leninskiy prospekt 15A, 6 floor
Novosibirsk: Nikolaeva 11, 12 floor
Your privacy is very important to us. Your details won't be shared outside of our company. Learn more about your rights in our privacy policy