ACH payment processing system for a financial platform
Home
Case study
ACH payment processing system for a financial platform

Industry:

Financial Services

Location

USA

Platform

ASP.NET

Cooperation:

2+ yrs.

ACH payment processing system for a financial platform

About our client and its technological needs  

ACH is a US financial network that provides secure electronic funds transfer between bank accounts at different institutions and enables returns.   

Our client, an American financial platform, cooperates with brokers and syndicates to issue loans to the end customers, integrating with debit and credit bank APIs. The platform must handle a large volume of transactions and involve external participants in the payment process. Due to a complicated process of paying interest to each stakeholder, extensive data volume, and overall complexity of fund management, the organization needed a solution for the automation of payments. 

The decision was made to implement a solution that supports ACH payments through the NACHA file communication protocol with a distinct logic of money distribution between the client, brokers, and syndicates. 

The complexity of the loan issue process  

Our client’s existing financial architecture consists of multiple steps and criteria to be assessed. To make it all work, the organization needs to establish a seamless and transparent cooperation with the client itself, brokers, and syndicates, with the interest payments properly delivered and managed. This process creates several technical and organizational challenges for our client: 

  • Complexity of multi-source or multi-tenant financing (everyone pays separately)  
  • Differences in payment schedules for customers, syndicates, and brokers  
  • Complex commission or interest structure with different beneficiaries  
  • Unpredictable payment flows (a payment might be returned after the related interest has already been paid out, requiring reconciliation in the next cycle)  

As a software development provider, we needed to consider all these aspects to design a practical solution that automates and streamlines ACH payment placing and processing, ensuring accurate, timely, and transparent management of money across all parties involved. 

Our challenges during development  

The client provided us only with high-level business requirements: an automated money management system for all parties involved. NetLS was entirely responsible for system design, architecture, and user experience development. The core challenges we faced during ACH file creation software for finance institution included: 

  • Complex logic that includes commissions, transaction sequencing, and multiple participant roles. 
  • Instability in banking services in the USA (delays in fund settlements, a lack of streamlined communication between different departments and banks).  
  • The correct format of a NACHA file. A NACHA file is an electronic set of instructions that triggers a batch of ACH payments when uploaded into a bank portal. The file must be formatted in such a way that the scanning application reads it properly and initiates payment. e.g., NACHA accepts only Latin characters. If there are Cyrillic or special characters, payments are returned. In addition, different banks may require slight variations in the file format, even for similar transaction types. 
  • Some rejected payments need to be processed manually due to a lack of support on the bank side.  
  • Strict compliance with the criteria is critical to know which payments should go through and when.  
  • Some transactions are handled outside the client’s system, yet the platform must still monitor, plan, and report on all payments. This makes the calculation of payouts for beneficiaries particularly complex and error-prone.  
  • High-stakes environment. The platform processes tens of millions of US dollars monthly, adding pressure to ensure stability, precision, and security.  
  • Banks provided reporting on different payment types in one batch, and the portal needed to distinguish different payment types for correct reporting. This problem is exacerbated by the fact that debit payments from merchants are already implemented and running in production for each of the banks our dedicated development team has worked with, or continues to support the integration for the financial platform. We needed to make sure we didn’t affect the existing functionality.  

With a decade-long experience in fintech development and the best development practices for building digital banking solutions within an Agile framework, our team successfully overcame these challenges and exceeded the client’s expectations. 

What was done  

In our solution, we implemented:  

  • Automated B2B ACH payments to brokers (disbursements or credit payments) and syndicates (both disbursements or credit payments and collections or debit payments). (Next-Day ACH — at the earliest stages of production life cycle, Same-Day ACH — now).  
  • ACH integration with multiple US banks via SFTP in accordance with security policies on on-premises or Azure Cloud servers. 
  • Payments are batched into separate NACHA files by payment type, bank, and account. 
  • Clear reporting for accounting and beneficiaries.
  • Payments are automated or executed according to the schedule. 
  • Handling of returned transactions. Returns are recorded automatically or manually. (We developed reports for all pending or unconfirmed, or bounced payments with actions: confirm, edit, resend.)  
  • Optimized processes built on Azure Cloud infrastructure helped reduce costs and lower reliance on credit analyst personnel, preventing human error and reducing risk by automating repetitive tasks. 

In the end, our payment processing solution:  

  • Allows the business to initiate payments directly from the internal portal.  
  • Enables verification of bank details before sending payments to prevent mistakes. Even if one of the payments has incorrect data, we ensured that the other payments would be processed correctly. Automated validation on each payment is done, and if some payments don’t match the validation or formatting criteria, they are automatically marked as returned or bounced and not added to the batch. Thus, this guarantees that other payments will be successfully processed.  
  • Provides reporting on all pending, completed, and rejected payments.  
  • Handles returns automatically or manually (as needed). 
  • Tracks each payment’s exact origin and destination (one entity can initiate multiple transactions). 
  • Provides a custom admin panel for managing high-volume ACH transfers with buttons for paying all or editing payments manually.  

A risk-based approach (“ACH Alert” and “ACH debit activity”, and “ACH credit transfers”)  

The end-to-end ACH payment processing system for financial institutions works in the following way. The system processes an ACH Alert at the beginning of the business day. This alert shows the status of completed payments. It applies to both credit and debit payments to banks.  

