QuickPay for trans.eu: A microservice for automated invoice financing
About the project

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.

Automated invoice financing for Trans.eu users

Integration with external factoring systems

Support for multiple financing services

Automated assignment document generation
From challenge
Key Challenges
Integration with a low-availability external factoring platform
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.
Reliable communication between financial systems
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.
Domain complexity in a production environment
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.
Observability and quality assurance in a financial environment
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
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







Robert Pietrzyński
Senior Backend Developer
Tech stack
Java

Spring boot

Amazon S3

Amazon ECR
Amazon ECS
Maria DB
HIBERNATE
RabbitMQ
Liquibase
Your success is our success
See how we can build a technological advantage for your company together.
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.