Invoice Processing App Development

Mbicycle developed invoice processing software for a global logistics provider to help them leverage their accounting resources.

Challenge

Our client is a global logistics provider, cooperating with a wide range of countries in Europe, Asia, and North America. They contacted Mbicycle to get the full-cycle invoice processing app development and this way modernize their accounting operations.

We joined the project to augment the client’s in-house team with our Python app developers to complete the following tasks:

  • To free up the accountants’ time spent on manual reconciliation of invoices
  • To assure automatic register for up to 30% of all invoices

Invoice processing app running on a laptop screen

Solution

We started by providing the client with our vision of the future software solution, which included several improvements for their existing system.

The main idea was to optimize invoice processing on the client’s side. To do this, our Python developers implemented the following features:

  • Automatic classification of incoming documents, such as invoices and CMRs
  • The option of additional training of the classifier
  • Automatic recognition of key fields for invoice reconciliation
  • Automatic account registration for the maximum possible number of invoices according to the company’s accepted business logic
  • A web service with the user interface for invoice management
  • Integration of the web service with the client’s existing systems, such as OTM and Alfresco for quick access to all the necessary information

Our team divided the invoice processing software development into five implementation stages:

  1. Loading and classifying documents
  2. Full document processing and UI design
  3. Recognition of stamps
  4. All-in document processing and UI design
  5. Integration with OTM and Alfresco

In the first stage, we set up the process for downloading documents from the client’s server right after their accountants scanned and saved them. We used Tesseract, an optical character recognition (OCR) engine, to classify the received documents.

In the next two stages, we created and fine-tuned the tasks for document processing, which included:

  • Loading documents and creating objects
  • Classifying received documents
  • Processing documents through Google OCR and getting tokens
  • Predicting values for template-based documents
  • Recognizing stamps on documents (also with Tesseract)

In the fourth stage, our team primarily fixed bugs and improved the UI design elements. Throughout the stages, we used Vue.js and Vuetify for UI design improvements.

At the final stage, we integrated OTM and Alfresco services with the data provided by our client. We also enhanced the invoice processing app with the ability to open documents via the Internet Explorer browser and check the accuracy of issued invoices.

Process

Our team carried out invoice processing software development following the Agile methodology and breaking down the project into a series of two- and three-week sprints. Every week, we discussed interim results and planned the next week’s tasks with the client.

Technologies & Tools

Programming language

Python, JavaScript

Frontend

Vue.js, Vuetify

Data science components

Tesseract, OpenCV, Scikit-learn, PyTorch, Detectron2

Third-party library APIs

Django, Django REST

Results

In four months, our team has successfully completed all the tasks, helping the logistics company revamp their invoice processing workflows with the help of the new web application. Today, the client fully adopted the app and uses it in their daily work, also planning to continue our cooperation on further upgrading the solution in the future.