Payment NACHA files with ACH credit and debit information are sent through a secure SFTP channel and security policies. The ban's system monitors the storage. A job runs every few minutes to read the files. Then, it deletes them to avoid duplicates: upon processing, the banking payment systems clear the NACHA data storage. 

For some banks, a confirmation file is sent along with the NACHA file. It only contains the total sum of the batch. The batch is generated using NACHO, National Automated Clearing House Objects, a custom library for NACHA ACH input files.  

We don’t receive any direct confirmation that the batch was successful. Thus, the only confirmation of the transaction success is a return file, read from the bank’s SFTP storage. It’s generated at 6:00 AM daily and contains information about failed payments.  

When sending batches, credit and debit payments are processed separately by different jobs (morning and evening).  

To handle returned payments, a master process reads the return file and distributes the data to separate jobs based on payment type.  

Since the system doesn’t get success confirmations, it uses this logic: if a payment is not returned within 2 business days, it’s considered completed. This was implemented because 98% of returns happen in that period.   

Returns can happen for up to 5 business days. Therefore, if a payment was already marked as completed, it can still be marked as returned later if the return info arrives. This rule applies to both credits and debits.  

In cases where a payment was not sent or processed correctly, it will appear in the reports within a special alert block for quick review. There is an option for manual re-confirmation of the payment or automatic inclusion in the next batch.  

Microsoft Azure Functions with timers are used to automate these processes.  

Results  

This project was delivered as part of our financial services, with a strong focus on digital transformation and modern business models. Its successful implementation was ensured by a dedicated development team of experts fully immersed in the client’s financial domain. 

  • ASP.NET enterprise application written in C# for the backend, JavaScript, CSS, and Knockout. JS for the frontend.  
  • Azure DevOps for streamlined development and deployment 
  • Webhooks, background jobs, and the SignalR open-source library for Microsoft ASP.NET that automated and improved data flow and system notifications 
  • Data security was guaranteed with secure SFTP with SSH authentication, and data is encrypted in the database of MS SQL Server and Azure Blob storage.   
  • Data integrity was ensured with MS SQL and a hybrid of Dapper and Entity Framework, reducing development costs during client scaling. 
  • Data consistency as well as accurate and reliable accounting was guaranteed with robust validation both on the backend and frontend layers, as well as highlighting any deviations from usual behavior.  
  • Streamlined payments were enabled via a well-thought-out user experience with Razor Views and JavaScript.  
  • Support of all mainstream (and even legacy) browsers with Knockout.js to provide a predictable and stable web interface for client staff and partners in most browsers and applications, even on slow internet connections. 
  • We enabled reliable ACH acquiring by automating NACHA file generation with C# and SQL, secure file transfers via SFTP, and organized handling of payment returns.  
  • Reduced manual paperwork through document automation, as payments are triggered automatically upon electronic signature.  
  • System performance was guaranteed with optimized .NET code and Microsoft SQL Server as data storage, with access using Entity Framework and store procedures in T-SQL for efficient batching processes and reporting. This allows for accuracy and reliability in data tracking and analysis.  
  • We helped the client adopt modern standards with automation and support for complex multilateral transactions, so it can stay competitive.  
  • Accelerated payment processing via one-click batch creation with Same-Day ACH by default. If any of the payments have issues, only they will be postponed to the next batch. This, along with auto-validation, robust notifications, and a highlighting engine, allowed us to minimize human errors.  
  • Regulatory compliance with Open Banking standards for legal and security requirements.  

With a Ukrainian dedicated development office setup, we ensured complete alignment with the client’s goals, affordability, and seamless team integration. Explore our similar fintech development projects to see how we help financial institutions innovate and scale. Are you interested in enhancing your business with a payment processing platform? Get the best value at the lowest cost, with free consulting included. Request a consultation or a quick audit by exploring Our Pricing page. 

Are you interested in our case study?

The NetLS team can develop an individual innovative solution based on our experience specifically for your business. Fill out the form and we will get back to you with a unique proposal!

I consent to receiving news, updates, and special offers via email

By sending a message you agree with your information being stored by us in relation to dealing with your enquiry. Please have a look at our Privacy Policy

Related articles

Cooperation: 8+ mos.

Preparing a test plan for a billing system in the telecom industry

In this case, the client needed to meet the rigorous needs of one of the largest mobile operators and internet providers in Ukraine (NDA). With a workforce of around 4,000 employees and over 27 million users nationwide, the project required careful planning at every implementation stage. To ensure superior development quality and product stability, the NetLS team designed a step-by-step test plan to coordinate testing efforts, reduce risks, and improve overall process efficiency.

Cooperation: 1+ yr.

Automated auditing solution for a family investment fund

Our client, a French family investment fund, offers loans and B2B2X fintech services, including business and call centers. As it expands into a new EU market through a child company, it’s transitioning from a legacy system to a proprietary solution. The main challenge was the absence of a unified financial data system, leading to reporting inconsistencies and security concerns. To validate the market, the client needed a fast, cost-effective PoC for automated payment matching and audit readiness.

Cooperation: 1+ mo.

Online map-based reporting solution for the energy sector

Our client, a company in the energy sector, owns several power plant panels on different sites and is actively expanding its facilities. The key requirement was a solution that could quickly display the status of each power plant on the interactive map. Our team immediately jumped into the process and began building the solution from scratch.