QuickPay for trans.eu: A microservice for automated invoice financing

About the project

Client:

Trans.eu is one of the largest freight exchange platforms in Europe, connecting tens of thousands of freight forwarders and carriers. QuickPay is a service operating within the Trans.eu ecosystem that enables transport companies to receive fast invoice financing without waiting for their contractors' payment terms. The platform acts as an intermediary between users and external factoring systems, including TransCash, automating the entire process from contractor creditworthiness verification and factoring application submission to the generation of receivables assignment documents.

Project goal:
Automated invoice financing for Trans.eu users
Carriers using Trans.eu often wait 30, 60, or even 90 days to receive payment from freight forwarders. QuickPay significantly shortened this process by allowing users to submit factoring applications directly from the platform. The system automatically performs contractor verification, financing evaluation, and receivables assignment without requiring users to leave the platform or manually complete documents.
Integration with external factoring systems
Build reliable and guaranteed communication with the TransCash factoring platform, ensuring every operation reaches its destination even when the external system experiences limited availability.
Support for multiple financing services
Create a single microservice capable of handling three different financing products available within the Trans.eu ecosystem: QuickPay, Bonabanco, and SafePay.
Automated assignment document generation
Eliminate manual document processing by automatically generating and delivering receivables assignment documents for every approved factoring request.
From challenge

Key Challenges

1

Integration with a low-availability external factoring platform

The external TransCash platform did not guarantee high availability. This created a risk that applications, supporting documents, or customer data might fail to reach the target system in real time. Every lost message represented a potential financial risk for platform users. To address this challenge, the team designed a watchdog mechanism capable of tracking the status of every operation and guaranteeing its eventual completion without user intervention.

2

Reliable communication between financial systems

QuickPay served as a trusted intermediary between Trans.eu and external financial services. It was responsible for sending customer company updates to debt collection systems through REST APIs while receiving business events through a message broker. Any data inconsistency between systems could lead to incorrect contractor assessments or improperly processed financing applications.

3

Domain complexity in a production environment

Invoice financing is a multi-stage process involving contractor verification, financing valuation, application submission, assignment generation, and confirmation handling. Every stage must remain resilient to failures and support partial-execution scenarios. The Domain-Driven Design (DDD) and CQRS architecture required precise responsibility boundaries and carefully designed domain contexts throughout implementation.

4

Observability and quality assurance in a financial environment

The service handled business-critical financial operations where errors or missing confirmations directly impacted customers. The platform required comprehensive monitoring through Grafana, Kibana, and Consul, extensive automated testing, including unit, integration, and Pact tests, and automatically generated API documentation using OpenAPI and AsyncAPI specifications maintained directly within the source code repository.

Key functional and non-functional requirements

Functional

  • API for managing financing applications
  • Contractor creditworthiness verification through factoring systems
  • Automated generation of receivables assignment documents
  • Notifications sent to debt collection systems through REST APIs systemu windykacyjnego o zmianach w firmach klientów przez REST API
  • Reprocessing mechanism for failed commands and operations
  • Support for QuickPay, Bonabanco, and SafePay financing products
  • User-facing frontend for submitting financing requests and tracking application status

Non-Functional

  • Resilience to limited availability of external factoring systems
  • Performance and health monitoring using Grafana, Kibana, and Consul
  • Automatically generated API documentation stored in Git repositories
  • Comprehensive test coverage including unit, integration, and Pact tests
  • AWS-based infrastructure using S3, RDS, and ECS
  • Database schema migrations managed with Liquibase
  • Containerized and scalable deployment architecture
Through the solution

Microservice architecture based on DDD and CQRS

