← Back to Work
7UNIT / CASE STUDY 001
FINTECH · ITALY · MULTI-TENANT · 2024–ongoing
React · Java Spring Boot · PHP · TypeScript · GCP · Keycloak

7Hub — the financial operating systemrunning Italian fintech.

Four companies. 50+ banks. One platform handling loan origination, bank submission, document generation, commission management, and automated communications — with zero shared data across tenants.

THE SITUATION

WeUnit is an Italian loan origination company — a broker between consumers seeking loans and the banks that issue them. On paper, the business is straightforward: match a borrower to the right product, gather their information, submit to a bank, track the outcome. In practice, the operational complexity was significant.

Every bank on their network had different products, different required documentation, different workflow stages, different commission structures, and different communication expectations. Managing this across a growing network of 50+ banks meant WeUnit's loan officers were navigating a patchwork of spreadsheets, manual processes, and disconnected tools — spending more time on administration than on clients.

What WeUnit needed was not a loan origination tool. They needed a financial operating system — one that could absorb the logic of every bank on their network, automate the routine work, and give loan officers a single place to manage the entire lifecycle of a loan application from first search to bank submission.

WHAT WE BUILT

7Hub is that system. It is the operational core of WeUnit today — and three other Italian fintech companies running on the same platform under full tenant isolation.

BORROWER SIDE

When a consumer visits the WeUnit website and searches for a loan product, 7Hub is running in the background. The loan product search results are not a static list — they are a dynamic query against a configuration layer that holds every bank's products, eligibility criteria, and current rates. The search logic matches the borrower's parameters against this configuration and returns a ranked set of relevant products.

When the borrower selects a product and submits their details, 7Hub creates a lead automatically — and assigns it to the right loan officer based on the borrower's location. The officer receives the lead, contacts the borrower, gathers additional documentation, and uses 7Hub to identify the best matching product given the borrower's full financial picture.

Once the officer and borrower are aligned, the lead converts to a "pratica" — the Italian term for a loan file. From this point, the pratica moves through a defined set of workflow stages: draft, submitted to bank, on hold, approved, rejected, and others. Each stage transition is logged, and the system handles the appropriate communication automatically — borrowers receive email updates at each meaningful stage change without the officer manually drafting a single message.

NIGHTLY SUBMISSION JOBS

Every night, 7Hub runs a set of scheduled jobs. These jobs scan all praticas that have been in a submission-ready workflow state for the past 24 hours and route them automatically to their respective banks. Every morning, banks across Italy wake up to a set of praticas in their queue — submitted overnight, organised by their specific requirements, formatted to their specifications. No manual batch processing. No officer remembering to send files. The system runs whether or not anyone is at their desk.

This architecture means WeUnit's loan officers close their laptops in the evening knowing the submission work happens without them. It also means the banks on the network receive consistent, well-formatted submissions every morning — which builds the kind of operational trust that makes a bank willing to stay on the platform.

50+ BANKS, ONE PLATFORM

The part of 7Hub that took the most engineering rigour to get right is not visible to the borrower at all. It is the configuration layer that holds the logic of every bank on the network.

  • Its own loan products with unique eligibility criteria
  • Its own required documentation at each workflow stage
  • Its own commission structure for WeUnit's officers
  • Its own workflow states and naming conventions
  • Its own communication templates and trigger conditions
  • Its own submission format and delivery mechanism

7Hub handles all of this through a bank configuration system that lets WeUnit administrators onboard a new bank without touching the codebase. Products, workflows, commission rules, email templates, and submission formats are all configured through the platform. The engineering challenge was building a configuration layer flexible enough to absorb 50 different business models while keeping the operational logic consistent for the loan officers working across all of them.

DOCUMENTS AS A PRODUCT

Loan applications require documentation — application forms, identity verification sheets, bank-specific declaration templates, and summary documents for the borrower. The documentation requirements are different for every bank and for every product within a bank.

