Fintech and payments Case study
Also: Business software and compliance
Xpress Money: global remittance platform
Xpress Money, a remittance platform for Wizz Financial: Angular portals and .NET services deployed on Azure, with the commercial ESB replaced by Azure Service Bus.

- Client
- Wizz Financial
- Service
- Web apps, Integrations
- Years
- 2022–2023
- Stack
- Azure Service Fabric, Azure Service Bus, Azure Functions, Azure Active Directory and 13 more
- Platforms
- Web
Overview
Xpress Money is a global remittance platform built for Wizz Financial. Money is sent and paid out through branches, agents and payout partners, with approvals, daily rates, compliance screening and a ledger behind every transaction. Between 2022 and 2023 we built the back-end services and the two Angular portals, XM Backoffice for staff and XM Biz for agents, deployed the whole application on Azure, and replaced the platform’s commercial service bus with a custom Azure Service Bus layer. The database and the original partner integrations came from elsewhere; we deployed and integrated them.
The challenge
A working stack built around a commercial enterprise service bus already served branches, agents and payout partners, with approvals, daily rates, compliance screening and a full ledger. Two things needed work. The whole application had to run reliably on Azure. And the service bus carried an expensive per-seat licence and was difficult to manage, which slowed every change to the partner flows.
What we built
- Deployed the whole application on Azure, with the services hosted on Azure Service Fabric and the databases, cache and search set up around them
- Azure DevOps pipelines for each service and each portal, with GitVersion and SonarQube checks on every build
- The back-end services, each owning one area: customers and agents, products and pricing, retail transactions with cancel, refund and stop-payment flows, finance and ledger, compliance, audit, documents and notifications
- Sign-in through an identity service backed by Azure Active Directory
- A scheduler service for recurring jobs such as rates imports, payment files and compliance retries
- PDF and Excel report generation and receipts, with SSRS for reporting
- XM Backoffice, an Angular 14 back-office portal for staff: customers, transactions, approvals, compliance, finance, pricing, rates and configuration
- XM Biz, an Angular 14 agent portal: remittance, amendments and cancellations, pay-outs, margins and promotional pricing, and fund requests
- The move off the old service bus: a proof of concept first, then a step-by-step migration behind an HTTP anti-corruption layer that places the services’ messages on Azure Service Bus queues, so the interface the services use stayed stable and they did not need rewriting
- Azure Functions queue handlers for each business area (audit, compliance, customer, finance, notification, rates and retail transactions), plus email
- Retired the commercial service bus and RabbitMQ, leaving Azure Service Bus as the single broker
- Tests for each service, load tests for key endpoints, and UAT support for each release
How a system like this fits together
Reference architecture: global remittance platform
Simplified reference architecture, not a client schematic.
- A branch or agent user signs in to one of the two Angular portals; an identity service backed by Azure Active Directory handles the sign-in.
- The portal calls REST services through an API gateway into the applications on Azure Service Fabric.
- A service applies the rules and records the transaction in SQL Server, with Redis for cache, file storage for documents and Elastic for centralised logs.
- For partner and notification work the service passes the message to an HTTP anti-corruption layer, which places it on an Azure Service Bus queue.
- Queue-triggered Azure Functions for each business area complete the work and call the partner and email services.
Detailed diagrams
Platform architecture (starting point). The platform as drawn by the delivery team before the messaging migration. It still shows the commercial ESB (Neuron) and RabbitMQ, which were later retired.
- This is the starting architecture, before the move to Azure Service Bus; the Neuron integration service and RabbitMQ shown here were later retired.
- Users reach two web sites, XM Backoffice (4xPlus) and XM Biz (ezRemit). Sign-in goes to an Identity service backed by Azure Active Directory and an identity database.
- Both web sites call an API gateway. Requests pass through the Service Fabric cluster and reverse proxy to the applications running on Service Fabric: Core, Fossil, Audit, TaskScheduler, Notifications, Finance, EzRemit, Compliance and Document Processing. Dashed lines connect XM Backoffice to Fossil and XM Biz to EzRemit.
- The applications read and write the config database and other databases, and use file storage for documents. Elastic and Redis support the cluster.
- Neuron, the integration service, has its own Neuron DB, works with RabbitMQ, and connects to third-party API integrations, file storage and SMTP for email.
- Users reach reports through an SSRS web site backed by an SSRS server.
Tap the diagram to open it full size.
Open full size (opens the platform architecture (starting point) in a new tab)
Azure Service Bus integration. The Azure Service Bus layer that replaced the old ESB: how notification and access-control messages reach the integration layer.
- This is the layer that replaced the old ESB.
- The XpressMoney microservices send requests to an Azure Application Gateway dedicated to the Neuron endpoints. It has discovery, HTTP and HTTPS listeners.
- Requests continue to Azure API Management, which exposes three operations: a discovery operation that returns static JSON describing the client connectors, a notification operation and an ACL operation.
- The notification and ACL operations feed the Neuron Logic App, which passes messages to Azure Service Bus.
- Service Bus holds a notification queue and an ACL queue. A notification Logic App reads the notification queue and calls a sendEmail function; the Logic App for the ACL queue is marked pending in the original.
Tap the diagram to open it full size.
Open full size (opens the azure service bus integration in a new tab)
Technology used
| Layer | Choice | Purpose |
|---|---|---|
| Messaging | Azure Service Bus and Azure Functions | queues and handlers that replaced the commercial ESB and RabbitMQ |
| Identity | Azure Active Directory | sign-in through an identity service |
| Delivery | Azure DevOps, Terraform, GitVersion, SonarQube | pipelines, environments and code quality |
| Front end | Angular 14 | back-office and agent portals |
| Services | C# on .NET 6, Azure Service Fabric | domain services as separately deployable applications |
| Data | SQL Server, Redis, file storage | transactions, cache and documents |
| Logging | Elasticsearch | centralised logs |
| Jobs | Hangfire | scheduled and background work |
| Reporting | SSRS, PDF and Excel | reports and receipts |
What happened next
- Delivered
The work described above was delivered to the client.
- Operational facts
- Our work on this project spanned 2022–2023.
Could this be your project?
- You are building or modernising a money-transfer or remittance product. Remittance software development
- Your platform has to connect to payment, compliance and accounting systems.
- You work in fintech and want a team that has built for it before. Fintech work
Questions about this project
How long did this project take?
Our work on it ran from 2022 to 2023, with 6,000+ engineering hours logged in total.
What technology was used?
Azure Service Fabric, Azure Service Bus, Azure Functions, Azure Active Directory, Azure DevOps, Angular, TypeScript, .NET 6, C#, SQL Server, Redis, Elasticsearch, Hangfire, Terraform, SSRS, SonarQube, GitVersion.
Similar work

Also Angular, same industry
QCare: compliance platform for DEKRA
QCare, DEKRA's quality, compliance and risk evaluation platform on the Collabtic service platform: certification and compliance tracking, organisations, training, shop certification and headquarters dashboards, on an Angular front end and a PHP API.

Also Angular, same industry
Wise Pelican: direct mail platform for real estate
A browser-based template editor for real estate postcards, with a mailing list builder, address validation and print-ready PDFs.

Also Angular, same industry
GoAquatix: aquatic workforce management platform
A MEAN-stack web app and iOS/Android apps for field-staff scheduling, duty and incident reports, water-safety testing, repair requests, training and hiring across aquatic facilities, built and maintained for six years.