fireup.pro provided a development team responsible for designing and implementing QuickPay as an independent microservice built around domain-driven architecture principles. The Java and Spring Boot backend managed the entire lifecycle of factoring applications.

    Backend (Java / Spring Boot)

    The team designed a clear domain architecture with distinct boundaries between contractor verification, application processing, document generation, and external communication. Key implementation elements included:

    • Domain-Driven Design (DDD)
    • CQRS pattern separating write and read operations
    • RabbitMQ-based event-driven communication
    • Subscription to customer company update events
    • Publishing notifications to debt collection systems
    • Reprocessing mechanisms with retry logic and alerting
    • Database migrations managed through Liquibase
    • Hibernate ORM
    • MariaDB database

    Infrastructure and observability

    Deployment on AWS using Amazon ECR (container registry), Amazon ECS (container orchestration), and Amazon S3 (document storage). Application performance and system health were monitored through Grafana, Kibana, and Consul. A comprehensive testing strategy included unit tests, integration tests, and Pact contract tests (PactBroker) to verify communication contracts between services. The solution also featured automatic generation and versioning of OpenAPI and AsyncAPI documentation directly within the Git repository.

      Frontend

      The user interface, built with React.js and TypeScript, enabled users to submit financing applications, track their status, and review the history of completed operations.

        QA i automatyzacja testów

        Automated Selenium-based tests were implemented to validate end-to-end user workflows and ensure the reliability of critical financing processes.

          Project delivery methodology

          The team worked closely with Trans.eu’s internal engineering team throughout the project. Every pull request underwent a thorough code review process focused on domain correctness and fault tolerance—critical requirements in a financial environment. The architecture was developed iteratively, with carefully defined responsibilities and clear boundaries between modules to ensure maintainability and scalability.

            To the success

            Technological outcomes

            Production-ready financial microservice

            QuickPay was successfully integrated into the Trans.eu ecosystem and deployed into production. The micro-factoring service now processes real financing requests from carriers and freight forwarders.

            Reliable integration with TransCash

            The watchdog and reprocessing mechanisms eliminated the risk of lost operations caused by external system downtime. Every command is monitored until final confirmation is received.

            Complete financial system observability

            Grafana, Kibana, and Consul provide full visibility into application health and performance, allowing issues to be identified proactively before users experience them.

            API Documentation as code

            Automatically generated OpenAPI and AsyncAPI specifications are version-controlled in Git, ensuring that every contract change is traceable and auditable.


            Project team
            Abstract background
            Robert Pietrzyński
            Daniel Jendroska
            Łukasz Sobisiak
            Błażej Pelczar
            Łukasz Morawiec
            Michał Trela

            Robert Pietrzyński

            Senior Backend Developer

            Designed the microservice architecture and domain structure based on Domain-Driven Design (DDD). Implemented core business logic and communication mechanisms. Conducted code reviews and ensured high code quality standards throughout the project.

            Tech stack

            Java

            Spring_boot

            Spring boot

            amazon_s3

            Amazon S3

            Amazon ECR

            AmazonECS

            Amazon ECS

            MariaDB

            Maria DB

            Hibernate

            HIBERNATE

            RabbitMQ

            RabbitMQ

            Liquibase

            Liquibase

            Your success is our success

            See how we can build a technological advantage for your company together.

            Book free consultation!

            We have a team that truly knows its stuff — we'll help you find a solution that works.

            Conclusions & recommendations

            Reliability matters more than speed in financial systems

            An external factoring platform operating at 80% availability is insufficient when missing confirmations can result in financial losses. Watchdog and reprocessing mechanisms should be considered mandatory components of integrations involving money-related operations.

            DDD and CQRS deliver value in complex business domains

            Factoring processes involve multiple actors, states, and business rules. Clear domain boundaries enabled safe iteration and continuous feature expansion without increasing architectural complexity.

            API documentation should be treated as a product artifact

            Automatically generated OpenAPI and AsyncAPI documentation ensured that service contracts remained current, traceable, and verifiable before deployment. In microservice ecosystems, this is essential for safe development.

            Financial monitoring requires a proactive approach

            Silent failures operations that appear successful but never reach their destination are often more dangerous than explicit errors. Grafana, Kibana, and Consul provided proactive visibility into system behavior, reducing dependence on customer-reported issues.

            Background

            Time for your project.

            Turn your ideas into real solution and...

            ...Get in touch with us!

            Your vision, our realization
            Want to discuss the details?
            Let us know!

            I agree to the processing of my personal data by Fireup Software ...