Rather than hardcoding document templates for each bank configuration, we built a drag-and-drop document builder inside 7Hub. WeUnit's operations team can compose any document from a library of configurable components — data fields, signature blocks, tables, conditional sections — and assign the resulting template to any bank and product combination. When a pratica reaches a stage that requires a document, 7Hub generates it automatically from the template, populated with the pratica's data.

This turned document management from a recurring engineering task into an operations task. New bank, new documentation requirement — the operations team handles it without a development sprint.

FINANCIAL OPERATIONS

WeUnit operates as a broker, which means commission calculations are a core business function. Every loan that successfully moves through the pipeline generates a commission — but the calculation is different for every bank, every product, and every officer tier.

7Hub handles commission calculation, tracking, and reporting internally. Officers can see their pipeline and projected commissions. Management can see commission accruals across the network. Finance can pull reports at any point in the cycle. This data was previously held in spreadsheets maintained by individual officers — fragmented, inconsistent, and impossible to audit.

AUTOMATED COMMUNICATIONS

Every status change in a pratica's lifecycle can trigger an email — to the borrower, to the bank, to the officer, or to a combination. Each bank has different communication requirements at different stages. Some send a confirmation when a pratica is received. Some require a notification when additional documentation is needed. Some have SLA-bound acknowledgement requirements.

7Hub's email system handles all of this through a configuration-driven template engine. Templates are built per bank and per workflow stage. When a pratica enters a new state, the system evaluates the relevant triggers and dispatches the appropriate communications automatically. Officers are not in the email chain unless the situation requires it.

THE MULTI-TENANT ARCHITECTURE

WeUnit is the anchor tenant on 7Hub — but they are not alone. Three other Italian fintech companies — Telemutuo, Integra, and ReForCredit — run their operations on the same platform.

Each company has completely different workflows, user hierarchies, commission policies, bank relationships, and document requirements. From their perspective, they are using a system built for them. From the architecture's perspective, they are tenants in a shared platform with full data isolation and independent configuration.

Identity and access management across these four companies is handled by Keycloak — an enterprise-grade open source identity platform. Each tenant has its own Keycloak realm with its own roles, user groups, and permission structures. A loan officer at Telemutuo has no visibility into WeUnit's praticas. An administrator at Integra cannot access ReForCredit's bank configurations. The RBAC model enforces these boundaries at every layer of the stack — not just at the UI level.

The platform's multi-tenant design means 7Unit can deploy improvements, new features, and infrastructure updates to all four companies simultaneously. The configuration layer absorbs each company's unique requirements. The shared codebase gets the engineering investment.

ARCHITECTURE DECISIONS

Each decision below is documented with its rationale. This is how we work — every decision has a reason, and that reason is recorded.

Java Spring Boot as the backend core

The majority of 7Hub's business logic runs in Java Spring Boot — not FastAPI or Node.js, which are the default choices in our stack for newer projects.

Rationale: WeUnit's technical environment was already Java-oriented, and the regulated fintech context benefits from Java's maturity in enterprise transaction management, audit logging, and long-term maintainability. PHP handles specific legacy integration layers with older bank systems. TypeScript covers the API surface consumed by the React frontend. The polyglot architecture reflects the real constraints of a complex enterprise environment — not a clean-slate greenfield build.

Trade-off accepted: Higher complexity in the build and deployment pipeline in exchange for compatibility with existing infrastructure and long-term maintainability in a regulated environment.

Configuration-driven bank onboarding

Every bank on the network has its own products, workflows, commission rules, and communication requirements. The early temptation was to model each bank as code — custom logic per bank, deployed as needed.

Rationale: We rejected this because it meant every new bank required a development sprint. At 50+ banks and growing, that model would have made 7Hub a permanent engineering dependency for WeUnit's business development team. The configuration layer lets WeUnit's operations team onboard a new bank without engineering involvement.

Trade-off accepted: A more complex configuration schema and a longer initial build in exchange for zero engineering dependency for routine bank onboarding.

