Fully automated payment processing System

What we built

One of our first big projects as an agency was to build a complex payment automation system and contract management platform. This automated system would send thousands of requests for payments every week to our client’s bank, these payment requests would allow them to collect payments from their client’s bank. Our client has contracts with their clients, these contracts would require payments on a frequent basis, such as weekly, biweekly, monthly, and would last around a year, so a typical contract would have 12 to 52 payments.

The system would know when a client had a payment that was due and would dispatch it automatically to the bank in a batch job every day with other payments also due, it would do this using the well-known Electronic funds transfer system (EFT).

Another major piece of functionality was that the system checks on the status of these payments sent out days later. Payments could fail for many reasons, such as incorrect banking info, insufficient funds, and much more. We built an intelligent system that would check for failed payments and seamlessly reschedule them for the future. It also would apply penalties to the contract depending on the reason for failure and the system might lock the contract if it has detected recurring issues with a specific contract.

How long it took

We were able to deliver an early version of this system in around 5 months. Since then, we have heavily iterated and added a plethora of features, such as automated SMS notification, reporting, contract management functionality, a client portal, and much more. The system has been running successfully for years and is close to transacting over 1 million payments!

The results

All in all, this project was a resounding success and allowed our client to automate what used to be a lengthy and error-prone process done by humans on a daily basis. Another major business benefit was that it allowed them to better handle failed payments and earn additional revenue by charging clients for payment failures and other changes to their payments.

What we used

We built the back-end system using .NET core and Angular was used for the contract management app and client portal app. This was all hosted using Azure app service with the usage of Azure SQL as our relational database of choice and Azure blob storage for file storage.

Third-party systems such as SendGrid for email notification and Twilio for SMS texting were also used quite extensively.