Keycloak for multi-tenant identity

With four companies on the platform, identity and access management could not be handled with a simple roles table. We chose Keycloak — an enterprise-grade open source identity platform — over building custom RBAC logic.

Rationale: Each tenant needs a completely independent identity domain — their own roles, their own user groups, their own session policies. Keycloak's realm architecture maps directly to this requirement. Custom RBAC would have required ongoing engineering to maintain as tenants add users and roles. Keycloak handles this operationally.

Trade-off accepted: Additional infrastructure complexity and operational overhead in exchange for enterprise-grade identity management that scales with tenant growth.

Nightly batch submission as a scheduled job

Bank submission could have been triggered manually by loan officers or in real-time as praticas reach submission state. We built it as a scheduled nightly batch job instead.

Rationale: Italian banks process applications in batches — not as a continuous stream. A real-time submission model would have required each bank to accept and acknowledge individual praticas throughout the day, which most banks on the network are not set up for. The nightly batch matches how the banks actually work. It also means officers can continue updating praticas until the cutoff, knowing the submission handles itself overnight.

Trade-off accepted: A submission latency of up to 24 hours in exchange for a model that matches bank processing expectations and requires zero officer intervention.

Drag-and-drop document builder as a first-class feature

Document templates could have been managed as static files — PDFs or Word documents stored per bank configuration and filled programmatically.

Rationale: Documentation requirements change frequently. Banks add fields, change layouts, update declaration language. Static templates would have created a constant queue of small engineering tasks to update files. A configurable document builder moves this to the operations team — the people who know what changed and why. When a bank updates their required application format, WeUnit's operations team updates the template in 7Hub without waiting for a sprint.

Trade-off accepted: A more complex feature to build initially in exchange for eliminating a recurring class of small engineering requests.

Italian financial products are complex — and I know how difficult this project must have been for a team coming in without that domain knowledge. But they delivered anyway. 7Hub didn't just handle the complexity — it made us rethink and improve the processes we'd been running at WeUnit for years. There's always room to grow, but what was built here is genuinely impressive given where we started.

Product Owner · WeUnit · Fintech · Italy

OUTCOMES

50+
Banks onboarded on the platform

Each with unique products, workflows, and commission structures — all managed through configuration, not code.

4
Companies on the same platform

WeUnit, Telemutuo, Integra, and ReForCredit — fully isolated tenants, shared infrastructure.

0
Manual batch submissions

Nightly jobs run automatically. Banks receive praticas every morning without officer intervention.

Daily
Nightly bank submission cadence

Praticas in submission-ready state are dispatched to their respective banks every night.

0
Shared data across tenants

Four companies. One platform. No data visibility across tenant boundaries at any layer.

1
Platform for all internal operations

7Hub is the operational core of WeUnit today — loan origination, bank relations, document management, commission tracking, and communications.

STACK

Frontend: React

Backend: Java Spring Boot · PHP · TypeScript

Infrastructure: GCP (Google Cloud Platform)

Identity: Keycloak (multi-tenant RBAC)

Automation: Scheduled nightly batch jobs

Communications: Configuration-driven email template engine

Document generation: Custom drag-and-drop builder

The polyglot backend — Java, PHP, and TypeScript — reflects the real constraints of enterprise fintech rather than a clean-slate architecture. 7Unit's team spans this stack fully.

IF THIS SOUNDS LIKE YOUR PROBLEM

7Hub is what happens when a business that started with a single workflow grows into something that needs a real operating system. The loan origination logic, the multi-bank configuration, the document generation, the commission tracking — none of these were in the original spec. They emerged as WeUnit's business grew and 7Hub had to grow with it.

If you are building a platform that needs to absorb multiple clients, multiple workflows, and multiple business configurations — and you need those configurations to be managed operationally rather than through engineering — this is the kind of system we know how to build.

CONTINUE EXPLORING

Related case studies